Zoom Capabilities
Naftiko 0.5 capability definitions for Zoom - 100 capabilities showing integration workflows and service orchestrations.
Retrieves the Zoom AI Companion meeting summary for a completed meeting, including key topics, action items, and next steps.
naftiko: "0.5"
info:
label: "AI Companion Meeting Summary"
description: "Retrieves the Zoom AI Companion meeting summary for a completed meeting, including key topics, action items, and next steps."
tags:
- communications
- meetings
- ai-companion
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-ai
port: 8080
tools:
- name: get-meeting-summary
description: "Fetch the AI Companion-generated summary for a completed Zoom meeting."
inputParameters:
- name: meeting_id
in: body
type: string
description: "The Zoom meeting UUID."
call: "zoom.get-ai-summary"
with:
meeting_id: "{{meeting_id}}"
outputParameters:
- name: summary_text
type: string
mapping: "$.meeting_summary.summary_details.summary_overview"
- name: action_items
type: array
mapping: "$.meeting_summary.summary_details.next_steps"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: meeting-summaries
path: "/meetings/{{meeting_id}}/meeting_summary"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-ai-summary
method: GET
Manages annual compliance certifications by distributing attestations, tracking completion, and filing results.
naftiko: "0.5"
info:
label: "Annual Compliance Certification Orchestrator"
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
tags:
- compliance
- hr
- legal
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-annual-compliance-certification-orchestrator
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Annual Compliance Certification Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation.
naftiko: "0.5"
info:
label: "API Lifecycle Management Orchestrator"
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
tags:
- engineering
- api
- operations
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: run-api-lifecycle-management-orchestrator
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed API Lifecycle Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Sends a text message to a Zoom Team Chat channel on behalf of a user or chatbot.
naftiko: "0.5"
info:
label: "Chat Channel Message Sender"
description: "Sends a text message to a Zoom Team Chat channel on behalf of a user or chatbot."
tags:
- communications
- team-chat
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-chat
port: 8080
tools:
- name: send-channel-message
description: "Post a text message to a Zoom Team Chat channel."
inputParameters:
- name: channel_id
in: body
type: string
description: "The Zoom Team Chat channel ID."
- name: message
in: body
type: string
description: "The message text to send."
call: "zoom.post-channel-message"
with:
to_channel: "{{channel_id}}"
message: "{{message}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: chat-messages
path: "/chat/users/me/messages"
operations:
- name: post-channel-message
method: POST
Retrieves a Confluence wiki page.
naftiko: "0.5"
info:
label: "Confluence Page Viewer"
description: "Retrieves a Confluence wiki page."
tags:
- collaboration
- confluence
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-confluence
description: "Retrieves a Confluence wiki page."
inputParameters:
- name: entity_id
in: body
type: string
description: "The confluence page viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.zoom.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: confluence
path: "/confluence/page/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-confluence
method: GET
Pulls Zoom Contact Center agent metrics, enriches with HR data from Workday, and pushes a summary to a Google Sheets dashboard.
naftiko: "0.5"
info:
label: "Contact Center Agent Performance Dashboard"
description: "Pulls Zoom Contact Center agent metrics, enriches with HR data from Workday, and pushes a summary to a Google Sheets dashboard."
tags:
- communications
- contact-center
- workday
- google-sheets
- reporting
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-cc-reporting
port: 8080
tools:
- name: generate-agent-performance-report
description: "Given a Zoom Contact Center queue ID and Google Sheet ID, pull agent metrics, enrich from Workday, and update the spreadsheet."
inputParameters:
- name: queue_id
in: body
type: string
description: "The Zoom Contact Center queue ID."
- name: spreadsheet_id
in: body
type: string
description: "The Google Sheets spreadsheet ID."
steps:
- name: get-agent-metrics
type: call
call: "zoom.get-queue-agents"
with:
queue_id: "{{queue_id}}"
- name: get-employee-data
type: call
call: "workday.get-worker"
with:
worker_id: "{{get-agent-metrics.agents[0].user_id}}"
- name: update-sheet
type: call
call: "gsheets.append-rows"
with:
spreadsheet_id: "{{spreadsheet_id}}"
range: "AgentMetrics!A1"
values:
- "{{get-employee-data.full_name}}"
- "{{get-employee-data.department}}"
- "{{get-agent-metrics.agents[0].calls_handled}}"
- "{{get-agent-metrics.agents[0].avg_handle_time}}"
- "{{get-agent-metrics.agents[0].avg_wait_time}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: queue-agents
path: "/contact_center/queues/{{queue_id}}/agents"
inputParameters:
- name: queue_id
in: path
operations:
- name: get-queue-agents
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: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4/spreadsheets"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: values
path: "/{{spreadsheet_id}}/values/{{range}}:append"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: append-rows
method: POST
After a Zoom Contact Center engagement, sends a CSAT survey link via Zoom Team Chat to the customer and logs the survey send event to Salesforce as an activity.
naftiko: "0.5"
info:
label: "Contact Center CSAT Survey via Zoom"
description: "After a Zoom Contact Center engagement, sends a CSAT survey link via Zoom Team Chat to the customer and logs the survey send event to Salesforce as an activity."
tags:
- communications
- contact-center
- team-chat
- salesforce
- customer-satisfaction
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-cc-csat
port: 8080
tools:
- name: send-csat-survey
description: "Given a Contact Center engagement ID, customer email, and survey URL, send the survey and log to Salesforce."
inputParameters:
- name: engagement_id
in: body
type: string
description: "The Zoom Contact Center engagement ID."
- name: customer_email
in: body
type: string
description: "The customer email address."
- name: survey_url
in: body
type: string
description: "The CSAT survey URL."
steps:
- name: get-engagement
type: call
call: "zoom.get-engagement-details"
with:
engagement_id: "{{engagement_id}}"
- name: send-survey
type: call
call: "zoom.post-chat-message"
with:
to_contact: "{{customer_email}}"
message: "Thank you for contacting us. Please take a moment to rate your experience: {{survey_url}}"
- name: log-salesforce
type: call
call: "salesforce.create-task"
with:
subject: "CSAT survey sent - Engagement {{engagement_id}}"
description: "Survey sent to {{customer_email}} after engagement with agent {{get-engagement.agent_name}}. Channel: {{get-engagement.channel}}."
status: "Completed"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: engagements
path: "/contact_center/engagements/{{engagement_id}}"
inputParameters:
- name: engagement_id
in: path
operations:
- name: get-engagement-details
method: GET
- name: chat-messages
path: "/chat/users/me/messages"
operations:
- name: post-chat-message
method: POST
- type: http
namespace: salesforce
baseUri: "https://your-instance.salesforce.com/services/data/v59.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: tasks
path: "/sobjects/Task"
operations:
- name: create-task
method: POST
When a Zoom Contact Center engagement concludes, retrieves the engagement details, creates a ServiceNow incident with the interaction summary, and sends a follow-up message to the customer via Zoom Team Chat.
naftiko: "0.5"
info:
label: "Contact Center Engagement to ServiceNow Ticket"
description: "When a Zoom Contact Center engagement concludes, retrieves the engagement details, creates a ServiceNow incident with the interaction summary, and sends a follow-up message to the customer via Zoom Team Chat."
tags:
- communications
- contact-center
- servicenow
- team-chat
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-contact-center-ops
port: 8080
tools:
- name: create-ticket-from-engagement
description: "Given a Zoom Contact Center engagement ID, create a ServiceNow incident and notify the customer."
inputParameters:
- name: engagement_id
in: body
type: string
description: "The Zoom Contact Center engagement ID."
- name: customer_email
in: body
type: string
description: "The customer email for follow-up notification."
steps:
- name: get-engagement
type: call
call: "zoom.get-engagement"
with:
engagement_id: "{{engagement_id}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Contact Center Engagement {{engagement_id}}"
category: "customer_support"
description: "Channel: {{get-engagement.channel}}\nAgent: {{get-engagement.agent_name}}\nDuration: {{get-engagement.duration}}\nDisposition: {{get-engagement.disposition}}"
- name: notify-customer
type: call
call: "zoom.post-chat-message"
with:
to_contact: "{{customer_email}}"
message: "Thank you for contacting support. Your ticket number is {{create-incident.number}}. We will follow up shortly."
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: engagements
path: "/contact_center/engagements/{{engagement_id}}"
inputParameters:
- name: engagement_id
in: path
operations:
- name: get-engagement
method: GET
- name: chat-messages
path: "/chat/users/me/messages"
operations:
- name: post-chat-message
method: POST
- type: http
namespace: servicenow
baseUri: "https://your-instance.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
Fetches the current queue status for a Zoom Contact Center queue, including agents online, calls waiting, and average wait time.
naftiko: "0.5"
info:
label: "Contact Center Queue Status"
description: "Fetches the current queue status for a Zoom Contact Center queue, including agents online, calls waiting, and average wait time."
tags:
- communications
- contact-center
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-contact-center
port: 8080
tools:
- name: get-queue-status
description: "Retrieve real-time queue metrics for a Zoom Contact Center queue."
inputParameters:
- name: queue_id
in: body
type: string
description: "The Zoom Contact Center queue ID."
call: "zoom.get-queue-metrics"
with:
queue_id: "{{queue_id}}"
outputParameters:
- name: agents_online
type: number
mapping: "$.agents_online"
- name: calls_in_queue
type: number
mapping: "$.calls_in_queue"
- name: avg_wait_time
type: number
mapping: "$.avg_wait_time_seconds"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: contact-center-queues
path: "/contact_center/queues/{{queue_id}}/metrics"
inputParameters:
- name: queue_id
in: path
operations:
- name: get-queue-metrics
method: GET
Monitors Zoom Contact Center queue wait times. When average wait time exceeds the SLA threshold, creates a PagerDuty incident, sends a Slack alert, and logs the breach to ServiceNow.
naftiko: "0.5"
info:
label: "Contact Center SLA Breach Escalation"
description: "Monitors Zoom Contact Center queue wait times. When average wait time exceeds the SLA threshold, creates a PagerDuty incident, sends a Slack alert, and logs the breach to ServiceNow."
tags:
- communications
- contact-center
- pagerduty
- slack
- servicenow
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-cc-sla
port: 8080
tools:
- name: escalate-sla-breach
description: "Given a Zoom Contact Center queue ID and SLA threshold, check wait times and escalate if breached."
inputParameters:
- name: queue_id
in: body
type: string
description: "The Zoom Contact Center queue ID."
- name: sla_threshold_seconds
in: body
type: number
description: "SLA threshold in seconds."
- name: slack_channel
in: body
type: string
description: "Slack channel for alerts."
steps:
- name: get-queue-metrics
type: call
call: "zoom.get-queue-status"
with:
queue_id: "{{queue_id}}"
- name: create-pagerduty
type: call
call: "pagerduty.create-incident"
with:
service_id: "ZOOM_CC_SVC"
title: "SLA Breach: Queue {{queue_id}} avg wait {{get-queue-metrics.avg_wait_time_seconds}}s"
body: "Queue: {{queue_id}}\nAvg Wait: {{get-queue-metrics.avg_wait_time_seconds}}s\nThreshold: {{sla_threshold_seconds}}s\nCalls Waiting: {{get-queue-metrics.calls_in_queue}}\nAgents Online: {{get-queue-metrics.agents_online}}"
- name: alert-slack
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "SLA BREACH: Zoom Contact Center queue {{queue_id}} - avg wait time {{get-queue-metrics.avg_wait_time_seconds}}s exceeds {{sla_threshold_seconds}}s threshold. {{get-queue-metrics.calls_in_queue}} calls waiting."
- name: log-servicenow
type: call
call: "servicenow.create-incident"
with:
short_description: "Contact Center SLA breach - Queue {{queue_id}}"
category: "contact_center"
priority: "2"
description: "Average wait time {{get-queue-metrics.avg_wait_time_seconds}}s exceeded SLA of {{sla_threshold_seconds}}s."
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: queue-metrics
path: "/contact_center/queues/{{queue_id}}/metrics"
inputParameters:
- name: queue_id
in: path
operations:
- name: get-queue-status
method: GET
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
- type: http
namespace: servicenow
baseUri: "https://your-instance.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
Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters.
naftiko: "0.5"
info:
label: "Cross-Functional Project Kickoff Orchestrator"
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
tags:
- project-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: project-management
port: 8080
tools:
- name: run-cross-functional-project-kickoff-orchestrator
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Cross-Functional Project Kickoff Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Handles customer data privacy requests by locating records, processing deletions, and confirming compliance.
naftiko: "0.5"
info:
label: "Customer Data Privacy Request Handler"
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
tags:
- compliance
- privacy
- customer-service
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-customer-data-privacy-request-handler
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Data Privacy Request Handler for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations.
naftiko: "0.5"
info:
label: "Customer Journey Mapping Orchestrator"
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
tags:
- customer-experience
- analytics
- product-management
capability:
exposes:
- type: mcp
namespace: customer-experience
port: 8080
tools:
- name: run-customer-journey-mapping-orchestrator
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Journey Mapping Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
After a Zoom webinar, fetches the Q&A report, creates a Salesforce case for each unanswered question, and notifies the sales team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Customer Webinar Follow-Up Pipeline"
description: "After a Zoom webinar, fetches the Q&A report, creates a Salesforce case for each unanswered question, and notifies the sales team via Microsoft Teams."
tags:
- communications
- webinars
- salesforce
- microsoft-teams
- customer-service
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-webinar-followup
port: 8080
tools:
- name: process-webinar-questions
description: "Given a Zoom webinar ID, fetch unanswered Q&A, create Salesforce cases, and notify the sales team in Teams."
inputParameters:
- name: webinar_id
in: body
type: string
description: "The Zoom webinar ID."
- name: teams_channel_webhook
in: body
type: string
description: "Microsoft Teams incoming webhook URL."
steps:
- name: get-qa-report
type: call
call: "zoom.get-webinar-qa"
with:
webinar_id: "{{webinar_id}}"
- name: get-webinar
type: call
call: "zoom.get-webinar-info"
with:
webinar_id: "{{webinar_id}}"
- name: create-case
type: call
call: "salesforce.create-case"
with:
subject: "Unanswered webinar question from {{get-qa-report.questions[0].email}}"
description: "Question: {{get-qa-report.questions[0].question}}\nWebinar: {{get-webinar.topic}}\nAsked by: {{get-qa-report.questions[0].name}}"
origin: "Zoom Webinar"
- name: notify-teams
type: call
call: "msteams.send-webhook"
with:
webhook_url: "{{teams_channel_webhook}}"
text: "New unanswered webinar question from {{get-qa-report.questions[0].name}}: '{{get-qa-report.questions[0].question}}'. Salesforce case: {{create-case.id}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: webinar-qa
path: "/report/webinars/{{webinar_id}}/qa"
inputParameters:
- name: webinar_id
in: path
operations:
- name: get-webinar-qa
method: GET
- name: webinars
path: "/webinars/{{webinar_id}}"
inputParameters:
- name: webinar_id
in: path
operations:
- name: get-webinar-info
method: GET
- type: http
namespace: salesforce
baseUri: "https://your-instance.salesforce.com/services/data/v59.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: msteams
baseUri: "{{teams_channel_webhook}}"
authentication:
type: none
resources:
- name: webhook
path: ""
operations:
- name: send-webhook
method: POST
For a Zoom user, lists all meetings from the previous day, retrieves AI Companion summaries for each, and compiles them into a single email sent via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Daily Meeting Summary Digest"
description: "For a Zoom user, lists all meetings from the previous day, retrieves AI Companion summaries for each, and compiles them into a single email sent via Microsoft Outlook."
tags:
- communications
- meetings
- ai-companion
- microsoft-outlook
- productivity
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-daily-digest
port: 8080
tools:
- name: send-daily-meeting-digest
description: "Given a Zoom user email and date, compile AI summaries for all meetings that day and email the digest."
inputParameters:
- name: user_email
in: body
type: string
description: "The Zoom user email."
- name: date
in: body
type: string
description: "The date to summarize in YYYY-MM-DD format."
steps:
- name: list-meetings
type: call
call: "zoom.list-user-meetings"
with:
user_id: "{{user_email}}"
type: "previous_meetings"
from: "{{date}}"
to: "{{date}}"
- name: get-summary
type: call
call: "zoom.get-ai-summary"
with:
meeting_id: "{{list-meetings.meetings[0].uuid}}"
- name: send-digest
type: call
call: "outlook.send-mail"
with:
user_upn: "{{user_email}}"
to: "{{user_email}}"
subject: "Your Zoom Meeting Digest for {{date}}"
body: "Meetings attended: {{list-meetings.total_records}}\n\n1. {{list-meetings.meetings[0].topic}}\nSummary: {{get-summary.summary_text}}\nAction Items: {{get-summary.action_items}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: user-meetings
path: "/users/{{user_id}}/meetings"
inputParameters:
- name: user_id
in: path
- name: type
in: query
- name: from
in: query
- name: to
in: query
operations:
- name: list-user-meetings
method: GET
- name: meeting-summaries
path: "/meetings/{{meeting_id}}/meeting_summary"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-ai-summary
method: GET
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/users/{{user_upn}}/sendMail"
inputParameters:
- name: user_upn
in: path
operations:
- name: send-mail
method: POST
Pulls meeting quality-of-service data from the Zoom Dashboard API, including audio/video bitrate, latency, jitter, and packet loss for diagnostics.
naftiko: "0.5"
info:
label: "Dashboard Meeting Quality"
description: "Pulls meeting quality-of-service data from the Zoom Dashboard API, including audio/video bitrate, latency, jitter, and packet loss for diagnostics."
tags:
- communications
- meetings
- monitoring
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-dashboard
port: 8080
tools:
- name: get-meeting-quality
description: "Fetch QoS metrics for a Zoom meeting from the Dashboard API."
inputParameters:
- name: meeting_id
in: body
type: string
description: "The Zoom meeting UUID."
call: "zoom.get-meeting-qos"
with:
meeting_id: "{{meeting_id}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: dashboard-meeting-qos
path: "/metrics/meetings/{{meeting_id}}/participants/qos"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-meeting-qos
method: GET
Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports.
naftiko: "0.5"
info:
label: "Data Governance Review Orchestrator"
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
tags:
- data-governance
- compliance
- analytics
capability:
exposes:
- type: mcp
namespace: data-governance
port: 8080
tools:
- name: run-data-governance-review-orchestrator
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Data Governance Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks.
naftiko: "0.5"
info:
label: "Digital Transformation Progress Orchestrator"
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
tags:
- strategy
- analytics
- project-management
capability:
exposes:
- type: mcp
namespace: strategy
port: 8080
tools:
- name: run-digital-transformation-progress-orchestrator
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Digital Transformation Progress Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Executes disaster recovery tests by failing over systems, validating recovery, and documenting results.
naftiko: "0.5"
info:
label: "Disaster Recovery Test Orchestrator"
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
tags:
- infrastructure
- operations
- compliance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-disaster-recovery-test-orchestrator
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Disaster Recovery Test Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews.
naftiko: "0.5"
info:
label: "Employee Offboarding Orchestrator"
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
tags:
- hr
- identity
- operations
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: run-employee-offboarding-orchestrator
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Employee Offboarding Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI.
naftiko: "0.5"
info:
label: "Executive Dashboard Refresh Orchestrator"
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
tags:
- analytics
- power-bi
- business
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-executive-dashboard-refresh-orchestrator
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Executive Dashboard Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a file from Google Drive.
naftiko: "0.5"
info:
label: "Google Drive File Viewer"
description: "Retrieves a file from Google Drive."
tags:
- collaboration
- google-drive
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-google
description: "Retrieves a file from Google Drive."
inputParameters:
- name: entity_id
in: body
type: string
description: "The google drive file viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.zoom.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: google
path: "/google/drive/file/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-google
method: GET
Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests.
naftiko: "0.5"
info:
label: "Infrastructure Capacity Planning Orchestrator"
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
tags:
- infrastructure
- planning
- finance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-infrastructure-capacity-planning-orchestrator
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Infrastructure Capacity Planning Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams.
naftiko: "0.5"
info:
label: "IT Change Management Orchestrator"
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
tags:
- it
- servicenow
- operations
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: run-it-change-management-orchestrator
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed IT Change Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a Jira ticket by issue key.
naftiko: "0.5"
info:
label: "Jira Ticket Viewer"
description: "Retrieves a Jira ticket by issue key."
tags:
- engineering
- jira
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: get-jira
description: "Retrieves a Jira ticket by issue key."
inputParameters:
- name: entity_id
in: body
type: string
description: "The jira ticket viewer identifier."
call: "engineering-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: engineering-api
baseUri: "https://api.zoom.com/engineering/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: jira
path: "/jira/ticket/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-jira
method: GET
Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates.
naftiko: "0.5"
info:
label: "Knowledge Base Refresh Orchestrator"
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
tags:
- knowledge-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: knowledge-management
port: 8080
tools:
- name: run-knowledge-base-refresh-orchestrator
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Knowledge Base Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Fetches cloud recording files for a given Zoom user within a date range. Returns recording topic, file type, size, and download URL for compliance and content review.
naftiko: "0.5"
info:
label: "List User Recordings"
description: "Fetches cloud recording files for a given Zoom user within a date range. Returns recording topic, file type, size, and download URL for compliance and content review."
tags:
- communications
- recordings
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-recordings
port: 8080
tools:
- name: list-user-recordings
description: "Retrieve all cloud recordings for a Zoom user between two dates."
inputParameters:
- name: user_id
in: body
type: string
description: "The Zoom user ID or email."
- name: from_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: to_date
in: body
type: string
description: "End date in YYYY-MM-DD format."
call: "zoom.get-recordings"
with:
user_id: "{{user_id}}"
from: "{{from_date}}"
to: "{{to_date}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: recordings
path: "/users/{{user_id}}/recordings"
inputParameters:
- name: user_id
in: path
- name: from
in: query
- name: to
in: query
operations:
- name: get-recordings
method: GET
Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports.
naftiko: "0.5"
info:
label: "Marketing Campaign Performance Orchestrator"
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
tags:
- marketing
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: marketing
port: 8080
tools:
- name: run-marketing-campaign-performance-orchestrator
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Marketing Campaign Performance Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves full details for a Zoom meeting by meeting ID, including topic, start time, duration, host, and join URL. Used by scheduling and operations teams to verify meeting configuration.
naftiko: "0.5"
info:
label: "Meeting Details Lookup"
description: "Retrieves full details for a Zoom meeting by meeting ID, including topic, start time, duration, host, and join URL. Used by scheduling and operations teams to verify meeting configuration."
tags:
- communications
- meetings
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-meetings
port: 8080
tools:
- name: get-meeting-details
description: "Look up a Zoom meeting by ID and return its topic, host, start time, duration, timezone, and join URL."
inputParameters:
- name: meeting_id
in: body
type: string
description: "The Zoom meeting ID."
call: "zoom.get-meeting"
with:
meeting_id: "{{meeting_id}}"
outputParameters:
- name: topic
type: string
mapping: "$.topic"
- name: host_email
type: string
mapping: "$.host_email"
- name: start_time
type: string
mapping: "$.start_time"
- name: duration
type: number
mapping: "$.duration"
- name: join_url
type: string
mapping: "$.join_url"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: meetings
path: "/meetings/{{meeting_id}}"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-meeting
method: GET
After a Zoom meeting ends, compares invited attendees against actual participants. For each no-show, sends a follow-up email via Microsoft Outlook and logs to a Salesforce activity.
naftiko: "0.5"
info:
label: "Meeting No-Show Follow-Up"
description: "After a Zoom meeting ends, compares invited attendees against actual participants. For each no-show, sends a follow-up email via Microsoft Outlook and logs to a Salesforce activity."
tags:
- communications
- meetings
- microsoft-outlook
- salesforce
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-meeting-followup
port: 8080
tools:
- name: follow-up-no-shows
description: "Given a Zoom meeting ID and host email, identify attendees who did not join and send follow-up emails plus log in Salesforce."
inputParameters:
- name: meeting_id
in: body
type: string
description: "The Zoom meeting UUID."
- name: host_email
in: body
type: string
description: "The meeting host email."
steps:
- name: get-meeting
type: call
call: "zoom.get-meeting-details"
with:
meeting_id: "{{meeting_id}}"
- name: get-participants
type: call
call: "zoom.get-participant-report"
with:
meeting_id: "{{meeting_id}}"
- name: send-followup
type: call
call: "outlook.send-mail"
with:
user_upn: "{{host_email}}"
to: "{{get-meeting.settings.alternative_hosts}}"
subject: "Missed: {{get-meeting.topic}}"
body: "You were invited to '{{get-meeting.topic}}' but were not detected among attendees. Would you like to reschedule? Meeting recording may be available."
- name: log-activity
type: call
call: "salesforce.create-task"
with:
subject: "Zoom meeting no-show follow-up: {{get-meeting.topic}}"
description: "Meeting {{meeting_id}} on {{get-meeting.start_time}}. Participants: {{get-participants.total_records}}. Follow-up sent."
status: "Completed"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: meetings
path: "/meetings/{{meeting_id}}"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-meeting-details
method: GET
- name: participant-report
path: "/report/meetings/{{meeting_id}}/participants"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-participant-report
method: GET
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/users/{{user_upn}}/sendMail"
inputParameters:
- name: user_upn
in: path
operations:
- name: send-mail
method: POST
- type: http
namespace: salesforce
baseUri: "https://your-instance.salesforce.com/services/data/v59.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: tasks
path: "/sobjects/Task"
operations:
- name: create-task
method: POST
Retrieves the participant report for a past Zoom meeting, returning each attendee name, join time, leave time, and duration. Used for attendance tracking and compliance.
naftiko: "0.5"
info:
label: "Meeting Participant Report"
description: "Retrieves the participant report for a past Zoom meeting, returning each attendee name, join time, leave time, and duration. Used for attendance tracking and compliance."
tags:
- communications
- meetings
- reporting
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-reports
port: 8080
tools:
- name: get-meeting-participants
description: "Fetch the participant report for a completed Zoom meeting by meeting ID."
inputParameters:
- name: meeting_id
in: body
type: string
description: "The Zoom meeting UUID or meeting ID."
call: "zoom.get-participant-report"
with:
meeting_id: "{{meeting_id}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: participant-report
path: "/report/meetings/{{meeting_id}}/participants"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-participant-report
method: GET
Pulls Zoom Dashboard QoS metrics for a meeting and pushes custom metrics to Datadog for monitoring. If latency exceeds threshold, sends a Slack alert.
naftiko: "0.5"
info:
label: "Meeting Quality Alert to Datadog"
description: "Pulls Zoom Dashboard QoS metrics for a meeting and pushes custom metrics to Datadog for monitoring. If latency exceeds threshold, sends a Slack alert."
tags:
- communications
- meetings
- monitoring
- datadog
- slack
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-quality-monitoring
port: 8080
tools:
- name: report-meeting-quality
description: "Given a Zoom meeting UUID and latency threshold, push QoS metrics to Datadog and alert Slack if degraded."
inputParameters:
- name: meeting_id
in: body
type: string
description: "The Zoom meeting UUID."
- name: latency_threshold_ms
in: body
type: number
description: "Latency threshold in milliseconds for alerting."
- name: slack_channel
in: body
type: string
description: "Slack channel for quality alerts."
steps:
- name: get-qos
type: call
call: "zoom.get-meeting-qos"
with:
meeting_id: "{{meeting_id}}"
- name: push-metrics
type: call
call: "datadog.submit-metrics"
with:
series:
metric: "zoom.meeting.latency"
points: "{{get-qos.audio_input.latency}}"
tags:
- "meeting_id:{{meeting_id}}"
- name: alert-slack
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Zoom Quality Alert: Meeting {{meeting_id}} audio latency is {{get-qos.audio_input.latency}}ms (threshold: {{latency_threshold_ms}}ms). Jitter: {{get-qos.audio_input.jitter}}ms, Packet Loss: {{get-qos.audio_input.avg_loss}}%"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: meeting-qos
path: "/metrics/meetings/{{meeting_id}}/participants/qos"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-meeting-qos
method: GET
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: metrics
path: "/series"
operations:
- name: submit-metrics
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Pulls Zoom operation log entries for recording access events and forwards them to Splunk for security audit and compliance monitoring.
naftiko: "0.5"
info:
label: "Meeting Recording Access Audit to Splunk"
description: "Pulls Zoom operation log entries for recording access events and forwards them to Splunk for security audit and compliance monitoring."
tags:
- communications
- recordings
- splunk
- security
- compliance
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-recording-audit
port: 8080
tools:
- name: audit-recording-access
description: "Given a date range, pull Zoom recording access logs and forward to Splunk."
inputParameters:
- name: from_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: to_date
in: body
type: string
description: "End date in YYYY-MM-DD format."
steps:
- name: get-operation-logs
type: call
call: "zoom.get-operation-logs"
with:
from: "{{from_date}}"
to: "{{to_date}}"
category_type: "recording"
- name: send-to-splunk
type: call
call: "splunk.send-event"
with:
index: "zoom_audit"
sourcetype: "zoom:recording:access"
event: "{{get-operation-logs.operation_logs}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: operation-logs
path: "/report/operationlogs"
inputParameters:
- name: from
in: query
- name: to
in: query
- name: category_type
in: query
operations:
- name: get-operation-logs
method: GET
- type: http
namespace: splunk
baseUri: "https://your-instance.splunkcloud.com:8088"
authentication:
type: bearer
token: "$secrets.splunk_hec_token"
resources:
- name: events
path: "/services/collector/event"
operations:
- name: send-event
method: POST
Retrieves the status and URL of a meeting recording.
naftiko: "0.5"
info:
label: "Meeting Recording Status"
description: "Retrieves the status and URL of a meeting recording."
tags:
- meetings
- content-management
capability:
exposes:
- type: mcp
namespace: meetings
port: 8080
tools:
- name: get-meeting
description: "Retrieves the status and URL of a meeting recording."
inputParameters:
- name: entity_id
in: body
type: string
description: "The meeting recording status identifier."
call: "meetings-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: meetings-api
baseUri: "https://api.zoom.com/meetings/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: meeting
path: "/meeting/recording/status/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-meeting
method: GET
After a Zoom meeting recording completes, downloads the recording metadata and uploads a reference document to Google Drive with a link, then notifies the host in Zoom Team Chat.
naftiko: "0.5"
info:
label: "Meeting Recording to Google Drive Archiver"
description: "After a Zoom meeting recording completes, downloads the recording metadata and uploads a reference document to Google Drive with a link, then notifies the host in Zoom Team Chat."
tags:
- communications
- recordings
- google-drive
- team-chat
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-recording-archive
port: 8080
tools:
- name: archive-recording-to-drive
description: "Given a Zoom meeting UUID and Google Drive folder ID, fetch recording metadata, create a reference doc in Drive, and notify the meeting host via Team Chat."
inputParameters:
- name: meeting_id
in: body
type: string
description: "The Zoom meeting UUID."
- name: drive_folder_id
in: body
type: string
description: "The Google Drive folder ID for archiving."
steps:
- name: get-recordings
type: call
call: "zoom.get-meeting-recordings"
with:
meeting_id: "{{meeting_id}}"
- name: upload-doc
type: call
call: "gdrive.create-file"
with:
folder_id: "{{drive_folder_id}}"
name: "Zoom Recording - {{get-recordings.topic}} - {{get-recordings.start_time}}"
content: "Recording download: {{get-recordings.recording_files[0].download_url}}\nDuration: {{get-recordings.duration}} minutes\nHost: {{get-recordings.host_email}}"
- name: notify-host
type: call
call: "zoom.post-chat-message"
with:
to_contact: "{{get-recordings.host_email}}"
message: "Your Zoom recording for '{{get-recordings.topic}}' has been archived to Google Drive: {{upload-doc.webViewLink}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: recordings
path: "/meetings/{{meeting_id}}/recordings"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-meeting-recordings
method: GET
- name: chat-messages
path: "/chat/users/me/messages"
operations:
- name: post-chat-message
method: POST
- type: http
namespace: gdrive
baseUri: "https://www.googleapis.com/upload/drive/v3"
authentication:
type: bearer
token: "$secrets.google_drive_token"
resources:
- name: files
path: "/files"
inputParameters:
- name: uploadType
in: query
value: "multipart"
operations:
- name: create-file
method: POST
Creates a Zoom meeting for a user, then adds it as a calendar event in Microsoft Outlook with the join URL and dial-in numbers.
naftiko: "0.5"
info:
label: "Meeting Scheduling via Microsoft Outlook"
description: "Creates a Zoom meeting for a user, then adds it as a calendar event in Microsoft Outlook with the join URL and dial-in numbers."
tags:
- communications
- meetings
- microsoft-outlook
- scheduling
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-outlook-scheduling
port: 8080
tools:
- name: schedule-meeting-with-calendar
description: "Create a Zoom meeting and synchronize it to a Microsoft Outlook calendar event."
inputParameters:
- name: host_email
in: body
type: string
description: "The Zoom host user email."
- name: topic
in: body
type: string
description: "Meeting topic."
- name: start_time
in: body
type: string
description: "Start time in ISO 8601 format."
- name: duration
in: body
type: number
description: "Duration in minutes."
- name: attendees
in: body
type: string
description: "Comma-separated attendee emails."
steps:
- name: create-meeting
type: call
call: "zoom.create-meeting"
with:
user_id: "{{host_email}}"
topic: "{{topic}}"
start_time: "{{start_time}}"
duration: "{{duration}}"
type: 2
- name: create-calendar-event
type: call
call: "outlook.create-event"
with:
user_upn: "{{host_email}}"
subject: "{{topic}}"
start: "{{start_time}}"
duration_minutes: "{{duration}}"
attendees: "{{attendees}}"
body: "Join Zoom Meeting: {{create-meeting.join_url}}\nMeeting ID: {{create-meeting.id}}\nPasscode: {{create-meeting.password}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: meetings
path: "/users/{{user_id}}/meetings"
inputParameters:
- name: user_id
in: path
operations:
- name: create-meeting
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: events
path: "/users/{{user_upn}}/events"
inputParameters:
- name: user_upn
in: path
operations:
- name: create-event
method: POST
Retrieves the Zoom AI Companion meeting summary, analyzes overall sentiment from the summary text, and posts a sentiment report to a Slack channel for leadership visibility.
naftiko: "0.5"
info:
label: "Meeting Sentiment Analysis to Slack"
description: "Retrieves the Zoom AI Companion meeting summary, analyzes overall sentiment from the summary text, and posts a sentiment report to a Slack channel for leadership visibility."
tags:
- communications
- meetings
- ai-companion
- slack
- analytics
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-sentiment
port: 8080
tools:
- name: analyze-meeting-sentiment
description: "Given a Zoom meeting UUID and Slack channel, retrieve the AI summary and post a sentiment analysis to Slack."
inputParameters:
- name: meeting_id
in: body
type: string
description: "The Zoom meeting UUID."
- name: slack_channel
in: body
type: string
description: "The Slack channel for sentiment reports."
steps:
- name: get-summary
type: call
call: "zoom.get-ai-summary"
with:
meeting_id: "{{meeting_id}}"
- name: get-meeting
type: call
call: "zoom.get-meeting-info"
with:
meeting_id: "{{meeting_id}}"
- name: post-sentiment
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Meeting Sentiment Report: '{{get-meeting.topic}}'\n\nSummary: {{get-summary.summary_text}}\nAction Items: {{get-summary.action_items}}\nParticipants: {{get-meeting.participants_count}}\nDuration: {{get-meeting.duration}} minutes"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: meeting-summaries
path: "/meetings/{{meeting_id}}/meeting_summary"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-ai-summary
method: GET
- name: meetings
path: "/meetings/{{meeting_id}}"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-meeting-info
method: GET
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Downloads the audio transcript for a recorded Zoom meeting, returning full text with speaker labels and timestamps.
naftiko: "0.5"
info:
label: "Meeting Transcript Retrieval"
description: "Downloads the audio transcript for a recorded Zoom meeting, returning full text with speaker labels and timestamps."
tags:
- communications
- recordings
- ai-companion
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-recordings
port: 8080
tools:
- name: get-meeting-transcript
description: "Fetch the transcript for a Zoom cloud recording by meeting UUID."
inputParameters:
- name: meeting_id
in: body
type: string
description: "The Zoom meeting UUID."
call: "zoom.get-transcript"
with:
meeting_id: "{{meeting_id}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: transcripts
path: "/meetings/{{meeting_id}}/recordings"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-transcript
method: GET
# --- Orchestrated Capabilities (multi-step workflows) ---
Sends a message to a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Message Sender"
description: "Sends a message to a Microsoft Teams channel."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-microsoft
description: "Sends a message to a Microsoft Teams channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The microsoft teams message sender identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.zoom.com/communications/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: microsoft
path: "/microsoft/teams/message/sender/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-microsoft
method: GET
On new hire detection in Workday, provisions a Zoom user account with the correct license type and adds the user to the appropriate Zoom Team Chat channels based on department.
naftiko: "0.5"
info:
label: "New Employee Zoom Provisioning"
description: "On new hire detection in Workday, provisions a Zoom user account with the correct license type and adds the user to the appropriate Zoom Team Chat channels based on department."
tags:
- communications
- administration
- workday
- team-chat
- onboarding
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-user-provisioning
port: 8080
tools:
- name: provision-new-zoom-user
description: "Given a Workday employee ID and department, create a Zoom account and add to department chat channels."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID for the new hire."
- name: department
in: body
type: string
description: "The department name for channel assignment."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: create-zoom-user
type: call
call: "zoom.create-user"
with:
email: "{{get-employee.work_email}}"
first_name: "{{get-employee.first_name}}"
last_name: "{{get-employee.last_name}}"
type: 2
- name: add-to-channel
type: call
call: "zoom.add-channel-member"
with:
channel_name: "{{department}}-general"
member_email: "{{get-employee.work_email}}"
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: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: users
path: "/users"
operations:
- name: create-user
method: POST
- name: chat-channels
path: "/chat/channels/{{channel_name}}/members"
inputParameters:
- name: channel_name
in: path
operations:
- name: add-channel-member
method: POST
Fetches the call log history for a Zoom Phone user within a date range, including caller, callee, direction, duration, and result.
naftiko: "0.5"
info:
label: "Phone Call Log Retrieval"
description: "Fetches the call log history for a Zoom Phone user within a date range, including caller, callee, direction, duration, and result."
tags:
- communications
- zoom-phone
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-phone
port: 8080
tools:
- name: get-call-logs
description: "Retrieve Zoom Phone call log entries for a user within a date range."
inputParameters:
- name: user_id
in: body
type: string
description: "The Zoom user ID or email."
- name: from_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: to_date
in: body
type: string
description: "End date in YYYY-MM-DD format."
call: "zoom.list-call-logs"
with:
user_id: "{{user_id}}"
from: "{{from_date}}"
to: "{{to_date}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: call-logs
path: "/phone/users/{{user_id}}/call_logs"
inputParameters:
- name: user_id
in: path
- name: from
in: query
- name: to
in: query
operations:
- name: list-call-logs
method: GET
Retrieves call queue status for the phone system.
naftiko: "0.5"
info:
label: "Phone System Call Queue"
description: "Retrieves call queue status for the phone system."
tags:
- phone
- operations
capability:
exposes:
- type: mcp
namespace: phone
port: 8080
tools:
- name: get-phone
description: "Retrieves call queue status for the phone system."
inputParameters:
- name: entity_id
in: body
type: string
description: "The phone system call queue identifier."
call: "phone-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: phone-api
baseUri: "https://api.zoom.com/phone/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: phone
path: "/phone/system/call/queue/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-phone
method: GET
Retrieves Zoom Phone voicemail recordings, fetches the AI transcription, and forwards the transcript as an email via Microsoft Outlook to the user.
naftiko: "0.5"
info:
label: "Phone Voicemail Transcription to Email"
description: "Retrieves Zoom Phone voicemail recordings, fetches the AI transcription, and forwards the transcript as an email via Microsoft Outlook to the user."
tags:
- communications
- zoom-phone
- ai-companion
- microsoft-outlook
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-phone-voicemail
port: 8080
tools:
- name: forward-voicemail-transcript
description: "Given a Zoom Phone user and voicemail ID, transcribe and email the voicemail content via Outlook."
inputParameters:
- name: user_id
in: body
type: string
description: "The Zoom user ID or email."
- name: voicemail_id
in: body
type: string
description: "The voicemail message ID."
steps:
- name: get-voicemail
type: call
call: "zoom.get-voicemail"
with:
user_id: "{{user_id}}"
voicemail_id: "{{voicemail_id}}"
- name: send-email
type: call
call: "outlook.send-mail"
with:
user_upn: "{{user_id}}"
to: "{{user_id}}"
subject: "Voicemail from {{get-voicemail.caller_number}} at {{get-voicemail.date_time}}"
body: "Transcription:\n{{get-voicemail.transcript}}\n\nCaller: {{get-voicemail.caller_name}} ({{get-voicemail.caller_number}})\nDuration: {{get-voicemail.duration}} seconds"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: voicemails
path: "/phone/users/{{user_id}}/voice_mails/{{voicemail_id}}"
inputParameters:
- name: user_id
in: path
- name: voicemail_id
in: path
operations:
- name: get-voicemail
method: GET
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/users/{{user_upn}}/sendMail"
inputParameters:
- name: user_upn
in: path
operations:
- name: send-mail
method: POST
After a Zoom meeting ends, retrieves the AI Companion summary, extracts action items, creates Jira tickets for each, and posts a recap to a Slack channel.
naftiko: "0.5"
info:
label: "Post-Meeting Action Item Dispatcher"
description: "After a Zoom meeting ends, retrieves the AI Companion summary, extracts action items, creates Jira tickets for each, and posts a recap to a Slack channel."
tags:
- communications
- meetings
- ai-companion
- jira
- slack
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-post-meeting
port: 8080
tools:
- name: dispatch-action-items
description: "Given a completed Zoom meeting ID and target Jira project key and Slack channel, extract AI Companion action items, create Jira issues, and post a summary to Slack."
inputParameters:
- name: meeting_id
in: body
type: string
description: "The Zoom meeting UUID."
- name: jira_project_key
in: body
type: string
description: "The Jira project key for new tickets."
- name: slack_channel
in: body
type: string
description: "The Slack channel ID for the recap."
steps:
- name: get-summary
type: call
call: "zoom.get-ai-summary"
with:
meeting_id: "{{meeting_id}}"
- name: create-jira-tickets
type: call
call: "jira.create-issue"
with:
project_key: "{{jira_project_key}}"
summary: "Action item from Zoom meeting {{meeting_id}}"
description: "{{get-summary.action_items}}"
issue_type: "Task"
- name: post-slack-recap
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Meeting Recap for {{meeting_id}}:\n\nSummary: {{get-summary.summary_text}}\n\nAction items tracked in Jira: {{create-jira-tickets.key}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: meeting-summaries
path: "/meetings/{{meeting_id}}/meeting_summary"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-ai-summary
method: GET
- type: http
namespace: jira
baseUri: "https://your-domain.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Triggers a Power BI dataset refresh.
naftiko: "0.5"
info:
label: "Power BI Dashboard Refresher"
description: "Triggers a Power BI dataset refresh."
tags:
- analytics
- power-bi
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-power
description: "Triggers a Power BI dataset refresh."
inputParameters:
- name: entity_id
in: body
type: string
description: "The power bi dashboard refresher identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.zoom.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: power
path: "/power/bi/dashboard/refresher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-power
method: GET
Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports.
naftiko: "0.5"
info:
label: "Procurement Spend Analysis Orchestrator"
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
tags:
- procurement
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-procurement-spend-analysis-orchestrator
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Procurement Spend Analysis Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders.
naftiko: "0.5"
info:
label: "Quarterly Business Review Orchestrator"
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
tags:
- analytics
- business
- sharepoint
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-quarterly-business-review-orchestrator
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Quarterly Business Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves Zoom cloud recordings for a user, checks file age against a retention policy, and deletes recordings older than the threshold. Logs each deletion to a Confluence audit page.
naftiko: "0.5"
info:
label: "Recording Compliance Checker"
description: "Retrieves Zoom cloud recordings for a user, checks file age against a retention policy, and deletes recordings older than the threshold. Logs each deletion to a Confluence audit page."
tags:
- communications
- recordings
- compliance
- confluence
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-recording-compliance
port: 8080
tools:
- name: enforce-recording-retention
description: "Given a Zoom user and retention period in days, list recordings, identify expired ones, delete them, and log to Confluence."
inputParameters:
- name: user_id
in: body
type: string
description: "The Zoom user ID or email."
- name: retention_days
in: body
type: number
description: "Maximum age in days for recordings."
- name: confluence_page_id
in: body
type: string
description: "Confluence page ID for the audit log."
steps:
- name: list-recordings
type: call
call: "zoom.list-recordings"
with:
user_id: "{{user_id}}"
- name: delete-expired
type: call
call: "zoom.delete-recording"
with:
meeting_id: "{{list-recordings.meetings[0].uuid}}"
- name: log-to-confluence
type: call
call: "confluence.append-page"
with:
page_id: "{{confluence_page_id}}"
content: "Recording deleted for user {{user_id}}: meeting {{list-recordings.meetings[0].topic}} from {{list-recordings.meetings[0].start_time}}. Retention policy: {{retention_days}} days."
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: recordings
path: "/users/{{user_id}}/recordings"
inputParameters:
- name: user_id
in: path
operations:
- name: list-recordings
method: GET
- name: recording-files
path: "/meetings/{{meeting_id}}/recordings"
inputParameters:
- name: meeting_id
in: path
operations:
- name: delete-recording
method: DELETE
- type: http
namespace: confluence
baseUri: "https://your-domain.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content/{{page_id}}"
inputParameters:
- name: page_id
in: path
operations:
- name: append-page
method: PUT
Lists all recurring Zoom meetings for a user, pulls participant reports for each occurrence, and writes utilization data to a Google Sheet for capacity planning.
naftiko: "0.5"
info:
label: "Recurring Meeting Utilization Audit"
description: "Lists all recurring Zoom meetings for a user, pulls participant reports for each occurrence, and writes utilization data to a Google Sheet for capacity planning."
tags:
- communications
- meetings
- reporting
- google-sheets
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-meeting-audit
port: 8080
tools:
- name: audit-recurring-meetings
description: "Given a Zoom user and Google Sheet ID, analyze recurring meeting utilization and write results to the spreadsheet."
inputParameters:
- name: user_id
in: body
type: string
description: "The Zoom user ID or email."
- name: spreadsheet_id
in: body
type: string
description: "The Google Sheets spreadsheet ID."
steps:
- name: list-meetings
type: call
call: "zoom.list-user-meetings"
with:
user_id: "{{user_id}}"
type: "scheduled"
- name: get-report
type: call
call: "zoom.get-meeting-report"
with:
meeting_id: "{{list-meetings.meetings[0].id}}"
- name: write-sheet
type: call
call: "gsheets.append-rows"
with:
spreadsheet_id: "{{spreadsheet_id}}"
range: "MeetingAudit!A1"
values:
- "{{list-meetings.meetings[0].topic}}"
- "{{list-meetings.meetings[0].start_time}}"
- "{{get-report.total_records}}"
- "{{list-meetings.meetings[0].duration}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: user-meetings
path: "/users/{{user_id}}/meetings"
inputParameters:
- name: user_id
in: path
- name: type
in: query
operations:
- name: list-user-meetings
method: GET
- name: meeting-report
path: "/report/meetings/{{meeting_id}}/participants"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-meeting-report
method: GET
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4/spreadsheets"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: values
path: "/{{spreadsheet_id}}/values/{{range}}:append"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: append-rows
method: POST
Checks the health status of a room connector.
naftiko: "0.5"
info:
label: "Room Connector Health"
description: "Checks the health status of a room connector."
tags:
- infrastructure
- monitoring
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: get-room
description: "Checks the health status of a room connector."
inputParameters:
- name: entity_id
in: body
type: string
description: "The room connector health identifier."
call: "infrastructure-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: infrastructure-api
baseUri: "https://api.zoom.com/infrastructure/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: room
path: "/room/connector/health/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-room
method: GET
Retrieves a Salesforce account by account ID.
naftiko: "0.5"
info:
label: "Salesforce Account Viewer"
description: "Retrieves a Salesforce account by account ID."
tags:
- sales
- salesforce
capability:
exposes:
- type: mcp
namespace: sales
port: 8080
tools:
- name: get-salesforce
description: "Retrieves a Salesforce account by account ID."
inputParameters:
- name: entity_id
in: body
type: string
description: "The salesforce account viewer identifier."
call: "sales-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: sales-api
baseUri: "https://api.zoom.com/sales/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: salesforce
path: "/salesforce/account/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-salesforce
method: GET
Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation.
naftiko: "0.5"
info:
label: "Security Audit Orchestrator"
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
tags:
- security
- servicenow
- compliance
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: run-security-audit-orchestrator
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Security Audit Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Creates a new incident in ServiceNow.
naftiko: "0.5"
info:
label: "ServiceNow Incident Creator"
description: "Creates a new incident in ServiceNow."
tags:
- it
- servicenow
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: get-servicenow
description: "Creates a new incident in ServiceNow."
inputParameters:
- name: entity_id
in: body
type: string
description: "The servicenow incident creator identifier."
call: "it-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: it-api
baseUri: "https://api.zoom.com/it/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: servicenow
path: "/servicenow/incident/creator/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-servicenow
method: GET
Sends a notification to a Slack channel.
naftiko: "0.5"
info:
label: "Slack Notification Publisher"
description: "Sends a notification to a Slack channel."
tags:
- communications
- slack
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-slack
description: "Sends a notification to a Slack channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The slack notification publisher identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.zoom.com/communications/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: slack
path: "/slack/notification/publisher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-slack
method: GET
Runs an analytics query against the Snowflake data warehouse.
naftiko: "0.5"
info:
label: "Snowflake Analytics Query"
description: "Runs an analytics query against the Snowflake data warehouse."
tags:
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-snowflake
description: "Runs an analytics query against the Snowflake data warehouse."
inputParameters:
- name: entity_id
in: body
type: string
description: "The snowflake analytics query identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.zoom.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: snowflake
path: "/snowflake/analytics/query/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-snowflake
method: GET
Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports.
naftiko: "0.5"
info:
label: "Sustainability Metrics Collection Orchestrator"
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
tags:
- sustainability
- analytics
- compliance
capability:
exposes:
- type: mcp
namespace: sustainability
port: 8080
tools:
- name: run-sustainability-metrics-collection-orchestrator
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Sustainability Metrics Collection Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves statistics for a team chat channel.
naftiko: "0.5"
info:
label: "Team Chat Channel Stats"
description: "Retrieves statistics for a team chat channel."
tags:
- collaboration
- analytics
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-team
description: "Retrieves statistics for a team chat channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The team chat channel stats identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.zoom.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: team
path: "/team/chat/channel/stats/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-team
method: GET
Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans.
naftiko: "0.5"
info:
label: "Third Party Risk Assessment Orchestrator"
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
tags:
- risk
- procurement
- compliance
capability:
exposes:
- type: mcp
namespace: risk
port: 8080
tools:
- name: run-third-party-risk-assessment-orchestrator
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Third Party Risk Assessment Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a Zoom user profile by user ID or email, returning display name, email, role, plan type, and account status.
naftiko: "0.5"
info:
label: "User Account Profile"
description: "Retrieves a Zoom user profile by user ID or email, returning display name, email, role, plan type, and account status."
tags:
- communications
- administration
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-admin
port: 8080
tools:
- name: get-user-profile
description: "Look up a Zoom user profile by user ID or email."
inputParameters:
- name: user_id
in: body
type: string
description: "The Zoom user ID or email address."
call: "zoom.get-user"
with:
user_id: "{{user_id}}"
outputParameters:
- name: display_name
type: string
mapping: "$.display_name"
- name: email
type: string
mapping: "$.email"
- name: role_name
type: string
mapping: "$.role_name"
- name: plan_type
type: number
mapping: "$.type"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: users
path: "/users/{{user_id}}"
inputParameters:
- name: user_id
in: path
operations:
- name: get-user
method: GET
Retrieves Zoom Phone settings for a specific user, including calling plan, extension number, and voicemail status.
naftiko: "0.5"
info:
label: "User Phone Settings"
description: "Retrieves Zoom Phone settings for a specific user, including calling plan, extension number, and voicemail status."
tags:
- communications
- zoom-phone
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-phone
port: 8080
tools:
- name: get-user-phone-settings
description: "Look up Zoom Phone configuration for a user by user ID."
inputParameters:
- name: user_id
in: body
type: string
description: "The Zoom user ID or email."
call: "zoom.get-phone-settings"
with:
user_id: "{{user_id}}"
outputParameters:
- name: extension_number
type: string
mapping: "$.extension.extension_number"
- name: calling_plan
type: string
mapping: "$.calling_plans[0].name"
- name: voicemail_enabled
type: boolean
mapping: "$.voicemail.status"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: phone-user
path: "/phone/users/{{user_id}}/settings"
inputParameters:
- name: user_id
in: path
operations:
- name: get-phone-settings
method: GET
Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign.
naftiko: "0.5"
info:
label: "Vendor Contract Renewal Pipeline"
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
tags:
- procurement
- legal
- docusign
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-vendor-contract-renewal-pipeline
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Vendor Contract Renewal Pipeline for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates video conferencing workflow 1 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Video Conferencing Workflow 1"
description: "Orchestrates video conferencing workflow 1 by coordinating across systems, validating data, and sending notifications."
tags:
- video
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: video
port: 8080
tools:
- name: run-video-conferencing-workflow-001
description: "Orchestrates video conferencing workflow 1 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Video Conferencing Workflow 1 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates video conferencing workflow 2 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Video Conferencing Workflow 2"
description: "Orchestrates video conferencing workflow 2 by coordinating across systems, validating data, and sending notifications."
tags:
- video
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: video
port: 8080
tools:
- name: run-video-conferencing-workflow-002
description: "Orchestrates video conferencing workflow 2 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Video Conferencing Workflow 2 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves video conferencing operational data for workflow 3.
naftiko: "0.5"
info:
label: "Video Conferencing Data Query 3"
description: "Retrieves video conferencing operational data for workflow 3."
tags:
- video
- operations
capability:
exposes:
- type: mcp
namespace: video
port: 8080
tools:
- name: get-data-3
description: "Query video conferencing data for workflow 3."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "video-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: video-api
baseUri: "https://api.zoom.com/video-conferencing/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-3
method: GET
Orchestrates video conferencing workflow 4 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Video Conferencing Workflow 4"
description: "Orchestrates video conferencing workflow 4 by coordinating across systems, validating data, and sending notifications."
tags:
- video
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: video
port: 8080
tools:
- name: run-video-conferencing-workflow-004
description: "Orchestrates video conferencing workflow 4 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Video Conferencing Workflow 4 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates video conferencing workflow 5 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Video Conferencing Workflow 5"
description: "Orchestrates video conferencing workflow 5 by coordinating across systems, validating data, and sending notifications."
tags:
- video
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: video
port: 8080
tools:
- name: run-video-conferencing-workflow-005
description: "Orchestrates video conferencing workflow 5 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Video Conferencing Workflow 5 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves video conferencing operational data for workflow 6.
naftiko: "0.5"
info:
label: "Video Conferencing Data Query 6"
description: "Retrieves video conferencing operational data for workflow 6."
tags:
- video
- operations
capability:
exposes:
- type: mcp
namespace: video
port: 8080
tools:
- name: get-data-6
description: "Query video conferencing data for workflow 6."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "video-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: video-api
baseUri: "https://api.zoom.com/video-conferencing/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-6
method: GET
Orchestrates video conferencing workflow 7 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Video Conferencing Workflow 7"
description: "Orchestrates video conferencing workflow 7 by coordinating across systems, validating data, and sending notifications."
tags:
- video
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: video
port: 8080
tools:
- name: run-video-conferencing-workflow-007
description: "Orchestrates video conferencing workflow 7 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Video Conferencing Workflow 7 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates video conferencing workflow 8 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Video Conferencing Workflow 8"
description: "Orchestrates video conferencing workflow 8 by coordinating across systems, validating data, and sending notifications."
tags:
- video
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: video
port: 8080
tools:
- name: run-video-conferencing-workflow-008
description: "Orchestrates video conferencing workflow 8 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Video Conferencing Workflow 8 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves video conferencing operational data for workflow 9.
naftiko: "0.5"
info:
label: "Video Conferencing Data Query 9"
description: "Retrieves video conferencing operational data for workflow 9."
tags:
- video
- operations
capability:
exposes:
- type: mcp
namespace: video
port: 8080
tools:
- name: get-data-9
description: "Query video conferencing data for workflow 9."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "video-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: video-api
baseUri: "https://api.zoom.com/video-conferencing/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-9
method: GET
Orchestrates video conferencing workflow 10 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Video Conferencing Workflow 10"
description: "Orchestrates video conferencing workflow 10 by coordinating across systems, validating data, and sending notifications."
tags:
- video
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: video
port: 8080
tools:
- name: run-video-conferencing-workflow-010
description: "Orchestrates video conferencing workflow 10 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Video Conferencing Workflow 10 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates video conferencing workflow 11 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Video Conferencing Workflow 11"
description: "Orchestrates video conferencing workflow 11 by coordinating across systems, validating data, and sending notifications."
tags:
- video
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: video
port: 8080
tools:
- name: run-video-conferencing-workflow-011
description: "Orchestrates video conferencing workflow 11 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Video Conferencing Workflow 11 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves video conferencing operational data for workflow 12.
naftiko: "0.5"
info:
label: "Video Conferencing Data Query 12"
description: "Retrieves video conferencing operational data for workflow 12."
tags:
- video
- operations
capability:
exposes:
- type: mcp
namespace: video
port: 8080
tools:
- name: get-data-12
description: "Query video conferencing data for workflow 12."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "video-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: video-api
baseUri: "https://api.zoom.com/video-conferencing/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-12
method: GET
Orchestrates video conferencing workflow 13 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Video Conferencing Workflow 13"
description: "Orchestrates video conferencing workflow 13 by coordinating across systems, validating data, and sending notifications."
tags:
- video
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: video
port: 8080
tools:
- name: run-video-conferencing-workflow-013
description: "Orchestrates video conferencing workflow 13 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Video Conferencing Workflow 13 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates video conferencing workflow 14 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Video Conferencing Workflow 14"
description: "Orchestrates video conferencing workflow 14 by coordinating across systems, validating data, and sending notifications."
tags:
- video
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: video
port: 8080
tools:
- name: run-video-conferencing-workflow-014
description: "Orchestrates video conferencing workflow 14 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Video Conferencing Workflow 14 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.zoom.com/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.zoom.com/v2"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves video conferencing operational data for workflow 15.
naftiko: "0.5"
info:
label: "Video Conferencing Data Query 15"
description: "Retrieves video conferencing operational data for workflow 15."
tags:
- video
- operations
capability:
exposes:
- type: mcp
namespace: video
port: 8080
tools:
- name: get-data-15
description: "Query video conferencing data for workflow 15."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "video-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: video-api
baseUri: "https://api.zoom.com/video-conferencing/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-15
method: GET
After a Zoom webinar, identifies registrants who did not attend, sends them the recording link via Zoom Team Chat, and updates their engagement status in HubSpot.
naftiko: "0.5"
info:
label: "Webinar Absentee Re-Engagement"
description: "After a Zoom webinar, identifies registrants who did not attend, sends them the recording link via Zoom Team Chat, and updates their engagement status in HubSpot."
tags:
- communications
- webinars
- team-chat
- hubspot
- marketing
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-webinar-reengagement
port: 8080
tools:
- name: reengage-webinar-absentees
description: "Given a Zoom webinar ID, identify no-shows, send them the recording, and update HubSpot."
inputParameters:
- name: webinar_id
in: body
type: string
description: "The Zoom webinar ID."
steps:
- name: get-registrants
type: call
call: "zoom.list-registrants"
with:
webinar_id: "{{webinar_id}}"
status: "approved"
- name: get-absentees
type: call
call: "zoom.list-absentees"
with:
webinar_id: "{{webinar_id}}"
- name: get-recording
type: call
call: "zoom.get-webinar-recordings"
with:
webinar_id: "{{webinar_id}}"
- name: send-recording-link
type: call
call: "zoom.post-chat-message"
with:
to_contact: "{{get-absentees.registrants[0].email}}"
message: "We missed you at our webinar! Watch the recording here: {{get-recording.share_url}}"
- name: update-hubspot
type: call
call: "hubspot.update-contact"
with:
email: "{{get-absentees.registrants[0].email}}"
properties:
webinar_status: "no_show"
webinar_recording_sent: "true"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: registrants
path: "/webinars/{{webinar_id}}/registrants"
inputParameters:
- name: webinar_id
in: path
- name: status
in: query
operations:
- name: list-registrants
method: GET
- name: absentees
path: "/past_webinars/{{webinar_id}}/absentees"
inputParameters:
- name: webinar_id
in: path
operations:
- name: list-absentees
method: GET
- name: webinar-recordings
path: "/meetings/{{webinar_id}}/recordings"
inputParameters:
- name: webinar_id
in: path
operations:
- name: get-webinar-recordings
method: GET
- name: chat-messages
path: "/chat/users/me/messages"
operations:
- name: post-chat-message
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/crm/v3/objects/contacts"
operations:
- name: update-contact
method: PATCH
After a Zoom webinar ends, retrieves the attendee list, updates each contact's engagement in HubSpot, and sends a follow-up email via HubSpot transactional email.
naftiko: "0.5"
info:
label: "Webinar Attendance Report to HubSpot"
description: "After a Zoom webinar ends, retrieves the attendee list, updates each contact's engagement in HubSpot, and sends a follow-up email via HubSpot transactional email."
tags:
- communications
- webinars
- hubspot
- marketing
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-webinar-marketing
port: 8080
tools:
- name: sync-webinar-attendance
description: "Given a Zoom webinar ID and HubSpot list ID, fetch attendees, update HubSpot contacts, and trigger follow-up emails."
inputParameters:
- name: webinar_id
in: body
type: string
description: "The Zoom webinar ID."
- name: hubspot_list_id
in: body
type: string
description: "The HubSpot contact list ID for attendees."
steps:
- name: get-attendees
type: call
call: "zoom.list-webinar-attendees"
with:
webinar_id: "{{webinar_id}}"
- name: get-webinar-details
type: call
call: "zoom.get-webinar-info"
with:
webinar_id: "{{webinar_id}}"
- name: update-hubspot
type: call
call: "hubspot.update-contact"
with:
email: "{{get-attendees.participants[0].user_email}}"
properties:
last_webinar_attended: "{{get-webinar-details.topic}}"
webinar_attendance_date: "{{get-webinar-details.start_time}}"
- name: send-followup
type: call
call: "hubspot.send-transactional-email"
with:
email_id: "webinar_followup_template"
to: "{{get-attendees.participants[0].user_email}}"
custom_properties:
webinar_name: "{{get-webinar-details.topic}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: webinar-attendees
path: "/report/webinars/{{webinar_id}}/participants"
inputParameters:
- name: webinar_id
in: path
operations:
- name: list-webinar-attendees
method: GET
- name: webinars
path: "/webinars/{{webinar_id}}"
inputParameters:
- name: webinar_id
in: path
operations:
- name: get-webinar-info
method: GET
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/crm/v3/objects/contacts"
operations:
- name: update-contact
method: PATCH
- name: transactional-email
path: "/marketing/v3/transactional/single-email/send"
operations:
- name: send-transactional-email
method: POST
Retrieves engagement metrics for a webinar.
naftiko: "0.5"
info:
label: "Webinar Engagement Metrics"
description: "Retrieves engagement metrics for a webinar."
tags:
- webinars
- analytics
capability:
exposes:
- type: mcp
namespace: webinars
port: 8080
tools:
- name: get-webinar
description: "Retrieves engagement metrics for a webinar."
inputParameters:
- name: entity_id
in: body
type: string
description: "The webinar engagement metrics identifier."
call: "webinars-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: webinars-api
baseUri: "https://api.zoom.com/webinars/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: webinar
path: "/webinar/engagement/metrics/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-webinar
method: GET
Lists all registered panelists for a Zoom webinar, returning name, email, and join URL for each.
naftiko: "0.5"
info:
label: "Webinar Panelist Lookup"
description: "Lists all registered panelists for a Zoom webinar, returning name, email, and join URL for each."
tags:
- communications
- webinars
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-webinars
port: 8080
tools:
- name: list-webinar-panelists
description: "Get all panelists for a Zoom webinar by webinar ID."
inputParameters:
- name: webinar_id
in: body
type: string
description: "The Zoom webinar ID."
call: "zoom.get-panelists"
with:
webinar_id: "{{webinar_id}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: panelists
path: "/webinars/{{webinar_id}}/panelists"
inputParameters:
- name: webinar_id
in: path
operations:
- name: get-panelists
method: GET
After a Zoom webinar ends, retrieves poll results and posts a formatted summary to a Slack channel for the marketing team to review.
naftiko: "0.5"
info:
label: "Webinar Poll Results to Slack"
description: "After a Zoom webinar ends, retrieves poll results and posts a formatted summary to a Slack channel for the marketing team to review."
tags:
- communications
- webinars
- slack
- marketing
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-webinar-polls
port: 8080
tools:
- name: share-poll-results
description: "Given a Zoom webinar ID and Slack channel, fetch poll results and post a summary."
inputParameters:
- name: webinar_id
in: body
type: string
description: "The Zoom webinar ID."
- name: slack_channel
in: body
type: string
description: "The Slack channel ID for results."
steps:
- name: get-polls
type: call
call: "zoom.get-webinar-polls"
with:
webinar_id: "{{webinar_id}}"
- name: get-webinar
type: call
call: "zoom.get-webinar-details"
with:
webinar_id: "{{webinar_id}}"
- name: post-results
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Poll Results for '{{get-webinar.topic}}':\n\nTotal Responses: {{get-polls.total_records}}\nQuestions: {{get-polls.questions[0].name}}\nTop Answer: {{get-polls.questions[0].question_details[0].answer}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: webinar-polls
path: "/report/webinars/{{webinar_id}}/polls"
inputParameters:
- name: webinar_id
in: path
operations:
- name: get-webinar-polls
method: GET
- name: webinars
path: "/webinars/{{webinar_id}}"
inputParameters:
- name: webinar_id
in: path
operations:
- name: get-webinar-details
method: GET
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Looks up the total number of registrants for a Zoom webinar by webinar ID. Used by marketing teams to track registration performance.
naftiko: "0.5"
info:
label: "Webinar Registrant Count"
description: "Looks up the total number of registrants for a Zoom webinar by webinar ID. Used by marketing teams to track registration performance."
tags:
- communications
- webinars
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-webinars
port: 8080
tools:
- name: get-webinar-registrant-count
description: "Return the total registrant count for a Zoom webinar."
inputParameters:
- name: webinar_id
in: body
type: string
description: "The Zoom webinar ID."
call: "zoom.list-webinar-registrants"
with:
webinar_id: "{{webinar_id}}"
outputParameters:
- name: total_records
type: number
mapping: "$.total_records"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: webinar-registrants
path: "/webinars/{{webinar_id}}/registrants"
inputParameters:
- name: webinar_id
in: path
operations:
- name: list-webinar-registrants
method: GET
When a new registrant signs up for a Zoom webinar, creates or updates a lead in Salesforce and sends a confirmation message to the registrant via Zoom Team Chat.
naftiko: "0.5"
info:
label: "Webinar Registration to CRM Sync"
description: "When a new registrant signs up for a Zoom webinar, creates or updates a lead in Salesforce and sends a confirmation message to the registrant via Zoom Team Chat."
tags:
- communications
- webinars
- salesforce
- team-chat
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-webinar-crm
port: 8080
tools:
- name: sync-registrant-to-crm
description: "Given a Zoom webinar registrant email and webinar ID, upsert the lead in Salesforce and send a Team Chat confirmation."
inputParameters:
- name: webinar_id
in: body
type: string
description: "The Zoom webinar ID."
- name: registrant_email
in: body
type: string
description: "The registrant email address."
- name: registrant_name
in: body
type: string
description: "The registrant full name."
steps:
- name: get-webinar
type: call
call: "zoom.get-webinar"
with:
webinar_id: "{{webinar_id}}"
- name: upsert-lead
type: call
call: "salesforce.upsert-lead"
with:
email: "{{registrant_email}}"
first_name: "{{registrant_name}}"
lead_source: "Zoom Webinar"
description: "Registered for webinar: {{get-webinar.topic}}"
- name: notify-registrant
type: call
call: "zoom.post-chat-message"
with:
to_contact: "{{registrant_email}}"
message: "Thanks for registering for {{get-webinar.topic}} on {{get-webinar.start_time}}. Your Zoom join link will be emailed shortly."
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: webinars
path: "/webinars/{{webinar_id}}"
inputParameters:
- name: webinar_id
in: path
operations:
- name: get-webinar
method: GET
- name: chat-messages
path: "/chat/users/me/messages"
operations:
- name: post-chat-message
method: POST
- type: http
namespace: salesforce
baseUri: "https://your-instance.salesforce.com/services/data/v59.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: leads
path: "/sobjects/Lead"
operations:
- name: upsert-lead
method: POST
Retrieves employee profile from Workday.
naftiko: "0.5"
info:
label: "Workday Employee Profile"
description: "Retrieves employee profile from Workday."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: get-workday
description: "Retrieves employee profile from Workday."
inputParameters:
- name: entity_id
in: body
type: string
description: "The workday employee profile identifier."
call: "hr-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: hr-api
baseUri: "https://api.zoom.com/hr/v1"
authentication:
type: bearer
token: "$secrets.zoom_api_token"
resources:
- name: workday
path: "/workday/employee/profile/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-workday
method: GET
Generates a Zoom account daily usage report including total meetings, participants, and meeting minutes, then emails the summary to an administrator via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Zoom Account Usage Report to Email"
description: "Generates a Zoom account daily usage report including total meetings, participants, and meeting minutes, then emails the summary to an administrator via Microsoft Outlook."
tags:
- communications
- reporting
- administration
- microsoft-outlook
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-usage-report
port: 8080
tools:
- name: send-usage-report
description: "Generate a Zoom usage report for a date and email it to the admin."
inputParameters:
- name: report_date
in: body
type: string
description: "The report date in YYYY-MM-DD format."
- name: admin_email
in: body
type: string
description: "The administrator email."
steps:
- name: get-daily-report
type: call
call: "zoom.get-daily-report"
with:
year: "{{report_date}}"
month: "{{report_date}}"
- name: send-report
type: call
call: "outlook.send-mail"
with:
user_upn: "{{admin_email}}"
to: "{{admin_email}}"
subject: "Zoom Daily Usage Report - {{report_date}}"
body: "Total Meetings: {{get-daily-report.dates[0].meetings}}\nTotal Participants: {{get-daily-report.dates[0].participants}}\nTotal Meeting Minutes: {{get-daily-report.dates[0].meeting_minutes}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: daily-report
path: "/report/daily"
inputParameters:
- name: year
in: query
- name: month
in: query
operations:
- name: get-daily-report
method: GET
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/users/{{user_upn}}/sendMail"
inputParameters:
- name: user_upn
in: path
operations:
- name: send-mail
method: POST
Receives Zoom webhook events for meeting started and ended, logs them to Datadog, and posts real-time notifications to a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Zoom App Marketplace Webhook Router"
description: "Receives Zoom webhook events for meeting started and ended, logs them to Datadog, and posts real-time notifications to a Microsoft Teams channel."
tags:
- communications
- platform-engineering
- datadog
- microsoft-teams
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-webhook-router
port: 8080
tools:
- name: route-meeting-webhook
description: "Given a Zoom webhook event payload, log to Datadog and notify Microsoft Teams."
inputParameters:
- name: event_type
in: body
type: string
description: "The Zoom webhook event type (e.g. meeting.started, meeting.ended)."
- name: meeting_id
in: body
type: string
description: "The Zoom meeting ID from the webhook payload."
- name: host_email
in: body
type: string
description: "The meeting host email."
- name: teams_webhook_url
in: body
type: string
description: "The Microsoft Teams incoming webhook URL."
steps:
- name: log-to-datadog
type: call
call: "datadog.send-log"
with:
source: "zoom-webhooks"
service: "zoom-integration"
message: "Zoom event: {{event_type}} for meeting {{meeting_id}} hosted by {{host_email}}"
tags:
- "event_type:{{event_type}}"
- "meeting_id:{{meeting_id}}"
- name: notify-teams
type: call
call: "msteams.send-webhook"
with:
webhook_url: "{{teams_webhook_url}}"
text: "Zoom Meeting {{event_type}}: Meeting {{meeting_id}} by {{host_email}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://http-intake.logs.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_api_key"
resources:
- name: logs
path: "/logs"
operations:
- name: send-log
method: POST
- type: http
namespace: msteams
baseUri: "{{teams_webhook_url}}"
authentication:
type: none
resources:
- name: webhook
path: ""
operations:
- name: send-webhook
method: POST
Receives a Zoom Team Chat chatbot message, identifies customer intent, looks up the customer in Salesforce, and creates a Salesforce case or returns account info based on the request.
naftiko: "0.5"
info:
label: "Zoom Chatbot Intent Router to Salesforce"
description: "Receives a Zoom Team Chat chatbot message, identifies customer intent, looks up the customer in Salesforce, and creates a Salesforce case or returns account info based on the request."
tags:
- communications
- team-chat
- salesforce
- customer-service
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-chatbot-crm
port: 8080
tools:
- name: route-chatbot-to-crm
description: "Given a Zoom chatbot message, customer email, and intent, look up or create records in Salesforce."
inputParameters:
- name: customer_email
in: body
type: string
description: "The customer email address."
- name: intent
in: body
type: string
description: "The detected intent (e.g. support_request, account_info)."
- name: message_text
in: body
type: string
description: "The original chatbot message."
steps:
- name: lookup-contact
type: call
call: "salesforce.get-contact"
with:
email: "{{customer_email}}"
- name: create-case
type: call
call: "salesforce.create-case"
with:
contact_id: "{{lookup-contact.Id}}"
subject: "Zoom Chatbot: {{intent}}"
description: "Customer message: {{message_text}}\nAccount: {{lookup-contact.Account.Name}}"
origin: "Zoom Team Chat"
- name: respond-chat
type: call
call: "zoom.post-chat-message"
with:
to_contact: "{{customer_email}}"
message: "Your request has been logged as case {{create-case.id}}. Account: {{lookup-contact.Account.Name}}. Our team will follow up shortly."
consumes:
- type: http
namespace: salesforce
baseUri: "https://your-instance.salesforce.com/services/data/v59.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact/Email__c/{{email}}"
inputParameters:
- name: email
in: path
operations:
- name: get-contact
method: GET
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: chat-messages
path: "/chat/users/me/messages"
operations:
- name: post-chat-message
method: POST
When a user registers for a Zoom Events session, creates or updates a lead in Marketo and adds them to a nurture campaign for post-event follow-up.
naftiko: "0.5"
info:
label: "Zoom Events Registration to Marketo"
description: "When a user registers for a Zoom Events session, creates or updates a lead in Marketo and adds them to a nurture campaign for post-event follow-up."
tags:
- communications
- webinars
- marketo
- marketing
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-events-marketo
port: 8080
tools:
- name: sync-event-registration
description: "Given a Zoom Events session ID and registrant details, upsert a Marketo lead and add to a campaign."
inputParameters:
- name: session_id
in: body
type: string
description: "The Zoom Events session ID."
- name: registrant_email
in: body
type: string
description: "The registrant email."
- name: registrant_name
in: body
type: string
description: "The registrant name."
- name: marketo_campaign_id
in: body
type: string
description: "The Marketo campaign ID for nurture."
steps:
- name: get-session
type: call
call: "zoom.get-event-session"
with:
session_id: "{{session_id}}"
- name: upsert-lead
type: call
call: "marketo.upsert-lead"
with:
email: "{{registrant_email}}"
firstName: "{{registrant_name}}"
leadSource: "Zoom Events"
zoomEventName: "{{get-session.topic}}"
- name: add-to-campaign
type: call
call: "marketo.add-to-campaign"
with:
campaign_id: "{{marketo_campaign_id}}"
lead_email: "{{registrant_email}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: event-sessions
path: "/events/sessions/{{session_id}}"
inputParameters:
- name: session_id
in: path
operations:
- name: get-event-session
method: GET
- type: http
namespace: marketo
baseUri: "https://your-instance.mktorest.com/rest/v1"
authentication:
type: bearer
token: "$secrets.marketo_token"
resources:
- name: leads
path: "/leads.json"
operations:
- name: upsert-lead
method: POST
- name: campaigns
path: "/campaigns/{{campaign_id}}/trigger.json"
inputParameters:
- name: campaign_id
in: path
operations:
- name: add-to-campaign
method: POST
Pulls Zoom account user license utilization data, calculates usage percentages, and posts a weekly summary to a Slack channel for IT governance.
naftiko: "0.5"
info:
label: "Zoom License Usage Report to Slack"
description: "Pulls Zoom account user license utilization data, calculates usage percentages, and posts a weekly summary to a Slack channel for IT governance."
tags:
- communications
- administration
- slack
- governance
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-license-governance
port: 8080
tools:
- name: report-license-usage
description: "Retrieve Zoom account plan usage and post a summary to Slack."
inputParameters:
- name: slack_channel
in: body
type: string
description: "The Slack channel ID for the report."
steps:
- name: get-plan-usage
type: call
call: "zoom.get-plan-usage"
with: {}
- name: post-report
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Zoom License Report:\n\nPlan: {{get-plan-usage.plan_base.type}}\nHosts Used: {{get-plan-usage.plan_base.hosts}} / {{get-plan-usage.plan_base.usage}}\nWebinar Add-on: {{get-plan-usage.plan_webinar.hosts}} / {{get-plan-usage.plan_webinar.usage}}\nZoom Phone: {{get-plan-usage.plan_phone.hosts}} / {{get-plan-usage.plan_phone.usage}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: plan-usage
path: "/accounts/me/plan/usage"
operations:
- name: get-plan-usage
method: GET
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
When a participant registers for a Zoom meeting, creates a Google Calendar event for the registrant with the meeting join URL and details, then confirms via Zoom Team Chat.
naftiko: "0.5"
info:
label: "Zoom Meeting Registrant to Google Calendar"
description: "When a participant registers for a Zoom meeting, creates a Google Calendar event for the registrant with the meeting join URL and details, then confirms via Zoom Team Chat."
tags:
- communications
- meetings
- google-calendar
- team-chat
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-gcal-registration
port: 8080
tools:
- name: sync-registration-to-gcal
description: "Given a Zoom meeting ID and registrant email, create a Google Calendar event with meeting details and notify via Team Chat."
inputParameters:
- name: meeting_id
in: body
type: string
description: "The Zoom meeting ID."
- name: registrant_email
in: body
type: string
description: "The registrant email address."
steps:
- name: get-meeting
type: call
call: "zoom.get-meeting-details"
with:
meeting_id: "{{meeting_id}}"
- name: create-event
type: call
call: "gcal.create-event"
with:
calendar_id: "{{registrant_email}}"
summary: "{{get-meeting.topic}}"
start: "{{get-meeting.start_time}}"
duration_minutes: "{{get-meeting.duration}}"
description: "Join Zoom Meeting: {{get-meeting.join_url}}\nMeeting ID: {{get-meeting.id}}\nPasscode: {{get-meeting.password}}"
- name: confirm-chat
type: call
call: "zoom.post-chat-message"
with:
to_contact: "{{registrant_email}}"
message: "You are registered for '{{get-meeting.topic}}' on {{get-meeting.start_time}}. A calendar event has been created. Join link: {{get-meeting.join_url}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: meetings
path: "/meetings/{{meeting_id}}"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-meeting-details
method: GET
- name: chat-messages
path: "/chat/users/me/messages"
operations:
- name: post-chat-message
method: POST
- type: http
namespace: gcal
baseUri: "https://www.googleapis.com/calendar/v3"
authentication:
type: bearer
token: "$secrets.google_calendar_token"
resources:
- name: events
path: "/calendars/{{calendar_id}}/events"
inputParameters:
- name: calendar_id
in: path
operations:
- name: create-event
method: POST
After a Zoom meeting, retrieves the AI Companion action items and creates corresponding tasks in an Asana project, then notifies the host via Zoom Team Chat.
naftiko: "0.5"
info:
label: "Zoom Meeting to Asana Task Creator"
description: "After a Zoom meeting, retrieves the AI Companion action items and creates corresponding tasks in an Asana project, then notifies the host via Zoom Team Chat."
tags:
- communications
- meetings
- ai-companion
- asana
- team-chat
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-asana-tasks
port: 8080
tools:
- name: create-tasks-from-meeting
description: "Given a Zoom meeting UUID and Asana project ID, extract AI action items and create Asana tasks."
inputParameters:
- name: meeting_id
in: body
type: string
description: "The Zoom meeting UUID."
- name: asana_project_id
in: body
type: string
description: "The Asana project GID."
steps:
- name: get-summary
type: call
call: "zoom.get-ai-summary"
with:
meeting_id: "{{meeting_id}}"
- name: get-meeting
type: call
call: "zoom.get-meeting-info"
with:
meeting_id: "{{meeting_id}}"
- name: create-task
type: call
call: "asana.create-task"
with:
project_id: "{{asana_project_id}}"
name: "Action item from: {{get-meeting.topic}}"
notes: "{{get-summary.action_items}}"
- name: notify-host
type: call
call: "zoom.post-chat-message"
with:
to_contact: "{{get-meeting.host_email}}"
message: "Action items from '{{get-meeting.topic}}' have been added to Asana: {{create-task.permalink_url}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: meeting-summaries
path: "/meetings/{{meeting_id}}/meeting_summary"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-ai-summary
method: GET
- name: meetings
path: "/meetings/{{meeting_id}}"
inputParameters:
- name: meeting_id
in: path
operations:
- name: get-meeting-info
method: GET
- name: chat-messages
path: "/chat/users/me/messages"
operations:
- name: post-chat-message
method: POST
- type: http
namespace: asana
baseUri: "https://app.asana.com/api/1.0"
authentication:
type: bearer
token: "$secrets.asana_token"
resources:
- name: tasks
path: "/tasks"
operations:
- name: create-task
method: POST
Reads auto-attendant IVR configuration from Zoom Phone and backs up the settings as a JSON document in an Amazon S3 bucket for disaster recovery.
naftiko: "0.5"
info:
label: "Zoom Phone Auto-Attendant Config Sync"
description: "Reads auto-attendant IVR configuration from Zoom Phone and backs up the settings as a JSON document in an Amazon S3 bucket for disaster recovery."
tags:
- communications
- zoom-phone
- amazon-s3
- disaster-recovery
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-phone-backup
port: 8080
tools:
- name: backup-auto-attendant
description: "Given a Zoom Phone auto-attendant ID and S3 bucket, export the configuration to S3."
inputParameters:
- name: auto_attendant_id
in: body
type: string
description: "The Zoom Phone auto-attendant ID."
- name: s3_bucket
in: body
type: string
description: "The S3 bucket name for backup."
steps:
- name: get-config
type: call
call: "zoom.get-auto-attendant"
with:
auto_attendant_id: "{{auto_attendant_id}}"
- name: upload-backup
type: call
call: "s3.put-object"
with:
bucket: "{{s3_bucket}}"
key: "zoom-phone-backups/auto-attendant-{{auto_attendant_id}}.json"
body: "{{get-config}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: auto-attendants
path: "/phone/auto_receptionists/{{auto_attendant_id}}"
inputParameters:
- name: auto_attendant_id
in: path
operations:
- name: get-auto-attendant
method: GET
- type: http
namespace: s3
baseUri: "https://{{s3_bucket}}.s3.amazonaws.com"
authentication:
type: bearer
token: "$secrets.aws_s3_token"
resources:
- name: objects
path: "/{{key}}"
inputParameters:
- name: key
in: path
operations:
- name: put-object
method: PUT
Retrieves the full inventory of Zoom Phone numbers for the account, including assignment status and site, and writes the inventory to a Google Sheet for telecom management.
naftiko: "0.5"
info:
label: "Zoom Phone Number Inventory Report"
description: "Retrieves the full inventory of Zoom Phone numbers for the account, including assignment status and site, and writes the inventory to a Google Sheet for telecom management."
tags:
- communications
- zoom-phone
- google-sheets
- administration
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-phone-inventory
port: 8080
tools:
- name: export-phone-inventory
description: "Export Zoom Phone number inventory to a Google Sheet."
inputParameters:
- name: spreadsheet_id
in: body
type: string
description: "The Google Sheets spreadsheet ID."
steps:
- name: list-numbers
type: call
call: "zoom.list-phone-numbers"
with: {}
- name: write-sheet
type: call
call: "gsheets.update-values"
with:
spreadsheet_id: "{{spreadsheet_id}}"
range: "PhoneInventory!A1"
values:
- "{{list-numbers.phone_numbers[0].number}}"
- "{{list-numbers.phone_numbers[0].assignee.name}}"
- "{{list-numbers.phone_numbers[0].site.name}}"
- "{{list-numbers.phone_numbers[0].status}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: phone-numbers
path: "/phone/numbers"
operations:
- name: list-phone-numbers
method: GET
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4/spreadsheets"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: values
path: "/{{spreadsheet_id}}/values/{{range}}"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: update-values
method: PUT
Updates the digital signage content displayed on a Zoom Room by pushing a new banner message and content URL, then confirms the update in a Slack channel.
naftiko: "0.5"
info:
label: "Zoom Room Digital Signage Updater"
description: "Updates the digital signage content displayed on a Zoom Room by pushing a new banner message and content URL, then confirms the update in a Slack channel."
tags:
- communications
- zoom-rooms
- slack
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-room-signage
port: 8080
tools:
- name: update-room-signage
description: "Given a Zoom Room ID, update its digital signage content and confirm in Slack."
inputParameters:
- name: room_id
in: body
type: string
description: "The Zoom Room ID."
- name: banner_message
in: body
type: string
description: "The banner text to display."
- name: content_url
in: body
type: string
description: "The URL for signage content."
- name: slack_channel
in: body
type: string
description: "The Slack channel for confirmation."
steps:
- name: update-signage
type: call
call: "zoom.update-room-signage"
with:
room_id: "{{room_id}}"
banner: "{{banner_message}}"
content_url: "{{content_url}}"
- name: confirm-slack
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Zoom Room {{room_id}} digital signage updated. Banner: '{{banner_message}}'. Content: {{content_url}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: room-signage
path: "/rooms/{{room_id}}/settings"
inputParameters:
- name: room_id
in: path
operations:
- name: update-room-signage
method: PATCH
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Checks Zoom Room health status. If a room reports issues, creates a PagerDuty incident and alerts the facilities team in a Slack channel.
naftiko: "0.5"
info:
label: "Zoom Room Health Monitor to PagerDuty"
description: "Checks Zoom Room health status. If a room reports issues, creates a PagerDuty incident and alerts the facilities team in a Slack channel."
tags:
- communications
- zoom-rooms
- pagerduty
- slack
- monitoring
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-room-monitoring
port: 8080
tools:
- name: monitor-room-health
description: "Given a Zoom Room ID, check its health and escalate to PagerDuty and Slack if degraded."
inputParameters:
- name: room_id
in: body
type: string
description: "The Zoom Room ID."
- name: slack_channel
in: body
type: string
description: "The Slack channel for facility alerts."
steps:
- name: check-room
type: call
call: "zoom.get-room-health"
with:
room_id: "{{room_id}}"
- name: create-pagerduty-incident
type: call
call: "pagerduty.create-incident"
with:
service_id: "ZOOM_ROOMS_SVC"
title: "Zoom Room Degraded: {{check-room.room_name}}"
body: "Room {{check-room.room_name}} status: {{check-room.health}}. Issues: {{check-room.issues}}"
- name: alert-facilities
type: call
call: "slack.post-message"
with:
channel: "{{slack_channel}}"
text: "Zoom Room Alert: {{check-room.room_name}} is reporting {{check-room.health}} status. PagerDuty incident created: {{create-pagerduty-incident.incident_key}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: rooms
path: "/rooms/{{room_id}}"
inputParameters:
- name: room_id
in: path
operations:
- name: get-room-health
method: GET
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Returns the current status of a Zoom Room device, including online/offline state, health, and active meeting info.
naftiko: "0.5"
info:
label: "Zoom Room Status"
description: "Returns the current status of a Zoom Room device, including online/offline state, health, and active meeting info."
tags:
- communications
- zoom-rooms
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-rooms
port: 8080
tools:
- name: get-room-status
description: "Check a Zoom Room's online status, health, and current meeting info."
inputParameters:
- name: room_id
in: body
type: string
description: "The Zoom Room ID."
call: "zoom.get-room"
with:
room_id: "{{room_id}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
- name: health
type: string
mapping: "$.health"
- name: room_name
type: string
mapping: "$.room_name"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: rooms
path: "/rooms/{{room_id}}"
inputParameters:
- name: room_id
in: path
operations:
- name: get-room
method: GET
Retrieves the status and configuration of a Zoom Phone SIP trunk, including registration state, codec settings, and associated phone numbers.
naftiko: "0.5"
info:
label: "Zoom SIP Trunk Status Check"
description: "Retrieves the status and configuration of a Zoom Phone SIP trunk, including registration state, codec settings, and associated phone numbers."
tags:
- communications
- zoom-phone
- telephony
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-sip
port: 8080
tools:
- name: get-sip-trunk-status
description: "Look up SIP trunk registration status and configuration by trunk ID."
inputParameters:
- name: trunk_id
in: body
type: string
description: "The Zoom Phone SIP trunk ID."
call: "zoom.get-sip-trunk"
with:
trunk_id: "{{trunk_id}}"
outputParameters:
- name: name
type: string
mapping: "$.name"
- name: status
type: string
mapping: "$.status"
- name: registration_state
type: string
mapping: "$.registration.state"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: sip-trunks
path: "/phone/sip_trunk/trunks/{{trunk_id}}"
inputParameters:
- name: trunk_id
in: path
operations:
- name: get-sip-trunk
method: GET
When an employee is terminated in Workday, deactivates their Zoom account, removes them from all Zoom Team Chat channels, and logs the action in ServiceNow.
naftiko: "0.5"
info:
label: "Zoom SSO User Deprovisioning"
description: "When an employee is terminated in Workday, deactivates their Zoom account, removes them from all Zoom Team Chat channels, and logs the action in ServiceNow."
tags:
- communications
- administration
- workday
- servicenow
- security
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-user-offboarding
port: 8080
tools:
- name: deprovision-zoom-user
description: "Given a Workday employee ID, deactivate their Zoom account, remove from channels, and log to ServiceNow."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID for the terminated employee."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: deactivate-zoom
type: call
call: "zoom.update-user-status"
with:
user_id: "{{get-employee.work_email}}"
action: "deactivate"
- name: log-offboarding
type: call
call: "servicenow.create-incident"
with:
short_description: "Zoom account deactivated: {{get-employee.full_name}}"
category: "it_offboarding"
description: "Zoom account for {{get-employee.work_email}} deactivated following Workday termination. Employee ID: {{workday_employee_id}}."
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: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: user-status
path: "/users/{{user_id}}/status"
inputParameters:
- name: user_id
in: path
operations:
- name: update-user-status
method: PUT
- type: http
namespace: servicenow
baseUri: "https://your-instance.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
When a file is shared in a Zoom Team Chat channel, downloads the file metadata and uploads a copy to a Box folder for enterprise content management.
naftiko: "0.5"
info:
label: "Zoom Team Chat File Share to Box"
description: "When a file is shared in a Zoom Team Chat channel, downloads the file metadata and uploads a copy to a Box folder for enterprise content management."
tags:
- communications
- team-chat
- box
- content-management
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-chat-box
port: 8080
tools:
- name: sync-chat-file-to-box
description: "Given a Zoom Team Chat file ID and Box folder ID, fetch file metadata and upload to Box."
inputParameters:
- name: file_id
in: body
type: string
description: "The Zoom Team Chat file ID."
- name: box_folder_id
in: body
type: string
description: "The Box folder ID."
steps:
- name: get-file
type: call
call: "zoom.get-chat-file"
with:
file_id: "{{file_id}}"
- name: upload-to-box
type: call
call: "box.upload-file"
with:
folder_id: "{{box_folder_id}}"
file_name: "{{get-file.file_name}}"
download_url: "{{get-file.download_url}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: chat-files
path: "/chat/files/{{file_id}}"
inputParameters:
- name: file_id
in: path
operations:
- name: get-chat-file
method: GET
- type: http
namespace: box
baseUri: "https://upload.box.com/api/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: files
path: "/files/content"
operations:
- name: upload-file
method: POST
Exports a Zoom Whiteboard as an image, uploads it to a Confluence page, and notifies the board owner in Zoom Team Chat.
naftiko: "0.5"
info:
label: "Zoom Whiteboard Export to Confluence"
description: "Exports a Zoom Whiteboard as an image, uploads it to a Confluence page, and notifies the board owner in Zoom Team Chat."
tags:
- communications
- whiteboards
- confluence
- team-chat
- zoom
capability:
exposes:
- type: mcp
namespace: zoom-whiteboard-export
port: 8080
tools:
- name: export-whiteboard-to-confluence
description: "Given a Zoom Whiteboard ID and Confluence space, export the board and attach it to a Confluence page."
inputParameters:
- name: whiteboard_id
in: body
type: string
description: "The Zoom Whiteboard ID."
- name: confluence_page_id
in: body
type: string
description: "The Confluence page ID to attach the export."
steps:
- name: get-whiteboard
type: call
call: "zoom.get-whiteboard"
with:
whiteboard_id: "{{whiteboard_id}}"
- name: attach-to-confluence
type: call
call: "confluence.create-attachment"
with:
page_id: "{{confluence_page_id}}"
file_name: "whiteboard_{{whiteboard_id}}.png"
content_url: "{{get-whiteboard.export_url}}"
- name: notify-owner
type: call
call: "zoom.post-chat-message"
with:
to_contact: "{{get-whiteboard.owner_email}}"
message: "Your whiteboard '{{get-whiteboard.name}}' has been exported to Confluence: {{attach-to-confluence.page_url}}"
consumes:
- type: http
namespace: zoom
baseUri: "https://api.zoom.us/v2"
authentication:
type: bearer
token: "$secrets.zoom_oauth_token"
resources:
- name: whiteboards
path: "/whiteboards/{{whiteboard_id}}"
inputParameters:
- name: whiteboard_id
in: path
operations:
- name: get-whiteboard
method: GET
- name: chat-messages
path: "/chat/users/me/messages"
operations:
- name: post-chat-message
method: POST
- type: http
namespace: confluence
baseUri: "https://your-domain.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: attachments
path: "/content/{{page_id}}/child/attachment"
inputParameters:
- name: page_id
in: path
operations:
- name: create-attachment
method: POST