Platforms
Greenlight supports seven chat platforms. Credentials are registered per
channel via POST /v1/channels/new.
Comparison
| Platform | Delivery | Required credentials | Prompt option limit |
|---|---|---|---|
| Telegram | Polling (default) or webhook | bot_token | 10 |
| Slack | Webhook | bot_token, signing_secret | 10 |
| Teams | Webhook | app_id, app_password | 10 |
| Discord | Webhook + Gateway | bot_token, public_key, application_id | 10 |
| Google Chat | Webhook | service_account_json, google_chat_project_number | 10 |
| Webhook (GET+POST) | access_token, app_secret, phone_number_id, verify_token | 3 | |
| Messenger | Webhook (GET+POST) | page_access_token, app_secret, verify_token | 3 |
Webhook URL pattern
{PUBLIC_WEBHOOK_URL}/webhooks/{organization_id}/{platform}/{channel_id}Set PUBLIC_WEBHOOK_URL to your public HTTPS base with no trailing slash.
Create schema (shared)
POST /v1/channels/new body (fields vary by channel_type):
PROMPT — no channel-level callback_url required:
{
"channel_id": "ops-approvals",
"platform": "slack",
"target_chat_id": "C01234567",
"credentials": { "bot_token": "xoxb-...", "signing_secret": "..." },
"channel_type": "PROMPT"
}MESSAGE — callback_url required (where Greenlight forwards inbound chat):
{
"channel_id": "ops-slack-chat",
"platform": "slack",
"target_chat_id": "C01234567",
"credentials": { "bot_token": "xoxb-...", "signing_secret": "..." },
"callback_url": "https://agent.example/on_message",
"channel_type": "MESSAGE"
}Also configure the platform to send events to
{PUBLIC_WEBHOOK_URL}/webhooks/{organization_id}/{platform}/{channel_id} (see platform guides).
Pick a platform guide above for credentials and portal setup steps.