Triggers

List triggers available on a connection

Changed on

Lists every trigger the connection's provider publishes, and marks each one as available or unavailable on this connection. Use this endpoint to build a trigger picker, or to find out what a trigger needs before you subscribe to it. Pass the connection ID in the path. A trigger that cannot run on this connection is still returned, with available set to false and a reason, a remedy and, where one applies, a refusal_code. For example, a trigger that needs your own provider app is unavailable while the connection uses Scalekit's shared app. Each trigger describes how it detects events (webhook or poll), its required scopes, its configuration fields, its polling intervals, and whether it needs a signing secret. The response also states whether the connection uses Scalekit's shared provider app. Next, call ListEligibleAccounts to see which connected accounts can receive a trigger.

get/api/v1/connections/{connection_id}/triggers

Request

Path parameters

connection_idstring required

ID of the connection, in this environment. Up to 64 characters.

Response

The provider's triggers, each with its availability on this connection, and whether the connection uses Scalekit's shared provider app

connection_uses_shared_appboolean

Whether the connection is configured to use Scalekit's shared provider app rather than the customer's own. Read from the connection's saved configuration. When true, any trigger with platform_credentials UNSUPPORTED is unavailable until the customer adds their own provider app to the connection.

Example response

{
  "triggers": [
    {
      "config_fields": [
        {
          "display_name": "Channel",
          "help_text": "The ID of the channel to watch for new messages.",
          "key": "channel",
          "placeholder": "C0123456789",
          "required": true
        }
      ],
      "default_interval_seconds": 300,
      "description": "Fires when a new message is posted in a channel.",
      "display_name": "Message posted",
      "min_interval_seconds": 60,
      "name": "slack_message_posted",
      "provider": "slack",
      "reason": "This connection uses Scalekit's shared slack app, and a webhook URL is registered against the app rather than the connection — the shared app has only one.",
      "register_hint": "api.slack.com/apps → your app → Event Subscriptions → turn on Enable Events → paste into Request URL.",
      "remedy": "Add your own slack app to this connection, then subscribe.",
      "required_scopes": [
        {
          "grant": "bot",
          "scope": "channels:history"
        }
      ],
      "requires_signing_secret": true,
      "secret_hint": "Your app → Basic Information → App Credentials → Signing Secret."
    }
  ]
}

Changes