Skip to main content
An integration is a connection to an external system — a calendar, a spreadsheet, a store. You connect the provider once for your organization, then turn its actions into skills on any agent. No glue code: the action’s parameters become the values the agent collects from the caller, and the platform runs the call.

The model: catalog → connect → provision

1

Browse the catalog

GET /integrations/catalog returns every connectable provider — its display name, category, a short blurb, a logo slug, how many actions it exposes, whether it ships a preset pack (hasPack), and whether your org has already connected it. The dashboard renders this as a card grid; you can render your own. A provider with actionCount: 0 and hasPack: true is pack-based — install its Connector Pack rather than provisioning individual actions.
2

Connect the provider

POST /integrations/{kind}/connect. OAuth providers return an oauthUrl to open in a browser; API-key providers accept { "credentials": { … } } and connect immediately.
3

Provision actions as skills

POST /agents/{agentId}/integrations/{kind}/provision creates one skill per action. Omit actions to provision every important action, or pass a list of action slugs.
4

Publish

Provisioning edits the agent draft. Publish so phone and chat serve the new skills.

Beyond pre-built actions: map fields yourself

For any provider whose schema can be introspected, you’re not limited to its pre-built actions — discover its full schema and map any field onto your agent:
1

Discover the schema

POST /integrations/{kind}/discover introspects the provider into a normalized catalog of every object, field, relationship, and operation.
2

Read it

GET /integrations/{kind}/schema returns that catalog to map from.
3

Map a binding

POST /agents/{id}/integrations/{kind}/bindings maps an operation’s inputs to your agent’s parameters and projects the fields you want back — compiling to a skill.
Walk through it in Map an integration’s fields, or see the Integrations concept for how the two models compare. Two shortcuts skip the hand-mapping:
  • Auto-map from a goalPOST /agents/{agentId}/integrations/{kind}/bindings/auto turns a plain-language goal into a validated binding (saved as a draft to review).
  • Install a preset pack — providers that ship a Connector Pack install ready-made skills in one call: POST /agents/{agentId}/integrations/{kind}/pack/install.

Live vs reserved

The catalog only lists providers you can connect today. Reserved providers (for example Calendly, HubSpot, Square, OpenTable) are coming soon and do not appear yet.
ProviderAuthStatus
Google CalendarOAuthLive
Google SheetsOAuthLive
ShopifyAPI keyLive
SQL database — Postgres & MySQLCredentialsLive
Calendly, HubSpot, Square, OpenTableReserved (coming soon)
Need something not listed? Build a custom integration with an http_webhook skill that calls your own endpoint.

In the API

ActionEndpointScope
Browse the provider catalogGET /integrations/catalogintegrations:read
List connected integrationsGET /integrationsintegrations:read
Connect a providerPOST /integrations/{kind}/connectintegrations:write
List a provider’s actionsGET /integrations/{kind}/actionsintegrations:read
Provision actions as skillsPOST /agents/{agentId}/integrations/{kind}/provisionskills:write
Discover a provider’s schemaPOST /integrations/{kind}/discoverintegrations:write
Read the discovered schemaGET /integrations/{kind}/schemaintegrations:read
Browse objects / operationsGET /integrations/{kind}/objects · GET /integrations/{kind}/operationsintegrations:read
Map a binding (open model)POST /agents/{agentId}/integrations/{kind}/bindingsskills:write
Auto-map a binding from a goalPOST /agents/{agentId}/integrations/{kind}/bindings/autoskills:write
Read / install a preset packGET /integrations/{kind}/pack · POST /agents/{agentId}/integrations/{kind}/pack/installskills:write
Remove provisioned skillsDELETE /agents/{agentId}/integrations/{kind}/provisionskills:write
Disconnect a providerDELETE /integrations/{kind}integrations:write
GET /integrations and the catalog return status only — connected tokens are stored encrypted and never echoed back.
Authenticate every call with Authorization: Bearer flowyte_sk_… (see Authentication). Never send an organization header with an API key.
curl https://builder.flowyte.com/api/v1/integrations/catalog \
  -H "Authorization: Bearer flowyte_sk_…"