Agent Skill · Frontline

integrations

Manage account integrations (Studio connected accounts/toolkits — Gmail, Slack, Salesforce, etc.) and resolve trigger resource IDs using the `frontline integrations` CLI. Use this to list connected integrations and read the numeric `id` that becomes the `connectedAccountId` in workflow/flow triggers and tool nodes, to discover connectable toolkits and their tool slugs, to configure which tools an integration exposes (`integrations tools set`), and to turn human labels like "my Q3 budget sheet" into the IDs an event-trigger config needs. Requires a USER API key.

Provider: Frontline Path in repo: integrations/SKILL.md

Skill body

Account integrations (Studio connected accounts)

Account integrations are the account-scoped (Studio) connected accounts — Gmail, Slack, Salesforce, Google Sheets, etc. Each one has a numeric id that is the connectedAccountId you wire into workflow/flow triggers, tool nodes, and the resource pickers below. Setting up an automation almost always starts here: find the integration, confirm it’s connected, and read its id.

All frontline integrations commands are USER-scoped — a GENERAL/account key returns 401. Auth uses the same per-user API key as the rest of the CLI (frontline auth login <key>).

Managing integrations

Command What it does
integrations list List connected integrations. Each id is the connectedAccountId.
integrations toolkits Catalog of connectable toolkits + their supported tool slugs.
integrations get <integrationId> Full details of one integration.
integrations update <integrationId> Change --alias and/or --visibility (SHARED/PRIVATE).
integrations tools list <integrationId> Tools split into enabled vs available (with required-scope status).
integrations tools set <integrationId> Replace the enabled tool slugs (--slugs a,b,c).

integrations list filters: --toolkit <TOOLKIT>, --filter-text <text>, --connected, --disconnected. Toolkit values are UPPERCASE enum names (GMAIL, SLACK, SALESFORCE, GOOGLESHEETS, HUBSPOT, …) — integrations toolkits is the authoritative list; an unknown value returns 400. Add --table to any read command for a compact view.

# Find the Gmail integration and grab its id (the connectedAccountId for triggers).
frontline integrations list --toolkit GMAIL --connected --table
#   → id: 42   toolkit: GMAIL   alias: Support inbox   isConnected: true

# See what a toolkit can do, then enable a specific set of tools.
frontline integrations toolkits --table
frontline integrations tools list 42 --table
frontline integrations tools set 42 --slugs GMAIL_SEND_EMAIL,GMAIL_FETCH_EMAILS

Output shapes (default JSON)

Using the id in workflows and flows

This is what the id is for (see the workflow-builder skill for full node payloads):

frontline workflows nodes create --data '{"nodeId":"node_11111111-1111-1111-1111-111111111111","type":"TRIGGER","position":{"positionX":0,"positionY":0},"data":{"type":"TRIGGER","triggerType":"COMPOSIO_TRIGGER","connectedAccountId":42,"triggerToolkit":"GMAIL","triggerSlug":"GMAIL_NEW_GMAIL_MESSAGE","triggerConfig":{"labelIds":"INBOX"}}}'

When the trigger fires, the event payload is available in downstream nodes as the built-in {trigger_payload} variable (plain string, no dot-access — extract fields with DATA_TRANSFORMER or AI_CAPTURE, same as {webhook_payload}).

Semantics, permissions, and errors

Integration resources (trigger ID resolver)

Event triggers don’t take human names — they take IDs. A “new rows in a Google Sheet” trigger needs a spreadsheet_id, not “my budget sheet”. These commands list the resources in a user’s connected integration so you can pick the right ID and drop it into a trigger config.

This is the missing middle step of the event-trigger flow:

  1. Discover the triggermax tasks triggers (or the workflow trigger catalog): gives you the slug and its config field names (e.g. spreadsheet_id, sheet_name).
  2. Resolve the IDsthese commands: turn names into IDs for those config fields.
  3. Create — pass the resolved IDs in the trigger config (max tasks create --trigger-slug … --trigger-config '{…}', or the workflow trigger node).

If a picker returns nothing or 401s unexpectedly, check integrations list first — the toolkit may not be connected, may be expired, or may be someone else’s PRIVATE integration.

Which command resolves which config field

Command Resolves Common trigger config field
integrations resources gmail labels Gmail label id label id
integrations resources googlesheets spreadsheets spreadsheet id spreadsheet_id
integrations resources googlesheets sheets <spreadsheetId> sheet/tab name sheet_name
integrations resources googledocs documents document id document_id
integrations resources googledrive folders folder id folder_id
integrations resources googledrive shared-drives drive id drive_id
integrations resources asana workspaces workspace gid workspace_gid
integrations resources asana projects <workspaceGid> project gid project_gid
integrations resources salesforce sobjects sobject name sobject_name
integrations resources salesforce fields <sobjectName> field name field selectors
integrations resources outlook folders mail folder id folderId
integrations resources outlook calendars calendar id calendarId

The searchable pickers (sheets, docs, drive folders/drives) accept --query <text> and --limit <n> (1–100, default 50). Add --table for a readable list.

Typical flow

# 1. See what the trigger needs.
max tasks triggers --pretty
#   → GOOGLESHEETS_NEW_ROWS_TRIGGER needs { spreadsheet_id, sheet_name, start_row }

# 2. Resolve the spreadsheet, then its tabs.
frontline integrations resources googlesheets spreadsheets --query "Q3 budget" --table
#   → id: 1AbC...   name: Q3 Budget
frontline integrations resources googlesheets sheets 1AbC... --table
#   → title: Sheet1

# 3. Create the task with the resolved IDs.
max tasks create \
  --name "New budget rows" \
  --instructions "Summarize each new budget row and flag anything over $10k." \
  --trigger-slug GOOGLESHEETS_NEW_ROWS_TRIGGER \
  --trigger-config '{"spreadsheet_id":"1AbC...","sheet_name":"Sheet1","start_row":2}'

Multiple accounts of the same toolkit

If the user has more than one connected account for a toolkit (e.g. two Gmail accounts), pass --connected-account-id <id> to target a specific one — the <id> is the integration id from integrations list. With a single account per toolkit you can omit it.

Examples

frontline integrations resources gmail labels --table
frontline integrations resources googledocs documents --query proposal
frontline integrations resources googledrive folders --query Invoices --table
frontline integrations resources asana workspaces
frontline integrations resources asana projects 1200000000000001
frontline integrations resources salesforce sobjects --table
frontline integrations resources salesforce fields Opportunity
frontline integrations resources outlook calendars

See also

Skill frontmatter

allowed-tools: Bash(frontline:*)

Work with this as data

Every skill here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for agent skills

4 MCP tools reach this
  • find_skillsBrowse and filter every skill in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This skill
curl "https://apis.io/api/v1/skills/integrations"
All agent skills
curl "https://apis.io/api/v1/skills?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.