These docs cover the S6S workflow engine — the developer playground layer underneath the product. For the main AI Visibility product (brand monitoring, the unified Report, fix actions), start at /docs/ai-visibility.

Integrations

S6S ships with built-in support for popular platforms. Use provider.action syntax in your workflow steps (e.g. slack.send_message, google_sheets.append_row). For APIs beyond the built-in set, S6S Cloud can learn new integrations automatically.

Built-in providers

These providers have native support with dedicated executors, OAuth or API key authentication, and config validation. Available on both self-hosted and cloud.

ProviderServicesAuth
GoogleSheets, Drive, Gmail, YouTubeOAuth
SlackMessages, channelsOAuth
DiscordMessages, webhooksOAuth
TelegramMessages, updatesAPI key
TwitterPosts, readsOAuth
BufferSocial media posting (X, Instagram, TikTok)API key
IMAPRead email from any providerCredentials
SMTPSend email via any mail serverCredentials
HTTPAny REST API via action.httpAPI key / none
DatabasePostgreSQL, MySQL (raw SQL)Connection string

For any service not listed above, you can always use action.http to call its REST API directly.

How provider resolution works

When you use provider.action syntax, S6S resolves it through a chain:

Resolution chain
1. Built-in providers (google, slack, etc.)     → instant
2. Provider aliases (google_drive → google)      → instant
3. Cached learned providers (from DB)            → instant          [Cloud]
4. Doc-verified learning (web search + LLM)      → 3-8s            [Cloud]
5. LLM knowledge fallback (no docs found)        → 2-5s            [Cloud]

Steps 1–2 work everywhere (self-hosted and cloud). Steps 3–5 are S6S Cloud features that use the integration learning pipeline to discover and cache unknown APIs.

Example: Using a provider integration

Any provider.action pair works as a step action. S6S resolves it using the chain above.

Recipe step using a built-in integration
{
  "ref": "notify_team",
  "action": "slack.send_message",
  "config": {
    "channel": "#alerts",
    "textTemplate": "New order from {{fetch_order.output.body.customer}}"
  },
  "credential": "slack"
}

Output shape

All provider.action steps return an HTTP envelope. Access API data via expression templates.

Step output structure
{
  "status": "ok",
  "statusCode": 200,
  "body": { ... }    // API response data
}

Reference fields with {{step_ref.output.body.field}} in downstream steps. See the Expressions guide for details.

Discovery endpoints

GET /api/v1/integrations

List all available built-in actions (with config schemas), triggers, and credential providers. Returns everything needed to build workflows.

GET /api/v1/integrations/{provider_id}

Full detail for a built-in action (e.g. gmail, youtube, buffer) or a credential provider. Returns config schema, output shape, and expression fields. On S6S Cloud, unknown providers are auto-learned on demand.

MCP Tools

s6s_list_integrations and s6s_get_integration are available via the MCP server.

Dynamic integration learning

Cloud

On S6S Cloud, unknown provider.action pairs are learned automatically. When a deploy references a provider S6S hasn't seen before:

  1. S6S searches the web for the platform's API documentation.
  2. An LLM extracts endpoints, auth configuration, and request body schemas from the docs.
  3. The result is cached in the database — subsequent deploys resolve instantly.
  4. Learned integrations auto-re-verify from fresh docs every 30 days.

Confidence scoring

Every learned integration gets a confidence score based on how it was discovered.

ScoreSourceMeaning
1.0Built-inHardcoded provider with dedicated executor
0.85Docs-groundedLearned from official API documentation
0.65LLM knowledge onlyNo docs found; based on model training data
< thresholdLow confidenceNot persisted — too unreliable to cache

APIs that change or deprecate are detected at runtime and re-learned automatically (self-healing). Failed API calls with 404, 410, or deprecation signals trigger re-verification on the next deploy.

Self-hosting

Self-hosted instances have full access to all built-in providers. For services not in the built-in list, use action.http to call any REST API directly. Dynamic integration learning (auto-discovering unknown APIs) is available on S6S Cloud.