The CallConnectedAPI skill connects tools to 11 external services. A single skill handles all services — the service and operation arguments determine which API endpoint gets called.
The CallConnectedAPI Skill
Parameters:
service(string, required) — Which service to call. One of:github,slack,notion,clickup,linear,asana,discord,hubspot,calendly,stripe,quickbooks.operation(string, required) — Which operation to perform on that service (e.g.GetIssues,SendMessage,CreateTask).
Tier: 2 (external side effects)
Scope: External
How It Works
When CallConnectedAPI executes:
Credential check — The skill checks whether credentials are configured for the requested service. If not, it opens the credential configuration flow.
Target parameter resolution — Some operations need to know where to operate: which repo, which channel, which list. These are configure-once values saved with the tool. On first run, the skill prompts for anything missing and saves it.
Execution — The skill calls the appropriate API using the stored credentials and target parameters, along with any content from the previous step.
Response — Returns formatted plain-text results that can be processed by subsequent steps.
Parameter Types
The API skill distinguishes between two kinds of parameters:
Target parameters — Configured once and saved to the tool's settings. These identify where in the service to operate: which repository, which channel, which project, which list. They don't change between runs.
Content parameters — Change per invocation. These carry the actual data: the message text, the issue title, the task description. Content comes from previous steps in the pipeline, not from saved settings.
Placement in Tool Pipelines
CallConnectedAPI belongs early in the pipeline — step 1 or 2 — when the tool uses it as a data source, because the API response provides the data that later steps process.
Common patterns:
- Read then process:
CallConnectedAPI(get data) →ProcessPromptWithAI(analyze/summarize) →WriteFile(save report) - Process then send:
ProcessPromptWithAI(generate content) →CallConnectedAPI(post to service) - Read, transform, send:
CallConnectedAPI(get data) → Data skills (filter/transform) →CallConnectedAPI(post result)
Available Services and Operations
GitHub
ListRepositories— List your repositoriesGetIssues— Get issues for a repo (target:repoasowner/repo)CreateIssue— Create an issue (target:repo; content:title, optionalbody)GetPullRequests— Get PRs for a repo (target:repo)
Slack
ListChannels— List available channelsSendMessage— Post a message (target:channel; content:message)GetMessages— Get messages from a channel (target:channel)
Notion
SearchPages— Search pages (content:query)GetPage— Get a page by ID (target:pageId)CreatePage— Create a page in a database (target:databaseId; content:title, optionalcontent)QueryDatabase— Query a database (target:databaseId)
ClickUp
GetWorkspaces— List workspacesGetTasks— Get tasks from a list (target:listId)CreateTask— Create a task (target:listId; content:name, optionaldescription,priority)UpdateTask— Update a task (target:taskId; content: optionalstatus,name)
Linear
GetTeams— List teamsGetIssues— Get issues for a team (target:teamId)CreateIssue— Create an issue (target:teamId; content:title, optionaldescription)
Asana
GetProjects— List projectsGetTasks— Get tasks for a project (target:projectId)CreateTask— Create a task (target:projectId; content:name, optionalnotes)
Discord
GetServers— List serversGetChannels— Get channels for a server (target:serverId)SendMessage— Send a message (target:channelId; content:content)
HubSpot
GetContacts— List contactsCreateContact— Create a contact (content:email, optionalfirstName,lastName)GetDeals— List dealsCreateDeal— Create a deal (content:name, optionalstage)
Calendly
GetEventTypes— List event typesGetScheduledEvents— Get scheduled eventsGetUser— Get user info
Stripe
GetCustomers— List customersGetPayments— List paymentsGetSubscriptions— List subscriptions
QuickBooks
GetCustomers— List customersGetInvoices— List invoices