Life Time Group Holdings Capabilities
Naftiko 0.5 capability definitions for Life Time Group Holdings - 100 capabilities showing integration workflows and service orchestrations.
Retrieves fitness program calendar entries from Airtable.
naftiko: "0.5"
info:
label: "Airtable Program Calendar Lookup"
description: "Retrieves fitness program calendar entries from Airtable."
tags:
- programs
- airtable
capability:
exposes:
- type: mcp
namespace: airtable-programs
port: 8080
tools:
- name: get-data
description: "Retrieves fitness program calendar entries from Airtable."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "airtable-programs.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: airtable-programs
baseUri: "https://api.airtable.com/v0/appLifetime"
authentication:
type: bearer
token: "$secrets.airtable_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Retrieves spend from SAP, builds forecasts in Snowflake, creates templates in Google Sheets, and submits via Microsoft Teams.
naftiko: "0.5"
info:
label: "Annual Budget Planning Pipeline"
description: "Retrieves spend from SAP, builds forecasts in Snowflake, creates templates in Google Sheets, and submits via Microsoft Teams."
tags:
- finance
- sap
- snowflake
- google-sheets
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: annual-budget-planning-pipeline
port: 8080
tools:
- name: execute
description: "Retrieves spend from SAP, builds forecasts in Snowflake, creates templates in Google Sheets, and submits via Microsoft Teams."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "sap.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "snowflake.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "google-sheets.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "microsoft-teams.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://api.sap.com/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: microsoft-teams
baseUri: "https://api.microsoftteams.com/v1"
authentication:
type: bearer
token: "$secrets.microsoft_teams_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Validates certifications in Workday, schedules inspections in ServiceNow, generates reports in Google Sheets, and archives in Box.
naftiko: "0.5"
info:
label: "Aquatics Safety Compliance Pipeline"
description: "Validates certifications in Workday, schedules inspections in ServiceNow, generates reports in Google Sheets, and archives in Box."
tags:
- safety
- workday
- servicenow
- google-sheets
- box
capability:
exposes:
- type: mcp
namespace: aquatics-safety-compliance-pipeline
port: 8080
tools:
- name: execute
description: "Validates certifications in Workday, schedules inspections in ServiceNow, generates reports in Google Sheets, and archives in Box."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "workday.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "servicenow.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "google-sheets.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "box.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://api.workday.com/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: servicenow
baseUri: "https://api.servicenow.com/v1"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: box
baseUri: "https://api.box.com/v1"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Retrieves club renovation or opening project status from Asana.
naftiko: "0.5"
info:
label: "Asana Club Project Lookup"
description: "Retrieves club renovation or opening project status from Asana."
tags:
- project-management
- asana
capability:
exposes:
- type: mcp
namespace: asana-clubs
port: 8080
tools:
- name: get-data
description: "Retrieves club renovation or opening project status from Asana."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "asana-clubs.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: asana-clubs
baseUri: "https://app.asana.com/api/1.0"
authentication:
type: bearer
token: "$secrets.asana_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Retrieves the latest build status from Azure DevOps for a given pipeline.
naftiko: "0.5"
info:
label: "Azure DevOps Build Status"
description: "Retrieves the latest build status from Azure DevOps for a given pipeline."
tags:
- devops
- azure-devops
capability:
exposes:
- type: mcp
namespace: ci-cd
port: 8080
tools:
- name: get-build-status
description: "Get the latest build status from Azure DevOps."
inputParameters:
- name: pipeline_id
in: body
type: string
description: "The Azure DevOps pipeline ID."
call: "azuredevops.get-latest-build"
with:
pipeline_id: "{{pipeline_id}}"
outputParameters:
- name: result
type: string
mapping: "$.value[0].result"
- name: status
type: string
mapping: "$.value[0].status"
consumes:
- type: http
namespace: azuredevops
baseUri: "https://dev.azure.com/lifetime"
authentication:
type: basic
username: ""
password: "$secrets.azuredevops_pat"
resources:
- name: builds
path: "/_apis/build/builds?definitions={{pipeline_id}}&$top=1&api-version=7.0"
inputParameters:
- name: pipeline_id
in: query
operations:
- name: get-latest-build
method: GET
Creates ambassador record in Salesforce, generates DocuSign agreement, provisions gear order in SAP, and announces via Instagram.
naftiko: "0.5"
info:
label: "Brand Ambassador Pipeline"
description: "Creates ambassador record in Salesforce, generates DocuSign agreement, provisions gear order in SAP, and announces via Instagram."
tags:
- marketing
- salesforce
- docusign
- sap
- instagram
capability:
exposes:
- type: mcp
namespace: brand-ambassador-pipeline
port: 8080
tools:
- name: execute
description: "Creates ambassador record in Salesforce, generates DocuSign agreement, provisions gear order in SAP, and announces via Instagram."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "salesforce.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "docusign.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "sap.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "instagram.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://api.salesforce.com/v1"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: docusign
baseUri: "https://api.docusign.com/v1"
authentication:
type: bearer
token: "$secrets.docusign_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: sap
baseUri: "https://api.sap.com/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: instagram
baseUri: "https://api.instagram.com/v1"
authentication:
type: bearer
token: "$secrets.instagram_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
When a member requests a class booking, checks availability in the scheduling system, creates a reservation in Salesforce, and sends a confirmation via Microsoft Teams.
naftiko: "0.5"
info:
label: "Class Scheduling Orchestrator"
description: "When a member requests a class booking, checks availability in the scheduling system, creates a reservation in Salesforce, and sends a confirmation via Microsoft Teams."
tags:
- scheduling
- membership
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: class-scheduling
port: 8080
tools:
- name: book-class
description: "Given a member ID, class ID, and preferred date, check availability, create reservation, and confirm."
inputParameters:
- name: member_id
in: body
type: string
description: "The member ID."
- name: class_id
in: body
type: string
description: "The class identifier."
- name: preferred_date
in: body
type: string
description: "The preferred class date in YYYY-MM-DD format."
- name: member_email
in: body
type: string
description: "The member email for confirmation."
steps:
- name: check-availability
type: call
call: "salesforce.check-class-availability"
with:
class_id: "{{class_id}}"
date: "{{preferred_date}}"
- name: create-reservation
type: call
call: "salesforce.create-booking"
with:
member_id: "{{member_id}}"
class_id: "{{class_id}}"
date: "{{preferred_date}}"
- name: send-confirmation
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{member_email}}"
text: "Your class booking is confirmed! Class: {{check-availability.class_name}} on {{preferred_date}} at {{check-availability.time}}. Booking ID: {{create-reservation.booking_id}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://lifetime.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: class-availability
path: "/sobjects/ClassSchedule__c?class_id={{class_id}}&date={{date}}"
inputParameters:
- name: class_id
in: query
- name: date
in: query
operations:
- name: check-class-availability
method: GET
- name: bookings
path: "/sobjects/Booking__c"
operations:
- name: create-booking
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Monitors real-time club occupancy from Salesforce check-in data, analyzes peak patterns in Azure Databricks, updates the Power BI dashboard, and alerts club managers via Microsoft Teams.
naftiko: "0.5"
info:
label: "Club Capacity Monitoring Pipeline"
description: "Monitors real-time club occupancy from Salesforce check-in data, analyzes peak patterns in Azure Databricks, updates the Power BI dashboard, and alerts club managers via Microsoft Teams."
tags:
- facilities
- analytics
- salesforce
- azure-databricks
- power-bi
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: capacity-monitoring
port: 8080
tools:
- name: monitor-club-capacity
description: "Given a club code, check current occupancy, analyze patterns, and alert if near capacity."
inputParameters:
- name: club_code
in: body
type: string
description: "The club location code."
- name: manager_email
in: body
type: string
description: "The club manager email."
steps:
- name: get-occupancy
type: call
call: "salesforce.get-current-checkins"
with:
club_code: "{{club_code}}"
- name: analyze-patterns
type: call
call: "databricks.run-query"
with:
query: "SELECT * FROM occupancy_patterns WHERE club = '{{club_code}}' AND date = CURRENT_DATE"
- name: refresh-dashboard
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "club-occupancy"
- name: alert-manager
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{manager_email}}"
text: "Club {{club_code}} occupancy: Current: {{get-occupancy.current_count}}. Peak today: {{analyze-patterns.peak_count}}. Forecast next hour: {{analyze-patterns.next_hour_forecast}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://lifetime.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: checkins
path: "/query/?q=SELECT+COUNT(Id)+FROM+CheckIn__c+WHERE+Club__c='{{club_code}}'+AND+CheckOutTime__c=NULL"
inputParameters:
- name: club_code
in: query
operations:
- name: get-current-checkins
method: GET
- type: http
namespace: databricks
baseUri: "https://lifetime-analytics.azuredatabricks.net/api/2.0"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: sql-queries
path: "/sql/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Analyzes usage data in Snowflake, optimizes scheduling, updates Power BI dashboards, and notifies club managers via Slack.
naftiko: "0.5"
info:
label: "Club Capacity Optimization Pipeline"
description: "Analyzes usage data in Snowflake, optimizes scheduling, updates Power BI dashboards, and notifies club managers via Slack."
tags:
- operations
- snowflake
- power-bi
- slack
capability:
exposes:
- type: mcp
namespace: club-capacity-optimization-pipeline
port: 8080
tools:
- name: execute
description: "Analyzes usage data in Snowflake, optimizes scheduling, updates Power BI dashboards, and notifies club managers via Slack."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "snowflake.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "power-bi.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "slack.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "slack.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: slack
baseUri: "https://api.slack.com/v1"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
When a club event is created, sets up the event in Salesforce, sends invitations via MailChimp, creates a Google Forms registration page, and promotes on Instagram.
naftiko: "0.5"
info:
label: "Club Event Management Pipeline"
description: "When a club event is created, sets up the event in Salesforce, sends invitations via MailChimp, creates a Google Forms registration page, and promotes on Instagram."
tags:
- marketing
- events
- salesforce
- mailchimp
- google-forms
- instagram
capability:
exposes:
- type: mcp
namespace: event-management
port: 8080
tools:
- name: create-club-event
description: "Given event details, create the event, send invitations, set up registration, and promote."
inputParameters:
- name: event_name
in: body
type: string
description: "The event name."
- name: club_code
in: body
type: string
description: "The club location code."
- name: event_date
in: body
type: string
description: "The event date."
- name: description
in: body
type: string
description: "The event description."
steps:
- name: create-event
type: call
call: "salesforce.create-event"
with:
name: "{{event_name}}"
club: "{{club_code}}"
date: "{{event_date}}"
description: "{{description}}"
- name: send-invitations
type: call
call: "mailchimp.send-campaign"
with:
list_id: "club-{{club_code}}-members"
template: "club-event-invitation"
subject: "You're invited: {{event_name}}"
- name: create-registration
type: call
call: "google-forms.create-form"
with:
title: "Register: {{event_name}}"
event_id: "{{create-event.event_id}}"
- name: promote-social
type: call
call: "instagram.create-post"
with:
caption: "Join us for {{event_name}} at Life Time {{club_code}} on {{event_date}}! Register now. #LifeTime #Fitness"
consumes:
- type: http
namespace: salesforce
baseUri: "https://lifetime.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: events
path: "/sobjects/Event__c"
operations:
- name: create-event
method: POST
- type: http
namespace: mailchimp
baseUri: "https://us1.api.mailchimp.com/3.0"
authentication:
type: basic
username: "anystring"
password: "$secrets.mailchimp_api_key"
resources:
- name: campaigns
path: "/campaigns"
operations:
- name: send-campaign
method: POST
- type: http
namespace: google-forms
baseUri: "https://forms.googleapis.com/v1"
authentication:
type: bearer
token: "$secrets.google_forms_token"
resources:
- name: forms
path: "/forms"
operations:
- name: create-form
method: POST
- type: http
namespace: instagram
baseUri: "https://graph.facebook.com/v17.0"
authentication:
type: bearer
token: "$secrets.meta_token"
resources:
- name: posts
path: "/{{ig_user_id}}/media"
operations:
- name: create-post
method: POST
Creates event in Salesforce, promotes via HubSpot, posts on Instagram, and tracks RSVPs in Google Sheets.
naftiko: "0.5"
info:
label: "Club Event Promotion Pipeline"
description: "Creates event in Salesforce, promotes via HubSpot, posts on Instagram, and tracks RSVPs in Google Sheets."
tags:
- events
- salesforce
- hubspot
- instagram
- google-sheets
capability:
exposes:
- type: mcp
namespace: club-event-promotion-pipeline
port: 8080
tools:
- name: execute
description: "Creates event in Salesforce, promotes via HubSpot, posts on Instagram, and tracks RSVPs in Google Sheets."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "salesforce.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "hubspot.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "instagram.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "google-sheets.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://api.salesforce.com/v1"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubspot.com/v1"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: instagram
baseUri: "https://api.instagram.com/v1"
authentication:
type: bearer
token: "$secrets.instagram_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Creates location in SAP, provisions systems via ServiceNow, publishes on Google Maps, and announces via Microsoft Teams.
naftiko: "0.5"
info:
label: "Club Opening Orchestrator"
description: "Creates location in SAP, provisions systems via ServiceNow, publishes on Google Maps, and announces via Microsoft Teams."
tags:
- operations
- sap
- servicenow
- google-maps
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: club-opening-orchestrator
port: 8080
tools:
- name: execute
description: "Creates location in SAP, provisions systems via ServiceNow, publishes on Google Maps, and announces via Microsoft Teams."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "sap.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "servicenow.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "google-maps.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "microsoft-teams.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://api.sap.com/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: servicenow
baseUri: "https://api.servicenow.com/v1"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-maps
baseUri: "https://api.googlemaps.com/v1"
authentication:
type: bearer
token: "$secrets.google_maps_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: microsoft-teams
baseUri: "https://api.microsoftteams.com/v1"
authentication:
type: bearer
token: "$secrets.microsoft_teams_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Creates project in Asana, tracks budget in SAP, uploads designs from Figma to SharePoint, and notifies via Microsoft Teams.
naftiko: "0.5"
info:
label: "Club Renovation Pipeline"
description: "Creates project in Asana, tracks budget in SAP, uploads designs from Figma to SharePoint, and notifies via Microsoft Teams."
tags:
- operations
- asana
- sap
- figma
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: club-renovation-pipeline
port: 8080
tools:
- name: execute
description: "Creates project in Asana, tracks budget in SAP, uploads designs from Figma to SharePoint, and notifies via Microsoft Teams."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "asana.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "sap.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "figma.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "microsoft-teams.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: asana
baseUri: "https://api.asana.com/v1"
authentication:
type: bearer
token: "$secrets.asana_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: sap
baseUri: "https://api.sap.com/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: figma
baseUri: "https://api.figma.com/v1"
authentication:
type: bearer
token: "$secrets.figma_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: sharepoint
baseUri: "https://api.sharepoint.com/v1"
authentication:
type: bearer
token: "$secrets.sharepoint_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: microsoft-teams
baseUri: "https://api.microsoftteams.com/v1"
authentication:
type: bearer
token: "$secrets.microsoft_teams_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Analyzes market data in Snowflake, generates Confluence insights, and shares via Microsoft Teams.
naftiko: "0.5"
info:
label: "Competitive Intelligence Pipeline"
description: "Analyzes market data in Snowflake, generates Confluence insights, and shares via Microsoft Teams."
tags:
- intelligence
- snowflake
- confluence
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: competitive-intelligence-pipeline
port: 8080
tools:
- name: execute
description: "Analyzes market data in Snowflake, generates Confluence insights, and shares via Microsoft Teams."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "snowflake.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "confluence.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "microsoft-teams.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "microsoft-teams.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: confluence
baseUri: "https://api.confluence.com/v1"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: microsoft-teams
baseUri: "https://api.microsoftteams.com/v1"
authentication:
type: bearer
token: "$secrets.microsoft_teams_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Searches Confluence for operational SOPs and training materials.
naftiko: "0.5"
info:
label: "Confluence Knowledge Base Search"
description: "Searches Confluence for operational SOPs and training materials."
tags:
- knowledge-management
- confluence
capability:
exposes:
- type: mcp
namespace: knowledge-base
port: 8080
tools:
- name: search-knowledge-base
description: "Search Confluence for knowledge base articles."
inputParameters:
- name: keyword
in: body
type: string
description: "The search keyword."
call: "confluence.search"
with:
cql: "type=page AND text~'{{keyword}}'"
outputParameters:
- name: results
type: string
mapping: "$.results"
- name: total_size
type: string
mapping: "$.totalSize"
consumes:
- type: http
namespace: confluence
baseUri: "https://lifetime.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: search
path: "/search?cql={{cql}}"
inputParameters:
- name: cql
in: query
operations:
- name: search
method: GET
Retrieves from SharePoint, translates via Azure, uploads to Google Drive, and notifies via Microsoft Teams.
naftiko: "0.5"
info:
label: "Content Localization Pipeline"
description: "Retrieves from SharePoint, translates via Azure, uploads to Google Drive, and notifies via Microsoft Teams."
tags:
- localization
- sharepoint
- microsoft-azure
- google-drive
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: content-localization-pipeline
port: 8080
tools:
- name: execute
description: "Retrieves from SharePoint, translates via Azure, uploads to Google Drive, and notifies via Microsoft Teams."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "sharepoint.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "microsoft-azure.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "google-drive.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "microsoft-teams.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://api.sharepoint.com/v1"
authentication:
type: bearer
token: "$secrets.sharepoint_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: microsoft-azure
baseUri: "https://api.microsoftazure.com/v1"
authentication:
type: bearer
token: "$secrets.microsoft_azure_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-drive
baseUri: "https://api.googledrive.com/v1"
authentication:
type: bearer
token: "$secrets.google_drive_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: microsoft-teams
baseUri: "https://api.microsoftteams.com/v1"
authentication:
type: bearer
token: "$secrets.microsoft_teams_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Queries Salesforce, creates Jira tasks, sends Outlook reminders, and logs in Google Sheets.
naftiko: "0.5"
info:
label: "Contract Renewal Pipeline"
description: "Queries Salesforce, creates Jira tasks, sends Outlook reminders, and logs in Google Sheets."
tags:
- legal
- salesforce
- jira
- microsoft-outlook
- google-sheets
capability:
exposes:
- type: mcp
namespace: contract-renewal-pipeline
port: 8080
tools:
- name: execute
description: "Queries Salesforce, creates Jira tasks, sends Outlook reminders, and logs in Google Sheets."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "salesforce.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "jira.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "microsoft-outlook.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "google-sheets.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://api.salesforce.com/v1"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: jira
baseUri: "https://api.jira.com/v1"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: microsoft-outlook
baseUri: "https://api.microsoftoutlook.com/v1"
authentication:
type: bearer
token: "$secrets.microsoft_outlook_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Creates corporate account in Salesforce, generates DocuSign agreement, provisions billing in Stripe, and tracks in Google Sheets.
naftiko: "0.5"
info:
label: "Corporate Wellness Program Pipeline"
description: "Creates corporate account in Salesforce, generates DocuSign agreement, provisions billing in Stripe, and tracks in Google Sheets."
tags:
- corporate
- salesforce
- docusign
- stripe
- google-sheets
capability:
exposes:
- type: mcp
namespace: corporate-wellness-program-pipeline
port: 8080
tools:
- name: execute
description: "Creates corporate account in Salesforce, generates DocuSign agreement, provisions billing in Stripe, and tracks in Google Sheets."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "salesforce.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "docusign.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "stripe.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "google-sheets.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://api.salesforce.com/v1"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: docusign
baseUri: "https://api.docusign.com/v1"
authentication:
type: bearer
token: "$secrets.docusign_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Analyzes in Snowflake, generates recommendations via Azure ML, syncs to Salesforce, and emails via MailChimp.
naftiko: "0.5"
info:
label: "Cross-Sell Services Pipeline"
description: "Analyzes in Snowflake, generates recommendations via Azure ML, syncs to Salesforce, and emails via MailChimp."
tags:
- sales
- snowflake
- azure-machine-learning
- salesforce
- mailchimp
capability:
exposes:
- type: mcp
namespace: cross-sell-services-pipeline
port: 8080
tools:
- name: execute
description: "Analyzes in Snowflake, generates recommendations via Azure ML, syncs to Salesforce, and emails via MailChimp."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "snowflake.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "azure-machine-learning.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "salesforce.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "mailchimp.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: azure-machine-learning
baseUri: "https://api.azuremachinelearning.com/v1"
authentication:
type: bearer
token: "$secrets.azure_machine_learning_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: salesforce
baseUri: "https://api.salesforce.com/v1"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: mailchimp
baseUri: "https://api.mailchimp.com/v1"
authentication:
type: bearer
token: "$secrets.mailchimp_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Escalates Zendesk ticket, creates Jira follow-up, notifies via Slack, and logs in Snowflake.
naftiko: "0.5"
info:
label: "Customer Service Escalation Pipeline"
description: "Escalates Zendesk ticket, creates Jira follow-up, notifies via Slack, and logs in Snowflake."
tags:
- support
- zendesk
- jira
- slack
- snowflake
capability:
exposes:
- type: mcp
namespace: customer-service-escalation-pipeline
port: 8080
tools:
- name: execute
description: "Escalates Zendesk ticket, creates Jira follow-up, notifies via Slack, and logs in Snowflake."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "zendesk.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "jira.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "slack.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "snowflake.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: zendesk
baseUri: "https://api.zendesk.com/v1"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: jira
baseUri: "https://api.jira.com/v1"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: slack
baseUri: "https://api.slack.com/v1"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Audits Snowflake, generates reports in Google Sheets, archives in SharePoint, and notifies via Slack.
naftiko: "0.5"
info:
label: "Data Privacy Compliance Pipeline"
description: "Audits Snowflake, generates reports in Google Sheets, archives in SharePoint, and notifies via Slack."
tags:
- compliance
- snowflake
- google-sheets
- sharepoint
- slack
capability:
exposes:
- type: mcp
namespace: data-privacy-compliance-pipeline
port: 8080
tools:
- name: execute
description: "Audits Snowflake, generates reports in Google Sheets, archives in SharePoint, and notifies via Slack."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "snowflake.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "google-sheets.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "sharepoint.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "slack.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: sharepoint
baseUri: "https://api.sharepoint.com/v1"
authentication:
type: bearer
token: "$secrets.sharepoint_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: slack
baseUri: "https://api.slack.com/v1"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Creates HubSpot campaign, sets up Facebook ads, tracks in Google Analytics, and reports in Google Sheets.
naftiko: "0.5"
info:
label: "Digital Marketing Campaign Pipeline"
description: "Creates HubSpot campaign, sets up Facebook ads, tracks in Google Analytics, and reports in Google Sheets."
tags:
- marketing
- hubspot
- facebook
- google-analytics
- google-sheets
capability:
exposes:
- type: mcp
namespace: digital-marketing-campaign-pipeline
port: 8080
tools:
- name: execute
description: "Creates HubSpot campaign, sets up Facebook ads, tracks in Google Analytics, and reports in Google Sheets."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "hubspot.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "facebook.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "google-analytics.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "google-sheets.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubspot.com/v1"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: facebook
baseUri: "https://api.facebook.com/v1"
authentication:
type: bearer
token: "$secrets.facebook_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-analytics
baseUri: "https://api.googleanalytics.com/v1"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Retrieves DocuSign membership agreement envelope status.
naftiko: "0.5"
info:
label: "DocuSign Membership Agreement Lookup"
description: "Retrieves DocuSign membership agreement envelope status."
tags:
- legal
- docusign
capability:
exposes:
- type: mcp
namespace: docusign-memberships
port: 8080
tools:
- name: get-data
description: "Retrieves DocuSign membership agreement envelope status."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "docusign-memberships.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: docusign-memberships
baseUri: "https://na4.docusign.net/restapi/v2.1/accounts/lifetime"
authentication:
type: bearer
token: "$secrets.docusign_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Retrieves application performance metrics from Dynatrace.
naftiko: "0.5"
info:
label: "Dynatrace Application Health Check"
description: "Retrieves application performance metrics from Dynatrace."
tags:
- monitoring
- dynatrace
capability:
exposes:
- type: mcp
namespace: app-monitoring
port: 8080
tools:
- name: get-app-health
description: "Retrieve application health metrics from Dynatrace."
inputParameters:
- name: service_name
in: body
type: string
description: "The Dynatrace service name."
call: "dynatrace.get-service-metrics"
with:
service_name: "{{service_name}}"
outputParameters:
- name: response_time
type: string
mapping: "$.result[0].data[0].values[0]"
- name: error_rate
type: string
mapping: "$.result[1].data[0].values[0]"
consumes:
- type: http
namespace: dynatrace
baseUri: "https://lifetime.live.dynatrace.com/api/v2"
authentication:
type: bearer
token: "$secrets.dynatrace_token"
resources:
- name: metrics
path: "/metrics/query?metricSelector=builtin:service.response.time,builtin:service.errors.total.rate&entitySelector=type(SERVICE),entityName({{service_name}})"
inputParameters:
- name: service_name
in: query
operations:
- name: get-service-metrics
method: GET
Tracks completion in Workday, generates certificates via DocuSign, logs in Google Sheets, and notifies via Slack.
naftiko: "0.5"
info:
label: "Employee Certification Pipeline"
description: "Tracks completion in Workday, generates certificates via DocuSign, logs in Google Sheets, and notifies via Slack."
tags:
- training
- workday
- docusign
- google-sheets
- slack
capability:
exposes:
- type: mcp
namespace: employee-certification-pipeline
port: 8080
tools:
- name: execute
description: "Tracks completion in Workday, generates certificates via DocuSign, logs in Google Sheets, and notifies via Slack."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "workday.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "docusign.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "google-sheets.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "slack.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://api.workday.com/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: docusign
baseUri: "https://api.docusign.com/v1"
authentication:
type: bearer
token: "$secrets.docusign_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: slack
baseUri: "https://api.slack.com/v1"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Deactivates Workday profile, revokes Azure AD access, creates ServiceNow ticket, and archives in Box.
naftiko: "0.5"
info:
label: "Employee Offboarding Pipeline"
description: "Deactivates Workday profile, revokes Azure AD access, creates ServiceNow ticket, and archives in Box."
tags:
- hr
- workday
- azure-active-directory
- servicenow
- box
capability:
exposes:
- type: mcp
namespace: employee-offboarding-pipeline
port: 8080
tools:
- name: execute
description: "Deactivates Workday profile, revokes Azure AD access, creates ServiceNow ticket, and archives in Box."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "workday.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "azure-active-directory.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "servicenow.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "box.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://api.workday.com/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: azure-active-directory
baseUri: "https://api.azureactivedirectory.com/v1"
authentication:
type: bearer
token: "$secrets.azure_active_directory_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: servicenow
baseUri: "https://api.servicenow.com/v1"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: box
baseUri: "https://api.box.com/v1"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Given a Workday employee ID and start date, orchestrate the full onboarding sequence."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID for the new hire."
- name: start_date
in: body
type: string
description: "The employee start date in YYYY-MM-DD format."
- name: department
in: body
type: string
description: "The department the new hire is joining."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New hire onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
assigned_group: "IT_Onboarding"
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_onboarding_site"
folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-employee.work_email}}"
text: "Welcome to Life Time, {{get-employee.first_name}}! Your IT onboarding ticket is {{open-ticket.number}}."
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: servicenow
baseUri: "https://lifetime.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Tracks equipment in SAP, schedules maintenance in ServiceNow, analyzes costs in Snowflake, and reports via Power BI.
naftiko: "0.5"
info:
label: "Equipment Lifecycle Pipeline"
description: "Tracks equipment in SAP, schedules maintenance in ServiceNow, analyzes costs in Snowflake, and reports via Power BI."
tags:
- equipment
- sap
- servicenow
- snowflake
- power-bi
capability:
exposes:
- type: mcp
namespace: equipment-lifecycle-pipeline
port: 8080
tools:
- name: execute
description: "Tracks equipment in SAP, schedules maintenance in ServiceNow, analyzes costs in Snowflake, and reports via Power BI."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "sap.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "servicenow.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "snowflake.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "power-bi.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://api.sap.com/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: servicenow
baseUri: "https://api.servicenow.com/v1"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
When a club requests fitness equipment, creates a requisition in SAP, checks budget approval in Workday, and notifies the procurement team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Equipment Procurement Pipeline"
description: "When a club requests fitness equipment, creates a requisition in SAP, checks budget approval in Workday, and notifies the procurement team via Microsoft Teams."
tags:
- facilities
- procurement
- sap
- workday
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: equipment-procurement
port: 8080
tools:
- name: request-equipment
description: "Given equipment details, create requisition, check budget, and notify procurement."
inputParameters:
- name: equipment_name
in: body
type: string
description: "The equipment name."
- name: quantity
in: body
type: string
description: "The quantity."
- name: estimated_cost
in: body
type: string
description: "The estimated cost."
- name: club_code
in: body
type: string
description: "The requesting club code."
steps:
- name: create-requisition
type: call
call: "sap.create-requisition"
with:
description: "{{equipment_name}} x{{quantity}} for {{club_code}}"
amount: "{{estimated_cost}}"
- name: check-budget
type: call
call: "workday.check-budget"
with:
department: "{{club_code}}"
amount: "{{estimated_cost}}"
- name: notify-procurement
type: call
call: "msteams.send-message"
with:
channel_id: "procurement"
text: "Equipment request: {{equipment_name}} x{{quantity}} (${{estimated_cost}}) for {{club_code}}. Requisition: {{create-requisition.req_number}}. Budget: {{check-budget.available}}."
consumes:
- type: http
namespace: sap
baseUri: "https://lifetime-s4.sap.com/sap/opu/odata/sap/MM_PUR_REQ_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: requisitions
path: "/A_PurchaseRequisition"
operations:
- name: create-requisition
method: POST
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: budgets
path: "/financialManagement/budgets?department={{department}}"
inputParameters:
- name: department
in: query
operations:
- name: check-budget
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Creates ServiceNow work order, schedules vendor in SAP, notifies club manager via Slack, and tracks in Google Sheets.
naftiko: "0.5"
info:
label: "Facility Maintenance Orchestrator"
description: "Creates ServiceNow work order, schedules vendor in SAP, notifies club manager via Slack, and tracks in Google Sheets."
tags:
- maintenance
- servicenow
- sap
- slack
- google-sheets
capability:
exposes:
- type: mcp
namespace: facility-maintenance-orchestrator
port: 8080
tools:
- name: execute
description: "Creates ServiceNow work order, schedules vendor in SAP, notifies club manager via Slack, and tracks in Google Sheets."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "servicenow.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "sap.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "slack.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "google-sheets.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://api.servicenow.com/v1"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: sap
baseUri: "https://api.sap.com/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: slack
baseUri: "https://api.slack.com/v1"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
When a facility issue is reported, creates a ServiceNow work order, notifies the facilities team via Microsoft Teams, and updates the asset record in SAP.
naftiko: "0.5"
info:
label: "Facility Maintenance Request Pipeline"
description: "When a facility issue is reported, creates a ServiceNow work order, notifies the facilities team via Microsoft Teams, and updates the asset record in SAP."
tags:
- facilities
- servicenow
- microsoft-teams
- sap
capability:
exposes:
- type: mcp
namespace: facilities
port: 8080
tools:
- name: submit-maintenance-request
description: "Given facility details, create a work order, notify the team, and update the asset."
inputParameters:
- name: club_code
in: body
type: string
description: "The club location code."
- name: issue_description
in: body
type: string
description: "Description of the maintenance issue."
- name: priority
in: body
type: string
description: "Priority level (critical, high, medium, low)."
- name: asset_id
in: body
type: string
description: "The SAP asset identifier."
steps:
- name: create-work-order
type: call
call: "servicenow.create-work-order"
with:
short_description: "Maintenance: {{club_code}} - {{issue_description}}"
priority: "{{priority}}"
location: "{{club_code}}"
- name: notify-facilities
type: call
call: "msteams.send-message"
with:
channel_id: "facilities-ops"
text: "New maintenance request at {{club_code}}: {{issue_description}}. Priority: {{priority}}. Work order: {{create-work-order.number}}."
- name: update-asset
type: call
call: "sap.update-asset"
with:
asset_id: "{{asset_id}}"
maintenance_ticket: "{{create-work-order.number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://lifetime.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: work-orders
path: "/table/wm_order"
operations:
- name: create-work-order
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
- type: http
namespace: sap
baseUri: "https://lifetime-s4.sap.com/sap/opu/odata/sap/ASSET_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: assets
path: "/Assets('{{asset_id}}')"
inputParameters:
- name: asset_id
in: path
operations:
- name: update-asset
method: PATCH
Retrieves a Figma club interior design file by key.
naftiko: "0.5"
info:
label: "Figma Club Design Lookup"
description: "Retrieves a Figma club interior design file by key."
tags:
- design
- figma
capability:
exposes:
- type: mcp
namespace: figma-club
port: 8080
tools:
- name: get-data
description: "Retrieves a Figma club interior design file by key."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "figma-club.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: figma-club
baseUri: "https://api.figma.com/v1"
authentication:
type: bearer
token: "$secrets.figma_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Triggers SAP close, generates Power BI reports, archives in Box, and notifies via Microsoft Teams.
naftiko: "0.5"
info:
label: "Financial Close Pipeline"
description: "Triggers SAP close, generates Power BI reports, archives in Box, and notifies via Microsoft Teams."
tags:
- finance
- sap
- power-bi
- box
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: financial-close-pipeline
port: 8080
tools:
- name: execute
description: "Triggers SAP close, generates Power BI reports, archives in Box, and notifies via Microsoft Teams."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "sap.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "power-bi.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "box.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "microsoft-teams.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://api.sap.com/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: box
baseUri: "https://api.box.com/v1"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: microsoft-teams
baseUri: "https://api.microsoftteams.com/v1"
authentication:
type: bearer
token: "$secrets.microsoft_teams_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Retrieves website engagement metrics from Google Analytics for the Life Time website.
naftiko: "0.5"
info:
label: "Google Analytics Website Metrics"
description: "Retrieves website engagement metrics from Google Analytics for the Life Time website."
tags:
- marketing
- google-analytics
capability:
exposes:
- type: mcp
namespace: web-analytics
port: 8080
tools:
- name: get-website-metrics
description: "Retrieve website metrics from Google Analytics."
inputParameters:
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "End date in YYYY-MM-DD format."
call: "google-analytics.get-report"
with:
property_id: "lifetime-website"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
outputParameters:
- name: sessions
type: string
mapping: "$.rows[0].metricValues[0].value"
- name: conversion_rate
type: string
mapping: "$.rows[0].metricValues[1].value"
consumes:
- type: http
namespace: google-analytics
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/properties/{{property_id}}:runReport"
inputParameters:
- name: property_id
in: path
operations:
- name: get-report
method: POST
Searches Google Drive for operational documents and club management resources.
naftiko: "0.5"
info:
label: "Google Drive Operational Document Search"
description: "Searches Google Drive for operational documents and club management resources."
tags:
- facilities
- google-drive
capability:
exposes:
- type: mcp
namespace: operational-docs
port: 8080
tools:
- name: search-documents
description: "Search Google Drive for operational documents."
inputParameters:
- name: keyword
in: body
type: string
description: "The search keyword."
call: "google-drive.search-files"
with:
query: "name contains '{{keyword}}'"
outputParameters:
- name: files
type: string
mapping: "$.files"
consumes:
- type: http
namespace: google-drive
baseUri: "https://www.googleapis.com/drive/v3"
authentication:
type: bearer
token: "$secrets.google_drive_token"
resources:
- name: files
path: "/files?q={{query}}"
inputParameters:
- name: query
in: query
operations:
- name: search-files
method: GET
Retrieves nearby Life Time club locations using Google Maps for member-facing applications.
naftiko: "0.5"
info:
label: "Google Maps Club Locator"
description: "Retrieves nearby Life Time club locations using Google Maps for member-facing applications."
tags:
- membership
- google-maps
capability:
exposes:
- type: mcp
namespace: club-locator
port: 8080
tools:
- name: find-nearby-clubs
description: "Find Life Time clubs near a given location."
inputParameters:
- name: address
in: body
type: string
description: "The member address or zip code."
- name: radius_miles
in: body
type: string
description: "Search radius in miles."
call: "google-maps.search-places"
with:
query: "Life Time Fitness near {{address}}"
radius: "{{radius_miles}}"
outputParameters:
- name: clubs
type: string
mapping: "$.results"
consumes:
- type: http
namespace: google-maps
baseUri: "https://maps.googleapis.com/maps/api"
authentication:
type: apikey
key: "$secrets.google_maps_key"
resources:
- name: places
path: "/place/textsearch/json?query={{query}}&radius={{radius}}"
inputParameters:
- name: query
in: query
- name: radius
in: query
operations:
- name: search-places
method: GET
Retrieves search performance for Life Time web properties.
naftiko: "0.5"
info:
label: "Google Search Console SEO Lookup"
description: "Retrieves search performance for Life Time web properties."
tags:
- seo
- google-search-console
capability:
exposes:
- type: mcp
namespace: gsc-seo
port: 8080
tools:
- name: get-data
description: "Retrieves search performance for Life Time web properties."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "gsc-seo.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: gsc-seo
baseUri: "https://www.googleapis.com/webmasters/v3"
authentication:
type: bearer
token: "$secrets.google_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Retrieves class attendance data from a Google Sheets tracker used by club operations.
naftiko: "0.5"
info:
label: "Google Sheets Class Attendance Tracker"
description: "Retrieves class attendance data from a Google Sheets tracker used by club operations."
tags:
- scheduling
- google-sheets
capability:
exposes:
- type: mcp
namespace: attendance-tracking
port: 8080
tools:
- name: get-attendance-data
description: "Retrieve class attendance data from Google Sheets."
inputParameters:
- name: spreadsheet_id
in: body
type: string
description: "The Google Sheets spreadsheet ID."
- name: range
in: body
type: string
description: "The cell range."
call: "google-sheets.get-values"
with:
spreadsheet_id: "{{spreadsheet_id}}"
range: "{{range}}"
outputParameters:
- name: values
type: string
mapping: "$.values"
consumes:
- type: http
namespace: google-sheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: values
path: "/spreadsheets/{{spreadsheet_id}}/values/{{range}}"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: get-values
method: GET
Creates class in scheduling system, assigns instructor in Workday, promotes on Instagram, and notifies members via MailChimp.
naftiko: "0.5"
info:
label: "Group Fitness Class Creation Pipeline"
description: "Creates class in scheduling system, assigns instructor in Workday, promotes on Instagram, and notifies members via MailChimp."
tags:
- fitness
- workday
- instagram
- mailchimp
capability:
exposes:
- type: mcp
namespace: group-fitness-class-creation-pipeline
port: 8080
tools:
- name: execute
description: "Creates class in scheduling system, assigns instructor in Workday, promotes on Instagram, and notifies members via MailChimp."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "workday.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "instagram.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "mailchimp.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "mailchimp.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://api.workday.com/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: instagram
baseUri: "https://api.instagram.com/v1"
authentication:
type: bearer
token: "$secrets.instagram_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: mailchimp
baseUri: "https://api.mailchimp.com/v1"
authentication:
type: bearer
token: "$secrets.mailchimp_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Retrieves a HubSpot lead by email for membership marketing.
naftiko: "0.5"
info:
label: "HubSpot Lead Lookup"
description: "Retrieves a HubSpot lead by email for membership marketing."
tags:
- marketing
- hubspot
capability:
exposes:
- type: mcp
namespace: hubspot-leads
port: 8080
tools:
- name: get-data
description: "Retrieves a HubSpot lead by email for membership marketing."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "hubspot-leads.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: hubspot-leads
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Creates a job posting on Indeed for club staff recruitment and tracks it in Salesforce.
naftiko: "0.5"
info:
label: "Indeed Job Posting Pipeline"
description: "Creates a job posting on Indeed for club staff recruitment and tracks it in Salesforce."
tags:
- recruitment
- indeed
- salesforce
capability:
exposes:
- type: mcp
namespace: recruitment
port: 8080
tools:
- name: post-job
description: "Create an Indeed job posting and log it in Salesforce."
inputParameters:
- name: job_title
in: body
type: string
description: "The job title."
- name: club_code
in: body
type: string
description: "The club location."
- name: description
in: body
type: string
description: "The job description."
steps:
- name: create-posting
type: call
call: "indeed.create-job"
with:
title: "{{job_title}}"
location: "{{club_code}}"
description: "{{description}}"
- name: log-posting
type: call
call: "salesforce.create-job-record"
with:
title: "{{job_title}}"
location: "{{club_code}}"
indeed_id: "{{create-posting.job_id}}"
consumes:
- type: http
namespace: indeed
baseUri: "https://apis.indeed.com/v2"
authentication:
type: bearer
token: "$secrets.indeed_token"
resources:
- name: jobs
path: "/jobs"
operations:
- name: create-job
method: POST
- type: http
namespace: salesforce
baseUri: "https://lifetime.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: job-records
path: "/sobjects/JobPosting__c"
operations:
- name: create-job-record
method: POST
Creates HubSpot campaign, generates DocuSign contract, tracks in Asana, and monitors Instagram.
naftiko: "0.5"
info:
label: "Influencer Partnership Pipeline"
description: "Creates HubSpot campaign, generates DocuSign contract, tracks in Asana, and monitors Instagram."
tags:
- marketing
- hubspot
- docusign
- asana
- instagram
capability:
exposes:
- type: mcp
namespace: influencer-partnership-pipeline
port: 8080
tools:
- name: execute
description: "Creates HubSpot campaign, generates DocuSign contract, tracks in Asana, and monitors Instagram."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "hubspot.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "docusign.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "asana.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "instagram.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubspot.com/v1"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: docusign
baseUri: "https://api.docusign.com/v1"
authentication:
type: bearer
token: "$secrets.docusign_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: asana
baseUri: "https://api.asana.com/v1"
authentication:
type: bearer
token: "$secrets.asana_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: instagram
baseUri: "https://api.instagram.com/v1"
authentication:
type: bearer
token: "$secrets.instagram_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Retrieves engagement metrics for Life Time Instagram posts.
naftiko: "0.5"
info:
label: "Instagram Fitness Metrics Lookup"
description: "Retrieves engagement metrics for Life Time Instagram posts."
tags:
- social-media
- instagram
capability:
exposes:
- type: mcp
namespace: instagram-fitness
port: 8080
tools:
- name: get-data
description: "Retrieves engagement metrics for Life Time Instagram posts."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "instagram-fitness.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: instagram-fitness
baseUri: "https://graph.facebook.com/v18.0"
authentication:
type: bearer
token: "$secrets.instagram_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
On Dynatrace alert, creates ServiceNow incident, pages team via Slack, and opens Zoom bridge.
naftiko: "0.5"
info:
label: "IT Incident Response Pipeline"
description: "On Dynatrace alert, creates ServiceNow incident, pages team via Slack, and opens Zoom bridge."
tags:
- incident
- dynatrace
- servicenow
- slack
- zoom
capability:
exposes:
- type: mcp
namespace: it-incident-response-pipeline
port: 8080
tools:
- name: execute
description: "On Dynatrace alert, creates ServiceNow incident, pages team via Slack, and opens Zoom bridge."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "dynatrace.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "servicenow.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "slack.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "zoom.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: dynatrace
baseUri: "https://api.dynatrace.com/v1"
authentication:
type: bearer
token: "$secrets.dynatrace_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: servicenow
baseUri: "https://api.servicenow.com/v1"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: slack
baseUri: "https://api.slack.com/v1"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: zoom
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Retrieves a Jira issue by key from the IT project.
naftiko: "0.5"
info:
label: "Jira IT Task Lookup"
description: "Retrieves a Jira issue by key from the IT project."
tags:
- it-operations
- jira
capability:
exposes:
- type: mcp
namespace: it-tasks
port: 8080
tools:
- name: get-jira-issue
description: "Look up a Jira issue by key."
inputParameters:
- name: issue_key
in: body
type: string
description: "The Jira issue key."
call: "jira.get-issue"
with:
issue_key: "{{issue_key}}"
outputParameters:
- name: summary
type: string
mapping: "$.fields.summary"
- name: status
type: string
mapping: "$.fields.status.name"
- name: assignee
type: string
mapping: "$.fields.assignee.displayName"
consumes:
- type: http
namespace: jira
baseUri: "https://lifetime.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue/{{issue_key}}"
inputParameters:
- name: issue_key
in: path
operations:
- name: get-issue
method: GET
Enrolls child in Salesforce, provisions billing in Stripe, sends MailChimp confirmation, and logs in Snowflake.
naftiko: "0.5"
info:
label: "Kids Program Enrollment Pipeline"
description: "Enrolls child in Salesforce, provisions billing in Stripe, sends MailChimp confirmation, and logs in Snowflake."
tags:
- programs
- salesforce
- stripe
- mailchimp
- snowflake
capability:
exposes:
- type: mcp
namespace: kids-program-enrollment-pipeline
port: 8080
tools:
- name: execute
description: "Enrolls child in Salesforce, provisions billing in Stripe, sends MailChimp confirmation, and logs in Snowflake."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "salesforce.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "stripe.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "mailchimp.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "snowflake.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://api.salesforce.com/v1"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: mailchimp
baseUri: "https://api.mailchimp.com/v1"
authentication:
type: bearer
token: "$secrets.mailchimp_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Creates a corporate content post on LinkedIn and logs it in Salesforce.
naftiko: "0.5"
info:
label: "LinkedIn Corporate Content Post"
description: "Creates a corporate content post on LinkedIn and logs it in Salesforce."
tags:
- marketing
- linkedin
- salesforce
capability:
exposes:
- type: mcp
namespace: corporate-social
port: 8080
tools:
- name: post-corporate-content
description: "Create a LinkedIn post and log it in Salesforce."
inputParameters:
- name: content_text
in: body
type: string
description: "The post content."
- name: campaign_id
in: body
type: string
description: "The Salesforce campaign ID."
steps:
- name: create-post
type: call
call: "linkedin.create-post"
with:
text: "{{content_text}}"
- name: log-post
type: call
call: "salesforce.create-activity"
with:
campaign_id: "{{campaign_id}}"
platform: "linkedin"
post_id: "{{create-post.post_id}}"
consumes:
- type: http
namespace: linkedin
baseUri: "https://api.linkedin.com/v2"
authentication:
type: bearer
token: "$secrets.linkedin_token"
resources:
- name: posts
path: "/ugcPosts"
operations:
- name: create-post
method: POST
- type: http
namespace: salesforce
baseUri: "https://lifetime.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: activities
path: "/sobjects/CampaignActivity__c"
operations:
- name: create-activity
method: POST
Creates and sends a member newsletter via MailChimp.
naftiko: "0.5"
info:
label: "MailChimp Newsletter Campaign"
description: "Creates and sends a member newsletter via MailChimp."
tags:
- marketing
- email
- mailchimp
capability:
exposes:
- type: mcp
namespace: email-marketing
port: 8080
tools:
- name: send-newsletter
description: "Create and send a MailChimp newsletter campaign."
inputParameters:
- name: campaign_name
in: body
type: string
description: "The campaign name."
- name: subject
in: body
type: string
description: "The email subject."
- name: template_id
in: body
type: string
description: "The template ID."
- name: list_id
in: body
type: string
description: "The audience list ID."
call: "mailchimp.create-campaign"
with:
name: "{{campaign_name}}"
list_id: "{{list_id}}"
template_id: "{{template_id}}"
subject: "{{subject}}"
consumes:
- type: http
namespace: mailchimp
baseUri: "https://us1.api.mailchimp.com/3.0"
authentication:
type: basic
username: "anystring"
password: "$secrets.mailchimp_api_key"
resources:
- name: campaigns
path: "/campaigns"
operations:
- name: create-campaign
method: POST
Identifies at-risk members in Snowflake, creates retention campaigns in MailChimp, assigns outreach in Salesforce, and tracks in Google Sheets.
naftiko: "0.5"
info:
label: "Member Churn Prevention Pipeline"
description: "Identifies at-risk members in Snowflake, creates retention campaigns in MailChimp, assigns outreach in Salesforce, and tracks in Google Sheets."
tags:
- retention
- snowflake
- mailchimp
- salesforce
- google-sheets
capability:
exposes:
- type: mcp
namespace: member-churn-prevention-pipeline
port: 8080
tools:
- name: execute
description: "Identifies at-risk members in Snowflake, creates retention campaigns in MailChimp, assigns outreach in Salesforce, and tracks in Google Sheets."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "snowflake.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "mailchimp.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "salesforce.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "google-sheets.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: mailchimp
baseUri: "https://api.mailchimp.com/v1"
authentication:
type: bearer
token: "$secrets.mailchimp_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: salesforce
baseUri: "https://api.salesforce.com/v1"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Pulls member visit data from Salesforce, analyzes engagement patterns in Azure Databricks, creates retention risk scores, and alerts club managers via Microsoft Teams.
naftiko: "0.5"
info:
label: "Member Engagement Analytics Pipeline"
description: "Pulls member visit data from Salesforce, analyzes engagement patterns in Azure Databricks, creates retention risk scores, and alerts club managers via Microsoft Teams."
tags:
- membership
- analytics
- salesforce
- azure-databricks
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: member-engagement
port: 8080
tools:
- name: analyze-engagement
description: "Given a club code, analyze member engagement and identify at-risk members."
inputParameters:
- name: club_code
in: body
type: string
description: "The club location code."
- name: manager_email
in: body
type: string
description: "The club manager email."
steps:
- name: get-visit-data
type: call
call: "salesforce.get-club-visits"
with:
club_code: "{{club_code}}"
- name: analyze-patterns
type: call
call: "databricks.run-query"
with:
query: "SELECT * FROM member_engagement_scores WHERE club = '{{club_code}}' AND risk_level = 'high'"
- name: create-outreach-tasks
type: call
call: "salesforce.create-task"
with:
subject: "At-risk member outreach: {{club_code}}"
description: "{{analyze-patterns.at_risk_count}} members identified as high retention risk."
- name: alert-manager
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{manager_email}}"
text: "Member engagement alert for {{club_code}}: {{analyze-patterns.at_risk_count}} high-risk members. Average visits/week: {{analyze-patterns.avg_weekly_visits}}. Task created: {{create-outreach-tasks.task_id}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://lifetime.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: visits
path: "/query/?q=SELECT+MemberId__c,VisitDate__c+FROM+ClubVisit__c+WHERE+Club__c='{{club_code}}'"
inputParameters:
- name: club_code
in: query
operations:
- name: get-club-visits
method: GET
- name: tasks
path: "/sobjects/Task"
operations:
- name: create-task
method: POST
- type: http
namespace: databricks
baseUri: "https://lifetime-analytics.azuredatabricks.net/api/2.0"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: sql-queries
path: "/sql/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Aggregates behavior in Snowflake, scores via Azure ML, syncs to Salesforce, and triggers campaigns in MailChimp.
naftiko: "0.5"
info:
label: "Member Engagement Scoring Pipeline"
description: "Aggregates behavior in Snowflake, scores via Azure ML, syncs to Salesforce, and triggers campaigns in MailChimp."
tags:
- engagement
- snowflake
- azure-machine-learning
- salesforce
- mailchimp
capability:
exposes:
- type: mcp
namespace: member-engagement-scoring-pipeline
port: 8080
tools:
- name: execute
description: "Aggregates behavior in Snowflake, scores via Azure ML, syncs to Salesforce, and triggers campaigns in MailChimp."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "snowflake.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "azure-machine-learning.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "salesforce.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "mailchimp.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: azure-machine-learning
baseUri: "https://api.azuremachinelearning.com/v1"
authentication:
type: bearer
token: "$secrets.azure_machine_learning_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: salesforce
baseUri: "https://api.salesforce.com/v1"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: mailchimp
baseUri: "https://api.mailchimp.com/v1"
authentication:
type: bearer
token: "$secrets.mailchimp_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Collects from Zendesk, analyzes via Azure ML, stores in Snowflake, and publishes to Confluence.
naftiko: "0.5"
info:
label: "Member Feedback Pipeline"
description: "Collects from Zendesk, analyzes via Azure ML, stores in Snowflake, and publishes to Confluence."
tags:
- feedback
- zendesk
- azure-machine-learning
- snowflake
- confluence
capability:
exposes:
- type: mcp
namespace: member-feedback-pipeline
port: 8080
tools:
- name: execute
description: "Collects from Zendesk, analyzes via Azure ML, stores in Snowflake, and publishes to Confluence."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "zendesk.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "azure-machine-learning.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "snowflake.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "confluence.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: zendesk
baseUri: "https://api.zendesk.com/v1"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: azure-machine-learning
baseUri: "https://api.azuremachinelearning.com/v1"
authentication:
type: bearer
token: "$secrets.azure_machine_learning_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: confluence
baseUri: "https://api.confluence.com/v1"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Retrieves a member profile from Salesforce by member ID, including membership tier, join date, home club, and contact information.
naftiko: "0.5"
info:
label: "Member Profile Lookup"
description: "Retrieves a member profile from Salesforce by member ID, including membership tier, join date, home club, and contact information."
tags:
- membership
- salesforce
capability:
exposes:
- type: mcp
namespace: membership
port: 8080
tools:
- name: get-member-profile
description: "Look up a member profile in Salesforce by member ID."
inputParameters:
- name: member_id
in: body
type: string
description: "The member ID."
call: "salesforce.get-member"
with:
member_id: "{{member_id}}"
outputParameters:
- name: name
type: string
mapping: "$.Name"
- name: tier
type: string
mapping: "$.MembershipTier__c"
- name: home_club
type: string
mapping: "$.HomeClub__c"
- name: join_date
type: string
mapping: "$.JoinDate__c"
consumes:
- type: http
namespace: salesforce
baseUri: "https://lifetime.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: members
path: "/sobjects/Member__c/{{member_id}}"
inputParameters:
- name: member_id
in: path
operations:
- name: get-member
method: GET
When a member refers a friend, creates the referral in Salesforce, sends a welcome email via MailChimp, applies the referral credit via Stripe, and notifies the member via Microsoft Teams.
naftiko: "0.5"
info:
label: "Member Referral Program Pipeline"
description: "When a member refers a friend, creates the referral in Salesforce, sends a welcome email via MailChimp, applies the referral credit via Stripe, and notifies the member via Microsoft Teams."
tags:
- membership
- marketing
- salesforce
- mailchimp
- stripe
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: referral-program
port: 8080
tools:
- name: process-referral
description: "Given referral details, create the referral, send welcome email, apply credit, and notify."
inputParameters:
- name: referring_member_id
in: body
type: string
description: "The referring member ID."
- name: referred_name
in: body
type: string
description: "The referred person's name."
- name: referred_email
in: body
type: string
description: "The referred person's email."
- name: member_email
in: body
type: string
description: "The referring member's email."
steps:
- name: create-referral
type: call
call: "salesforce.create-referral"
with:
member_id: "{{referring_member_id}}"
referred_name: "{{referred_name}}"
referred_email: "{{referred_email}}"
- name: send-welcome
type: call
call: "mailchimp.send-transactional"
with:
template: "referral-welcome"
recipient: "{{referred_email}}"
referrer_name: "{{create-referral.referrer_name}}"
- name: apply-credit
type: call
call: "stripe.create-credit"
with:
customer_id: "{{referring_member_id}}"
amount: "5000"
description: "Referral credit for {{referred_name}}"
- name: notify-member
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{member_email}}"
text: "Thank you for referring {{referred_name}}! A $50 credit has been applied to your account. Referral ID: {{create-referral.referral_id}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://lifetime.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: referrals
path: "/sobjects/Referral__c"
operations:
- name: create-referral
method: POST
- type: http
namespace: mailchimp
baseUri: "https://us1.api.mailchimp.com/3.0"
authentication:
type: basic
username: "anystring"
password: "$secrets.mailchimp_api_key"
resources:
- name: transactional
path: "/messages/send-template"
operations:
- name: send-transactional
method: POST
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: credits
path: "/customers/{{customer_id}}/balance_transactions"
inputParameters:
- name: customer_id
in: path
operations:
- name: create-credit
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Tracks referrals in Salesforce, provisions rewards in Stripe, sends emails via MailChimp, and logs in Snowflake.
naftiko: "0.5"
info:
label: "Member Referral Tracking Pipeline"
description: "Tracks referrals in Salesforce, provisions rewards in Stripe, sends emails via MailChimp, and logs in Snowflake."
tags:
- referrals
- salesforce
- stripe
- mailchimp
- snowflake
capability:
exposes:
- type: mcp
namespace: member-referral-tracking-pipeline
port: 8080
tools:
- name: execute
description: "Tracks referrals in Salesforce, provisions rewards in Stripe, sends emails via MailChimp, and logs in Snowflake."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "salesforce.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "stripe.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "mailchimp.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "snowflake.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://api.salesforce.com/v1"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: mailchimp
baseUri: "https://api.mailchimp.com/v1"
authentication:
type: bearer
token: "$secrets.mailchimp_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Sends surveys via MailChimp, collects in Snowflake, analyzes in Tableau, and shares via Microsoft Teams.
naftiko: "0.5"
info:
label: "Member Satisfaction Survey Pipeline"
description: "Sends surveys via MailChimp, collects in Snowflake, analyzes in Tableau, and shares via Microsoft Teams."
tags:
- feedback
- mailchimp
- snowflake
- tableau
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: member-satisfaction-survey-pipeline
port: 8080
tools:
- name: execute
description: "Sends surveys via MailChimp, collects in Snowflake, analyzes in Tableau, and shares via Microsoft Teams."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "mailchimp.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "snowflake.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "tableau.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "microsoft-teams.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: mailchimp
baseUri: "https://api.mailchimp.com/v1"
authentication:
type: bearer
token: "$secrets.mailchimp_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: tableau
baseUri: "https://api.tableau.com/v1"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: microsoft-teams
baseUri: "https://api.microsoftteams.com/v1"
authentication:
type: bearer
token: "$secrets.microsoft_teams_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Identifies members due for renewal from Salesforce, sends renewal reminders via MailChimp, creates follow-up tasks for retention specialists, and tracks results via Microsoft Teams.
naftiko: "0.5"
info:
label: "Membership Renewal Campaign Pipeline"
description: "Identifies members due for renewal from Salesforce, sends renewal reminders via MailChimp, creates follow-up tasks for retention specialists, and tracks results via Microsoft Teams."
tags:
- membership
- marketing
- salesforce
- mailchimp
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: membership-renewal
port: 8080
tools:
- name: trigger-renewal-campaign
description: "Given a club and date range, identify expiring memberships, send reminders, and create follow-ups."
inputParameters:
- name: club_code
in: body
type: string
description: "The club location code."
- name: days_until_expiry
in: body
type: string
description: "Number of days until membership expiry to target."
steps:
- name: find-expiring
type: call
call: "salesforce.query-expiring-members"
with:
club_code: "{{club_code}}"
days: "{{days_until_expiry}}"
- name: send-reminders
type: call
call: "mailchimp.send-campaign"
with:
list_id: "renewal-reminders"
template: "membership-renewal"
recipients: "{{find-expiring.emails}}"
- name: create-tasks
type: call
call: "salesforce.create-task"
with:
subject: "Membership renewal follow-up: {{club_code}}"
description: "{{find-expiring.member_count}} members expiring within {{days_until_expiry}} days."
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "membership-retention"
text: "Renewal campaign launched for {{club_code}}: {{find-expiring.member_count}} members targeted. Emails sent via MailChimp. Follow-up task: {{create-tasks.task_id}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://lifetime.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: members
path: "/query/?q=SELECT+Id,Email__c+FROM+Member__c+WHERE+HomeClub__c='{{club_code}}'+AND+ExpiryDate__c<=NEXT_N_DAYS:{{days}}"
inputParameters:
- name: club_code
in: query
- name: days
in: query
operations:
- name: query-expiring-members
method: GET
- name: tasks
path: "/sobjects/Task"
operations:
- name: create-task
method: POST
- type: http
namespace: mailchimp
baseUri: "https://us1.api.mailchimp.com/3.0"
authentication:
type: basic
username: "anystring"
password: "$secrets.mailchimp_api_key"
resources:
- name: campaigns
path: "/campaigns"
operations:
- name: send-campaign
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves fitness class schedule from the booking system.
naftiko: "0.5"
info:
label: "Mindbody Class Schedule Lookup"
description: "Retrieves fitness class schedule from the booking system."
tags:
- scheduling
- mindbody
capability:
exposes:
- type: mcp
namespace: mindbody-classes
port: 8080
tools:
- name: get-data
description: "Retrieves fitness class schedule from the booking system."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "mindbody-classes.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: mindbody-classes
baseUri: "https://api.mindbodyonline.com/public/v6"
authentication:
type: bearer
token: "$secrets.mindbody_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Gets employee from Workday, provisions Azure AD, creates ServiceNow request, and sends welcome via Microsoft Outlook.
naftiko: "0.5"
info:
label: "New Hire Provisioning Pipeline"
description: "Gets employee from Workday, provisions Azure AD, creates ServiceNow request, and sends welcome via Microsoft Outlook."
tags:
- it
- workday
- azure-active-directory
- servicenow
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: new-hire-provisioning-pipeline
port: 8080
tools:
- name: execute
description: "Gets employee from Workday, provisions Azure AD, creates ServiceNow request, and sends welcome via Microsoft Outlook."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "workday.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "azure-active-directory.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "servicenow.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "microsoft-outlook.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://api.workday.com/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: azure-active-directory
baseUri: "https://api.azureactivedirectory.com/v1"
authentication:
type: bearer
token: "$secrets.azure_active_directory_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: servicenow
baseUri: "https://api.servicenow.com/v1"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: microsoft-outlook
baseUri: "https://api.microsoftoutlook.com/v1"
authentication:
type: bearer
token: "$secrets.microsoft_outlook_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Creates member in Salesforce, provisions Stripe billing, triggers MailChimp welcome, and logs in Snowflake.
naftiko: "0.5"
info:
label: "New Member Onboarding Pipeline"
description: "Creates member in Salesforce, provisions Stripe billing, triggers MailChimp welcome, and logs in Snowflake."
tags:
- membership
- salesforce
- stripe
- mailchimp
- snowflake
capability:
exposes:
- type: mcp
namespace: new-member-onboarding-pipeline
port: 8080
tools:
- name: execute
description: "Creates member in Salesforce, provisions Stripe billing, triggers MailChimp welcome, and logs in Snowflake."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "salesforce.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "stripe.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "mailchimp.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "snowflake.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://api.salesforce.com/v1"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: mailchimp
baseUri: "https://api.mailchimp.com/v1"
authentication:
type: bearer
token: "$secrets.mailchimp_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Retrieves Life Time mobile app performance metrics.
naftiko: "0.5"
info:
label: "New Relic Mobile App Health"
description: "Retrieves Life Time mobile app performance metrics."
tags:
- monitoring
- new-relic
capability:
exposes:
- type: mcp
namespace: newrelic-mobile
port: 8080
tools:
- name: get-data
description: "Retrieves Life Time mobile app performance metrics."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "newrelic-mobile.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: newrelic-mobile
baseUri: "https://api.newrelic.com/v2"
authentication:
type: bearer
token: "$secrets.newrelic_api_key"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Retrieves digital platform health from New Relic.
naftiko: "0.5"
info:
label: "New Relic Platform Health Lookup"
description: "Retrieves digital platform health from New Relic."
tags:
- monitoring
- new-relic
capability:
exposes:
- type: mcp
namespace: newrelic-platform
port: 8080
tools:
- name: get-data
description: "Retrieves digital platform health from New Relic."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "newrelic-platform.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: newrelic-platform
baseUri: "https://api.newrelic.com/v2"
authentication:
type: bearer
token: "$secrets.newrelic_api_key"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Creates program in Salesforce, assigns coach in Workday, sends enrollment via MailChimp, and tracks in Google Sheets.
naftiko: "0.5"
info:
label: "Nutrition Program Pipeline"
description: "Creates program in Salesforce, assigns coach in Workday, sends enrollment via MailChimp, and tracks in Google Sheets."
tags:
- programs
- salesforce
- workday
- mailchimp
- google-sheets
capability:
exposes:
- type: mcp
namespace: nutrition-program-pipeline
port: 8080
tools:
- name: execute
description: "Creates program in Salesforce, assigns coach in Workday, sends enrollment via MailChimp, and tracks in Google Sheets."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "salesforce.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "workday.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "mailchimp.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "google-sheets.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://api.salesforce.com/v1"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: workday
baseUri: "https://api.workday.com/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: mailchimp
baseUri: "https://api.mailchimp.com/v1"
authentication:
type: bearer
token: "$secrets.mailchimp_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Gets Figma design, routes Asana approval, archives in Box, and updates product catalog.
naftiko: "0.5"
info:
label: "Retail Merchandise Design Pipeline"
description: "Gets Figma design, routes Asana approval, archives in Box, and updates product catalog."
tags:
- creative
- figma
- asana
- box
capability:
exposes:
- type: mcp
namespace: packaging-design-pipeline
port: 8080
tools:
- name: execute
description: "Gets Figma design, routes Asana approval, archives in Box, and updates product catalog."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "figma.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "asana.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "box.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "box.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: figma
baseUri: "https://api.figma.com/v1"
authentication:
type: bearer
token: "$secrets.figma_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: asana
baseUri: "https://api.asana.com/v1"
authentication:
type: bearer
token: "$secrets.asana_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: box
baseUri: "https://api.box.com/v1"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Books session in scheduling system, creates Stripe charge, sends confirmation via MailChimp, and updates trainer schedule in Google Sheets.
naftiko: "0.5"
info:
label: "Personal Training Booking Pipeline"
description: "Books session in scheduling system, creates Stripe charge, sends confirmation via MailChimp, and updates trainer schedule in Google Sheets."
tags:
- training
- stripe
- mailchimp
- google-sheets
capability:
exposes:
- type: mcp
namespace: personal-training-booking-pipeline
port: 8080
tools:
- name: execute
description: "Books session in scheduling system, creates Stripe charge, sends confirmation via MailChimp, and updates trainer schedule in Google Sheets."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "stripe.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "mailchimp.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "google-sheets.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "google-sheets.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: mailchimp
baseUri: "https://api.mailchimp.com/v1"
authentication:
type: bearer
token: "$secrets.mailchimp_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
When a member books a personal training session, verifies trainer availability in Salesforce, creates the session booking, charges the member via Stripe, and sends confirmation via Microsoft Teams.
naftiko: "0.5"
info:
label: "Personal Training Session Pipeline"
description: "When a member books a personal training session, verifies trainer availability in Salesforce, creates the session booking, charges the member via Stripe, and sends confirmation via Microsoft Teams."
tags:
- scheduling
- membership
- salesforce
- stripe
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: personal-training
port: 8080
tools:
- name: book-pt-session
description: "Given member, trainer, and session details, verify availability, process payment, and confirm."
inputParameters:
- name: member_id
in: body
type: string
description: "The member ID."
- name: trainer_id
in: body
type: string
description: "The trainer employee ID."
- name: session_date
in: body
type: string
description: "The session date in YYYY-MM-DD format."
- name: session_type
in: body
type: string
description: "The session type (e.g., strength, cardio, yoga)."
- name: member_email
in: body
type: string
description: "The member email."
steps:
- name: check-trainer
type: call
call: "salesforce.check-trainer-availability"
with:
trainer_id: "{{trainer_id}}"
date: "{{session_date}}"
- name: create-booking
type: call
call: "salesforce.create-pt-booking"
with:
member_id: "{{member_id}}"
trainer_id: "{{trainer_id}}"
date: "{{session_date}}"
type: "{{session_type}}"
- name: charge-member
type: call
call: "stripe.create-charge"
with:
customer_id: "{{member_id}}"
amount: "{{check-trainer.session_rate}}"
description: "PT session: {{session_type}} on {{session_date}}"
- name: confirm-booking
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{member_email}}"
text: "Personal training session confirmed! {{session_type}} with {{check-trainer.trainer_name}} on {{session_date}}. Booking: {{create-booking.booking_id}}. Payment: ${{check-trainer.session_rate}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://lifetime.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: trainer-availability
path: "/sobjects/TrainerSchedule__c?trainer_id={{trainer_id}}&date={{date}}"
inputParameters:
- name: trainer_id
in: query
- name: date
in: query
operations:
- name: check-trainer-availability
method: GET
- name: pt-bookings
path: "/sobjects/PTBooking__c"
operations:
- name: create-pt-booking
method: POST
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: charges
path: "/charges"
operations:
- name: create-charge
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Triggers a refresh of the club performance Power BI dataset.
naftiko: "0.5"
info:
label: "Power BI Club Performance Dashboard Refresh"
description: "Triggers a refresh of the club performance Power BI dataset."
tags:
- analytics
- power-bi
capability:
exposes:
- type: mcp
namespace: club-analytics
port: 8080
tools:
- name: refresh-club-dashboard
description: "Trigger a Power BI dataset refresh for the club performance dashboard."
inputParameters:
- name: dataset_id
in: body
type: string
description: "The Power BI dataset identifier."
call: "powerbi.refresh-dataset"
with:
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
Retrieves Power BI membership KPI dashboard refresh status.
naftiko: "0.5"
info:
label: "Power BI Membership KPI Report"
description: "Retrieves Power BI membership KPI dashboard refresh status."
tags:
- analytics
- power-bi
capability:
exposes:
- type: mcp
namespace: powerbi-membership
port: 8080
tools:
- name: get-data
description: "Retrieves Power BI membership KPI dashboard refresh status."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "powerbi-membership.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: powerbi-membership
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Retrieves Salesforce member account details by ID.
naftiko: "0.5"
info:
label: "Salesforce Member Account Lookup"
description: "Retrieves Salesforce member account details by ID."
tags:
- sales
- salesforce
capability:
exposes:
- type: mcp
namespace: sf-members
port: 8080
tools:
- name: get-data
description: "Retrieves Salesforce member account details by ID."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "sf-members.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: sf-members
baseUri: "https://lifetime.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Retrieves fitness equipment inventory from SAP by location.
naftiko: "0.5"
info:
label: "SAP Equipment Inventory Lookup"
description: "Retrieves fitness equipment inventory from SAP by location."
tags:
- inventory
- sap
capability:
exposes:
- type: mcp
namespace: sap-equipment
port: 8080
tools:
- name: get-data
description: "Retrieves fitness equipment inventory from SAP by location."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "sap-equipment.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: sap-equipment
baseUri: "https://lifetime-s4.sap.com/sap/opu/odata/sap/ZINVENTORY_SRV"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Looks up a SAP purchase order by number for equipment or supply procurement.
naftiko: "0.5"
info:
label: "SAP Purchase Order Status"
description: "Looks up a SAP purchase order by number for equipment or supply procurement."
tags:
- procurement
- sap
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: get-purchase-order
description: "Look up a SAP purchase order by PO number."
inputParameters:
- name: po_number
in: body
type: string
description: "The SAP purchase order number."
call: "sap.get-po"
with:
po_number: "{{po_number}}"
outputParameters:
- name: status
type: string
mapping: "$.d.OverallStatus"
- name: vendor
type: string
mapping: "$.d.Supplier.CompanyName"
- name: total_value
type: string
mapping: "$.d.TotalAmount"
consumes:
- type: http
namespace: sap
baseUri: "https://lifetime-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder('{{po_number}}')"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
method: GET
Retrieves purchase requisition details from SAP.
naftiko: "0.5"
info:
label: "SAP Purchase Requisition Lookup"
description: "Retrieves purchase requisition details from SAP."
tags:
- procurement
- sap
capability:
exposes:
- type: mcp
namespace: sap-requisitions
port: 8080
tools:
- name: get-data
description: "Retrieves purchase requisition details from SAP."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "sap-requisitions.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: sap-requisitions
baseUri: "https://lifetime-s4.sap.com/sap/opu/odata/sap/ZPURCHASE_SRV"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Creates promotion in Salesforce, sends MailChimp campaign, tracks in Google Sheets, and promotes on Instagram.
naftiko: "0.5"
info:
label: "Seasonal Promotion Pipeline"
description: "Creates promotion in Salesforce, sends MailChimp campaign, tracks in Google Sheets, and promotes on Instagram."
tags:
- promotions
- salesforce
- mailchimp
- google-sheets
- instagram
capability:
exposes:
- type: mcp
namespace: seasonal-promotion-pipeline
port: 8080
tools:
- name: execute
description: "Creates promotion in Salesforce, sends MailChimp campaign, tracks in Google Sheets, and promotes on Instagram."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "salesforce.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "mailchimp.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "google-sheets.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "instagram.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://api.salesforce.com/v1"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: mailchimp
baseUri: "https://api.mailchimp.com/v1"
authentication:
type: bearer
token: "$secrets.mailchimp_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: instagram
baseUri: "https://api.instagram.com/v1"
authentication:
type: bearer
token: "$secrets.instagram_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Detects via Dynatrace, creates Jira tickets, alerts via Slack, and triggers Azure DevOps patches.
naftiko: "0.5"
info:
label: "Security Vulnerability Pipeline"
description: "Detects via Dynatrace, creates Jira tickets, alerts via Slack, and triggers Azure DevOps patches."
tags:
- security
- dynatrace
- jira
- slack
- azure-devops
capability:
exposes:
- type: mcp
namespace: security-vulnerability-pipeline
port: 8080
tools:
- name: execute
description: "Detects via Dynatrace, creates Jira tickets, alerts via Slack, and triggers Azure DevOps patches."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "dynatrace.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "jira.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "slack.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "azure-devops.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: dynatrace
baseUri: "https://api.dynatrace.com/v1"
authentication:
type: bearer
token: "$secrets.dynatrace_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: jira
baseUri: "https://api.jira.com/v1"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: slack
baseUri: "https://api.slack.com/v1"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: azure-devops
baseUri: "https://api.azuredevops.com/v1"
authentication:
type: bearer
token: "$secrets.azure_devops_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Pulls from Google Search Console, updates website, and reports via Google Sheets.
naftiko: "0.5"
info:
label: "SEO Optimization Pipeline"
description: "Pulls from Google Search Console, updates website, and reports via Google Sheets."
tags:
- seo
- google-search-console
- google-sheets
capability:
exposes:
- type: mcp
namespace: seo-optimization-pipeline
port: 8080
tools:
- name: execute
description: "Pulls from Google Search Console, updates website, and reports via Google Sheets."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "google-search-console.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "google-sheets.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "service.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "google-sheets.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: google-search-console
baseUri: "https://api.googlesearchconsole.com/v1"
authentication:
type: bearer
token: "$secrets.google_search_console_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Retrieves a ServiceNow incident by number and returns priority, status, and assigned group.
naftiko: "0.5"
info:
label: "ServiceNow Incident Lookup"
description: "Retrieves a ServiceNow incident by number and returns priority, status, and assigned group."
tags:
- it-operations
- servicenow
capability:
exposes:
- type: mcp
namespace: it-support
port: 8080
tools:
- name: get-incident
description: "Look up a ServiceNow incident by number."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number."
call: "servicenow.get-incident"
with:
incident_number: "{{incident_number}}"
outputParameters:
- name: priority
type: string
mapping: "$.result.priority"
- name: state
type: string
mapping: "$.result.state"
- name: assigned_to
type: string
mapping: "$.result.assigned_to.display_value"
consumes:
- type: http
namespace: servicenow
baseUri: "https://lifetime.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=number={{incident_number}}"
inputParameters:
- name: incident_number
in: query
operations:
- name: get-incident
method: GET
Sends a message to a Slack club operations channel.
naftiko: "0.5"
info:
label: "Slack Club Ops Message Sender"
description: "Sends a message to a Slack club operations channel."
tags:
- communications
- slack
capability:
exposes:
- type: mcp
namespace: slack-clubops
port: 8080
tools:
- name: get-data
description: "Sends a message to a Slack club operations channel."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "slack-clubops.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: slack-clubops
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Queries member engagement analytics from Snowflake.
naftiko: "0.5"
info:
label: "Snowflake Member Analytics Query"
description: "Queries member engagement analytics from Snowflake."
tags:
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: snowflake-members
port: 8080
tools:
- name: get-data
description: "Queries member engagement analytics from Snowflake."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "snowflake-members.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: snowflake-members
baseUri: "https://lifetime.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Creates HubSpot campaign, schedules on Instagram and Facebook, tracks in Google Analytics, and reports in Google Sheets.
naftiko: "0.5"
info:
label: "Social Media Campaign Pipeline"
description: "Creates HubSpot campaign, schedules on Instagram and Facebook, tracks in Google Analytics, and reports in Google Sheets."
tags:
- social-media
- hubspot
- instagram
- facebook
- google-analytics
- google-sheets
capability:
exposes:
- type: mcp
namespace: social-media-campaign-pipeline
port: 8080
tools:
- name: execute
description: "Creates HubSpot campaign, schedules on Instagram and Facebook, tracks in Google Analytics, and reports in Google Sheets."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "hubspot.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "instagram.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "facebook.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "google-sheets.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubspot.com/v1"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: instagram
baseUri: "https://api.instagram.com/v1"
authentication:
type: bearer
token: "$secrets.instagram_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: facebook
baseUri: "https://api.facebook.com/v1"
authentication:
type: bearer
token: "$secrets.facebook_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-analytics
baseUri: "https://api.googleanalytics.com/v1"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Creates a promotional campaign across Instagram and Facebook, tracks with Google Tag Manager, and reports to the marketing team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Social Media Promotion Pipeline"
description: "Creates a promotional campaign across Instagram and Facebook, tracks with Google Tag Manager, and reports to the marketing team via Microsoft Teams."
tags:
- marketing
- social-media
- instagram
- facebook
- google-tag-manager
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: social-promotions
port: 8080
tools:
- name: launch-promotion
description: "Given promotion details, post to social platforms, set up tracking, and notify marketing."
inputParameters:
- name: promotion_name
in: body
type: string
description: "The promotion name."
- name: content_text
in: body
type: string
description: "The post content."
- name: offer_code
in: body
type: string
description: "The promotional offer code."
steps:
- name: post-instagram
type: call
call: "instagram.create-post"
with:
caption: "{{content_text}} Use code {{offer_code}}! #LifeTime #Fitness"
- name: post-facebook
type: call
call: "facebook.create-post"
with:
message: "{{content_text}} Use code {{offer_code}}!"
- name: setup-tracking
type: call
call: "gtm.create-tag"
with:
tag_name: "promo_{{offer_code}}"
- name: notify-marketing
type: call
call: "msteams.send-message"
with:
channel_id: "marketing"
text: "Promotion {{promotion_name}} launched. Offer code: {{offer_code}}. Instagram: {{post-instagram.post_id}}. Facebook: {{post-facebook.post_id}}."
consumes:
- type: http
namespace: instagram
baseUri: "https://graph.facebook.com/v17.0"
authentication:
type: bearer
token: "$secrets.meta_token"
resources:
- name: posts
path: "/{{ig_user_id}}/media"
operations:
- name: create-post
method: POST
- type: http
namespace: facebook
baseUri: "https://graph.facebook.com/v17.0"
authentication:
type: bearer
token: "$secrets.meta_token"
resources:
- name: posts
path: "/{{page_id}}/feed"
operations:
- name: create-post
method: POST
- type: http
namespace: gtm
baseUri: "https://www.googleapis.com/tagmanager/v2"
authentication:
type: bearer
token: "$secrets.gtm_token"
resources:
- name: tags
path: "/accounts/{{account_id}}/containers/{{container_id}}/workspaces/{{workspace_id}}/tags"
operations:
- name: create-tag
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
When a member books a spa service, checks therapist availability in Salesforce, creates the booking, processes payment via Stripe, and sends confirmation via Microsoft Teams.
naftiko: "0.5"
info:
label: "Spa and Salon Booking Pipeline"
description: "When a member books a spa service, checks therapist availability in Salesforce, creates the booking, processes payment via Stripe, and sends confirmation via Microsoft Teams."
tags:
- scheduling
- membership
- salesforce
- stripe
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: spa-services
port: 8080
tools:
- name: book-spa-service
description: "Given member and service details, check availability, process payment, and confirm."
inputParameters:
- name: member_id
in: body
type: string
description: "The member ID."
- name: service_type
in: body
type: string
description: "The spa service type."
- name: preferred_date
in: body
type: string
description: "The preferred date."
- name: club_code
in: body
type: string
description: "The club location code."
- name: member_email
in: body
type: string
description: "The member email."
steps:
- name: check-availability
type: call
call: "salesforce.check-spa-availability"
with:
club_code: "{{club_code}}"
service_type: "{{service_type}}"
date: "{{preferred_date}}"
- name: create-booking
type: call
call: "salesforce.create-spa-booking"
with:
member_id: "{{member_id}}"
service_type: "{{service_type}}"
date: "{{preferred_date}}"
therapist: "{{check-availability.therapist_name}}"
- name: process-payment
type: call
call: "stripe.create-charge"
with:
customer_id: "{{member_id}}"
amount: "{{check-availability.service_price}}"
description: "Spa: {{service_type}} on {{preferred_date}}"
- name: confirm
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{member_email}}"
text: "Spa booking confirmed! {{service_type}} with {{check-availability.therapist_name}} on {{preferred_date}} at Life Time {{club_code}}. Booking: {{create-booking.booking_id}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://lifetime.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: spa-availability
path: "/sobjects/SpaSchedule__c?club={{club_code}}&service={{service_type}}&date={{date}}"
inputParameters:
- name: club_code
in: query
- name: service_type
in: query
- name: date
in: query
operations:
- name: check-spa-availability
method: GET
- name: spa-bookings
path: "/sobjects/SpaBooking__c"
operations:
- name: create-spa-booking
method: POST
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: charges
path: "/charges"
operations:
- name: create-charge
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Analyzes booking patterns in Snowflake, optimizes scheduling, updates Google Sheets capacity tracker, and promotes via MailChimp.
naftiko: "0.5"
info:
label: "Spa Service Booking Optimization Pipeline"
description: "Analyzes booking patterns in Snowflake, optimizes scheduling, updates Google Sheets capacity tracker, and promotes via MailChimp."
tags:
- spa
- snowflake
- google-sheets
- mailchimp
capability:
exposes:
- type: mcp
namespace: spa-service-booking-optimization-pipeline
port: 8080
tools:
- name: execute
description: "Analyzes booking patterns in Snowflake, optimizes scheduling, updates Google Sheets capacity tracker, and promotes via MailChimp."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "snowflake.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "google-sheets.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "mailchimp.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "mailchimp.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: mailchimp
baseUri: "https://api.mailchimp.com/v1"
authentication:
type: bearer
token: "$secrets.mailchimp_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Retrieves a Square POS transaction for in-club purchases.
naftiko: "0.5"
info:
label: "Square POS Transaction Lookup"
description: "Retrieves a Square POS transaction for in-club purchases."
tags:
- payments
- square
capability:
exposes:
- type: mcp
namespace: square-pos
port: 8080
tools:
- name: get-data
description: "Retrieves a Square POS transaction for in-club purchases."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "square-pos.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: square-pos
baseUri: "https://connect.squareup.com/v2"
authentication:
type: bearer
token: "$secrets.square_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Retrieves a Stripe payment by charge ID, returning amount, status, and customer details.
naftiko: "0.5"
info:
label: "Stripe Payment Lookup"
description: "Retrieves a Stripe payment by charge ID, returning amount, status, and customer details."
tags:
- membership
- payments
- stripe
capability:
exposes:
- type: mcp
namespace: payments
port: 8080
tools:
- name: get-payment
description: "Look up a Stripe payment by charge ID."
inputParameters:
- name: charge_id
in: body
type: string
description: "The Stripe charge ID."
call: "stripe.get-charge"
with:
charge_id: "{{charge_id}}"
outputParameters:
- name: amount
type: string
mapping: "$.amount"
- name: status
type: string
mapping: "$.status"
- name: customer
type: string
mapping: "$.customer"
consumes:
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: charges
path: "/charges/{{charge_id}}"
inputParameters:
- name: charge_id
in: path
operations:
- name: get-charge
method: GET
Pulls membership billing data from Stripe, reconciles with Salesforce records, identifies discrepancies in Azure Databricks, and notifies the finance team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Subscription Billing Reconciliation Pipeline"
description: "Pulls membership billing data from Stripe, reconciles with Salesforce records, identifies discrepancies in Azure Databricks, and notifies the finance team via Microsoft Teams."
tags:
- membership
- finance
- stripe
- salesforce
- azure-databricks
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: billing-reconciliation
port: 8080
tools:
- name: reconcile-billing
description: "Given a billing period, reconcile Stripe charges with Salesforce member records."
inputParameters:
- name: billing_period
in: body
type: string
description: "The billing period (e.g., 2025-12)."
steps:
- name: get-stripe-data
type: call
call: "stripe.list-charges"
with:
period: "{{billing_period}}"
- name: get-sf-data
type: call
call: "salesforce.get-billing-records"
with:
period: "{{billing_period}}"
- name: find-discrepancies
type: call
call: "databricks.run-query"
with:
query: "SELECT * FROM billing_reconciliation WHERE period = '{{billing_period}}' AND status = 'discrepancy'"
- name: notify-finance
type: call
call: "msteams.send-message"
with:
channel_id: "finance"
text: "Billing reconciliation for {{billing_period}}: Stripe charges: {{get-stripe-data.total_count}}. SF records: {{get-sf-data.total_count}}. Discrepancies: {{find-discrepancies.discrepancy_count}}."
consumes:
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: charges
path: "/charges?created[gte]={{period_start}}&created[lte]={{period_end}}"
operations:
- name: list-charges
method: GET
- type: http
namespace: salesforce
baseUri: "https://lifetime.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: billing
path: "/query/?q=SELECT+Id,Amount__c+FROM+BillingRecord__c+WHERE+Period__c='{{period}}'"
inputParameters:
- name: period
in: query
operations:
- name: get-billing-records
method: GET
- type: http
namespace: databricks
baseUri: "https://lifetime-analytics.azuredatabricks.net/api/2.0"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: sql-queries
path: "/sql/statements"
operations:
- name: run-query
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Aggregates SAP data, scores in Snowflake, creates Google Sheets scorecards, and distributes via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Supplier Performance Pipeline"
description: "Aggregates SAP data, scores in Snowflake, creates Google Sheets scorecards, and distributes via Microsoft Outlook."
tags:
- procurement
- sap
- snowflake
- google-sheets
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: supplier-performance-pipeline
port: 8080
tools:
- name: execute
description: "Aggregates SAP data, scores in Snowflake, creates Google Sheets scorecards, and distributes via Microsoft Outlook."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "sap.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "snowflake.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "google-sheets.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "microsoft-outlook.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://api.sap.com/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: microsoft-outlook
baseUri: "https://api.microsoftoutlook.com/v1"
authentication:
type: bearer
token: "$secrets.microsoft_outlook_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Collects data from SAP, aggregates in Snowflake, generates reports in Google Sheets, and publishes to Confluence.
naftiko: "0.5"
info:
label: "Sustainability Reporting Pipeline"
description: "Collects data from SAP, aggregates in Snowflake, generates reports in Google Sheets, and publishes to Confluence."
tags:
- sustainability
- sap
- snowflake
- google-sheets
- confluence
capability:
exposes:
- type: mcp
namespace: sustainability-reporting-pipeline
port: 8080
tools:
- name: execute
description: "Collects data from SAP, aggregates in Snowflake, generates reports in Google Sheets, and publishes to Confluence."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "sap.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "snowflake.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "google-sheets.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "confluence.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://api.sap.com/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: confluence
baseUri: "https://api.confluence.com/v1"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Retrieves a Tableau dashboard embed URL for club analytics.
naftiko: "0.5"
info:
label: "Tableau Club Analytics Dashboard"
description: "Retrieves a Tableau dashboard embed URL for club analytics."
tags:
- analytics
- tableau
capability:
exposes:
- type: mcp
namespace: club-dashboards
port: 8080
tools:
- name: get-club-dashboard
description: "Retrieve the embed URL for a Tableau club analytics dashboard."
inputParameters:
- name: workbook_name
in: body
type: string
description: "The Tableau workbook name."
call: "tableau.get-workbook"
with:
workbook_name: "{{workbook_name}}"
outputParameters:
- name: embed_url
type: string
mapping: "$.workbook.contentUrl"
consumes:
- type: http
namespace: tableau
baseUri: "https://lifetime-tableau.online/api/3.14"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: workbooks
path: "/sites/{{site_id}}/workbooks?filter=name:eq:{{workbook_name}}"
inputParameters:
- name: workbook_name
in: query
operations:
- name: get-workbook
method: GET
Retrieves Tableau club performance analytics dashboard view.
naftiko: "0.5"
info:
label: "Tableau Club Analytics Lookup"
description: "Retrieves Tableau club performance analytics dashboard view."
tags:
- analytics
- tableau
capability:
exposes:
- type: mcp
namespace: tableau-clubs
port: 8080
tools:
- name: get-data
description: "Retrieves Tableau club performance analytics dashboard view."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "tableau-clubs.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: tableau-clubs
baseUri: "https://tableau.lifetime.com/api/3.19"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Posts jobs to Indeed, syncs to Workday, schedules via Zoom, and notifies via Slack.
naftiko: "0.5"
info:
label: "Talent Acquisition Pipeline"
description: "Posts jobs to Indeed, syncs to Workday, schedules via Zoom, and notifies via Slack."
tags:
- recruiting
- indeed
- workday
- zoom
- slack
capability:
exposes:
- type: mcp
namespace: talent-acquisition-pipeline
port: 8080
tools:
- name: execute
description: "Posts jobs to Indeed, syncs to Workday, schedules via Zoom, and notifies via Slack."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "indeed.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "workday.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "zoom.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "slack.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: indeed
baseUri: "https://api.indeed.com/v1"
authentication:
type: bearer
token: "$secrets.indeed_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: workday
baseUri: "https://api.workday.com/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: zoom
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: slack
baseUri: "https://api.slack.com/v1"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Queries membership trend data from Teradata.
naftiko: "0.5"
info:
label: "Teradata Membership Insights Query"
description: "Queries membership trend data from Teradata."
tags:
- analytics
- teradata
capability:
exposes:
- type: mcp
namespace: teradata-members
port: 8080
tools:
- name: get-data
description: "Queries membership trend data from Teradata."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "teradata-members.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: teradata-members
baseUri: "https://lifetime.teradata.com/api/v1"
authentication:
type: bearer
token: "$secrets.teradata_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
When a trainer completes a certification, updates their record in Workday, creates a recognition post on Microsoft Teams, and updates their profile in Salesforce.
naftiko: "0.5"
info:
label: "Trainer Certification Pipeline"
description: "When a trainer completes a certification, updates their record in Workday, creates a recognition post on Microsoft Teams, and updates their profile in Salesforce."
tags:
- hr
- training
- workday
- microsoft-teams
- salesforce
capability:
exposes:
- type: mcp
namespace: trainer-certifications
port: 8080
tools:
- name: process-certification
description: "Given trainer and certification details, update records and announce."
inputParameters:
- name: trainer_id
in: body
type: string
description: "The trainer Workday ID."
- name: certification_name
in: body
type: string
description: "The certification name."
- name: certification_date
in: body
type: string
description: "The certification date."
steps:
- name: update-workday
type: call
call: "workday.update-certification"
with:
worker_id: "{{trainer_id}}"
certification: "{{certification_name}}"
date: "{{certification_date}}"
- name: update-salesforce
type: call
call: "salesforce.update-trainer-profile"
with:
trainer_id: "{{trainer_id}}"
certification: "{{certification_name}}"
- name: announce
type: call
call: "msteams.send-message"
with:
channel_id: "trainer-team"
text: "Congratulations! {{update-workday.trainer_name}} has earned {{certification_name}} certification on {{certification_date}}!"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: certifications
path: "/workers/{{worker_id}}/certifications"
inputParameters:
- name: worker_id
in: path
operations:
- name: update-certification
method: POST
- type: http
namespace: salesforce
baseUri: "https://lifetime.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: trainers
path: "/sobjects/Trainer__c/{{trainer_id}}"
inputParameters:
- name: trainer_id
in: path
operations:
- name: update-trainer-profile
method: PATCH
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Pulls from Pluralsight, syncs with Workday, reports in Google Sheets, and alerts via Slack.
naftiko: "0.5"
info:
label: "Training Compliance Pipeline"
description: "Pulls from Pluralsight, syncs with Workday, reports in Google Sheets, and alerts via Slack."
tags:
- compliance
- pluralsight
- workday
- google-sheets
- slack
capability:
exposes:
- type: mcp
namespace: training-compliance-pipeline
port: 8080
tools:
- name: execute
description: "Pulls from Pluralsight, syncs with Workday, reports in Google Sheets, and alerts via Slack."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "pluralsight.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "workday.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "google-sheets.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "slack.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: pluralsight
baseUri: "https://api.pluralsight.com/v1"
authentication:
type: bearer
token: "$secrets.pluralsight_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: workday
baseUri: "https://api.workday.com/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: slack
baseUri: "https://api.slack.com/v1"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Matches SAP invoices, validates Salesforce contracts, processes payments, and logs in Google Sheets.
naftiko: "0.5"
info:
label: "Vendor Invoice Pipeline"
description: "Matches SAP invoices, validates Salesforce contracts, processes payments, and logs in Google Sheets."
tags:
- finance
- sap
- salesforce
- google-sheets
capability:
exposes:
- type: mcp
namespace: vendor-invoice-pipeline
port: 8080
tools:
- name: execute
description: "Matches SAP invoices, validates Salesforce contracts, processes payments, and logs in Google Sheets."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "sap.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "salesforce.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "google-sheets.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "google-sheets.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://api.sap.com/v1"
authentication:
type: bearer
token: "$secrets.sap_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: salesforce
baseUri: "https://api.salesforce.com/v1"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: google-sheets
baseUri: "https://api.googlesheets.com/v1"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
When a vendor invoice arrives, validates against the SAP purchase order, routes for approval in Workday, and notifies accounts payable via Microsoft Teams.
naftiko: "0.5"
info:
label: "Vendor Invoice Processing Pipeline"
description: "When a vendor invoice arrives, validates against the SAP purchase order, routes for approval in Workday, and notifies accounts payable via Microsoft Teams."
tags:
- finance
- accounts-payable
- sap
- workday
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: invoice-processing
port: 8080
tools:
- name: process-invoice
description: "Given an invoice and PO number, validate, route for approval, and notify AP."
inputParameters:
- name: invoice_number
in: body
type: string
description: "The vendor invoice number."
- name: po_number
in: body
type: string
description: "The SAP purchase order number."
- name: amount
in: body
type: string
description: "The invoice amount."
steps:
- name: validate-po
type: call
call: "sap.get-po"
with:
po_number: "{{po_number}}"
- name: route-approval
type: call
call: "workday.submit-approval"
with:
amount: "{{amount}}"
description: "Invoice {{invoice_number}} for PO {{po_number}}"
- name: notify-ap
type: call
call: "msteams.send-message"
with:
channel_id: "accounts-payable"
text: "Invoice {{invoice_number}} for PO {{po_number}}. Amount: ${{amount}}. Vendor: {{validate-po.Supplier.CompanyName}}. Approval routed."
consumes:
- type: http
namespace: sap
baseUri: "https://lifetime-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder('{{po_number}}')"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
method: GET
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: approvals
path: "/approvals"
operations:
- name: submit-approval
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Aggregates from Snowflake, generates Power BI reports, creates Confluence summaries, and distributes via Slack.
naftiko: "0.5"
info:
label: "Weekly Membership Digest Pipeline"
description: "Aggregates from Snowflake, generates Power BI reports, creates Confluence summaries, and distributes via Slack."
tags:
- membership
- snowflake
- power-bi
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: weekly-membership-digest-pipeline
port: 8080
tools:
- name: execute
description: "Aggregates from Snowflake, generates Power BI reports, creates Confluence summaries, and distributes via Slack."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "snowflake.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "power-bi.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "confluence.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "slack.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://api.snowflake.com/v1"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: power-bi
baseUri: "https://api.powerbi.com/v1"
authentication:
type: bearer
token: "$secrets.power_bi_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: confluence
baseUri: "https://api.confluence.com/v1"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: slack
baseUri: "https://api.slack.com/v1"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Retrieves employee benefits enrollment from Workday.
naftiko: "0.5"
info:
label: "Workday Employee Benefits Lookup"
description: "Retrieves employee benefits enrollment from Workday."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: workday-benefits
port: 8080
tools:
- name: get-data
description: "Retrieves employee benefits enrollment from Workday."
inputParameters:
- name: query_id
in: body
type: string
description: "The lookup identifier."
call: "workday-benefits.get-data"
with:
id: "{{query_id}}"
outputParameters:
- name: result
type: string
mapping: "$.data"
consumes:
- type: http
namespace: workday-benefits
baseUri: "https://wd5-impl-services1.workday.com/ccx/service/lifetime"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: data
path: "/{{id}}"
inputParameters:
- name: id
in: path
operations:
- name: get-data
method: GET
Looks up an employee in Workday by employee ID and returns name, department, title, and email.
naftiko: "0.5"
info:
label: "Workday Employee Directory Lookup"
description: "Looks up an employee in Workday by employee ID and returns name, department, title, and email."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr-directory
port: 8080
tools:
- name: get-employee
description: "Look up an employee by Workday worker ID."
inputParameters:
- name: employee_id
in: body
type: string
description: "The Workday worker ID."
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
outputParameters:
- name: full_name
type: string
mapping: "$.worker.descriptor"
- name: department
type: string
mapping: "$.worker.primarySupervisoryOrganization.descriptor"
- name: title
type: string
mapping: "$.worker.businessTitle"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
Uploads to YouTube, promotes via HubSpot, updates Airtable calendar, and notifies via Microsoft Teams.
naftiko: "0.5"
info:
label: "YouTube Fitness Content Pipeline"
description: "Uploads to YouTube, promotes via HubSpot, updates Airtable calendar, and notifies via Microsoft Teams."
tags:
- content
- youtube
- hubspot
- airtable
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: youtube-fitness-content-pipeline
port: 8080
tools:
- name: execute
description: "Uploads to YouTube, promotes via HubSpot, updates Airtable calendar, and notifies via Microsoft Teams."
inputParameters:
- name: input_id
in: body
type: string
description: "The primary input identifier."
- name: context
in: body
type: string
description: "Additional context parameter."
steps:
- name: step-1
type: call
call: "youtube.execute-step-1"
with:
input: "{{input_id}}"
context: "{{context}}"
- name: step-2
type: call
call: "hubspot.execute-step-2"
with:
data: "{{step-1.result}}"
- name: step-3
type: call
call: "airtable.execute-step-3"
with:
data: "{{step-2.result}}"
- name: step-4
type: call
call: "microsoft-teams.execute-step-4"
with:
data: "{{step-3.result}}"
id: "{{input_id}}"
consumes:
- type: http
namespace: youtube
baseUri: "https://api.youtube.com/v1"
authentication:
type: bearer
token: "$secrets.youtube_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubspot.com/v1"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: airtable
baseUri: "https://api.airtable.com/v1"
authentication:
type: bearer
token: "$secrets.airtable_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
- type: http
namespace: microsoft-teams
baseUri: "https://api.microsoftteams.com/v1"
authentication:
type: bearer
token: "$secrets.microsoft_teams_token"
resources:
- name: resources
path: "/{{id}}"
operations:
- name: execute
method: POST
Retrieves a Zendesk support ticket by ID for the member support team.
naftiko: "0.5"
info:
label: "Zendesk Member Support Ticket Lookup"
description: "Retrieves a Zendesk support ticket by ID for the member support team."
tags:
- membership
- zendesk
capability:
exposes:
- type: mcp
namespace: member-support
port: 8080
tools:
- name: get-support-ticket
description: "Look up a Zendesk support ticket by ticket ID."
inputParameters:
- name: ticket_id
in: body
type: string
description: "The Zendesk ticket ID."
call: "zendesk.get-ticket"
with:
ticket_id: "{{ticket_id}}"
outputParameters:
- name: subject
type: string
mapping: "$.ticket.subject"
- name: status
type: string
mapping: "$.ticket.status"
- name: priority
type: string
mapping: "$.ticket.priority"
consumes:
- type: http
namespace: zendesk
baseUri: "https://lifetime.zendesk.com/api/v2"
authentication:
type: basic
username: "$secrets.zendesk_user"
password: "$secrets.zendesk_token"
resources:
- name: tickets
path: "/tickets/{{ticket_id}}"
inputParameters:
- name: ticket_id
in: path
operations:
- name: get-ticket
method: GET