External API Skills

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:

  1. Credential check — The skill checks whether credentials are configured for the requested service. If not, it opens the credential configuration flow.

  2. 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.

  3. Execution — The skill calls the appropriate API using the stored credentials and target parameters, along with any content from the previous step.

  4. 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 repositories
  • GetIssues — Get issues for a repo (target: repo as owner/repo)
  • CreateIssue — Create an issue (target: repo; content: title, optional body)
  • GetPullRequests — Get PRs for a repo (target: repo)

Slack

  • ListChannels — List available channels
  • SendMessage — 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, optional content)
  • QueryDatabase — Query a database (target: databaseId)

ClickUp

  • GetWorkspaces — List workspaces
  • GetTasks — Get tasks from a list (target: listId)
  • CreateTask — Create a task (target: listId; content: name, optional description, priority)
  • UpdateTask — Update a task (target: taskId; content: optional status, name)

Linear

  • GetTeams — List teams
  • GetIssues — Get issues for a team (target: teamId)
  • CreateIssue — Create an issue (target: teamId; content: title, optional description)

Asana

  • GetProjects — List projects
  • GetTasks — Get tasks for a project (target: projectId)
  • CreateTask — Create a task (target: projectId; content: name, optional notes)

Discord

  • GetServers — List servers
  • GetChannels — Get channels for a server (target: serverId)
  • SendMessage — Send a message (target: channelId; content: content)

HubSpot

  • GetContacts — List contacts
  • CreateContact — Create a contact (content: email, optional firstName, lastName)
  • GetDeals — List deals
  • CreateDeal — Create a deal (content: name, optional stage)

Calendly

  • GetEventTypes — List event types
  • GetScheduledEvents — Get scheduled events
  • GetUser — Get user info

Stripe

  • GetCustomers — List customers
  • GetPayments — List payments
  • GetSubscriptions — List subscriptions

QuickBooks

  • GetCustomers — List customers
  • GetInvoices — List invoices