Webhook Management
Manage webhooks in Sinch Conversation API using the Conversation API specification. Note: MCP tools do not provide webhook management tools, so this skill always uses the Conversation API endpoints. Webhooks receive callbacks for various events like message delivery, inbound messages, contact updates, and conversation events.
Instructions
Identify the operation from user request:
- Create webhook: New webhook with target URL and triggers
- Update webhook: Modify webhook target, triggers, or secret
- List webhooks: Retrieve webhooks for an app or project
- Get webhook: Retrieve specific webhook details
- Delete webhook: Remove a webhook
Extract webhook information:
- Webhook ID: Unique identifier for existing webhooks
- Target URL: The callback URL where webhooks will be sent
- App ID: The app this webhook belongs to (required for creation)
- Triggers: Array of webhook triggers (MESSAGE_DELIVERY, MESSAGE_INBOUND, CONTACT_CREATE, etc.)
- Secret: Optional secret for signing webhook payloads
- Target type: HTTP (default) or DISMISS
Use Conversation API endpoints to perform operations:
- Note: MCP Sinch does not provide webhook management tools, so this skill always uses the Conversation API endpoints
- Create webhook:
POST /v1/projects/{project_id}/webhooks (Operation ID: Webhooks_CreateWebhook)
- Update webhook:
PATCH /v1/projects/{project_id}/webhooks/{webhook_id} (Operation ID: Webhooks_UpdateWebhook)
- Get webhook:
GET /v1/projects/{project_id}/webhooks/{webhook_id} (Operation ID: Webhooks_GetWebhook)
- List webhooks:
GET /v1/projects/{project_id}/apps/{app_id}/webhooks (Operation ID: Webhooks_ListWebhooks)
- Delete webhook:
DELETE /v1/projects/{project_id}/webhooks/{webhook_id} (Operation ID: Webhooks_DeleteWebhook)
- Authentication: Use Basic Auth or OAuth2 with credentials from environment variables
- Region: Use CONVERSATION_REGION environment variable (us, eu, or br)
- Base URL:
https://{region}.conversation.api.sinch.com
Response handling:
- Confirm successful operations with webhook ID
- Display webhook information clearly (target URL, triggers, app ID)
- Show webhook configuration details
- Report errors with actionable guidance
Examples
Natural language prompts that trigger this Skill:
- "Create a webhook for https://example.com/webhook with MESSAGE_DELIVERY trigger"
- "List all webhooks for app abc123"
- "Update webhook xyz789 to add MESSAGE_INBOUND trigger"
- "Delete webhook with ID webhook-123"
- "Show me webhook details for webhook-456"
- "Add CONTACT_CREATE trigger to my webhook"
- "What webhooks are configured for this app?"
Conversation API Usage (Required - no MCP alternative):
- Note: MCP Sinch does not provide webhook management tools, so this skill always uses the Conversation API
- Use the Conversation API endpoints for webhook operations (see endpoints above)
- Authentication: Use Basic Auth with CONVERSATION_KEY_ID and CONVERSATION_KEY_SECRET, or OAuth2
- Include required headers:
Authorization, Content-Type: application/json
- For create webhook, include request body with
app_id (required), target, target_type (HTTP or DISMISS), triggers array, and optional secret
- For update webhook, use PATCH with
update_mask parameter to specify which fields to update
- Maximum 5 webhooks per app
Webhook Triggers
Available webhook triggers:
- MESSAGE_DELIVERY: Delivery receipts for sent messages
- EVENT_DELIVERY: Delivery receipts for sent events
- MESSAGE_INBOUND: Inbound messages from end users
- EVENT_INBOUND: Inbound events from end users
- CONVERSATION_START: New conversation started
- CONVERSATION_STOP: Active conversation stopped
- CONVERSATION_DELETE: Conversation deleted
- CONTACT_CREATE: New contact created
- CONTACT_UPDATE: Contact updated
- CONTACT_DELETE: Contact deleted
- CONTACT_MERGE: Contacts merged
- OPT_IN: Opt-in events
- OPT_OUT: Opt-out events
- CAPABILITY: Capability query results
- CHANNEL_EVENT: Channel-specific events
- SMART_CONVERSATION: Smart conversation analysis
- MESSAGE_INBOUND_SMART_CONVERSATION_REDACTION: Smart conversation redaction
- CONTACT_IDENTITIES_DUPLICATION: Contact identity duplication detected
- RECORD_NOTIFICATION: Record notifications
- MESSAGE_SUBMIT: Message submission events
Webhook Operations
Create Webhook
- Requires
app_id in request body
- Specify
target URL (must be HTTPS for production)
- Set
target_type (HTTP or DISMISS)
- Configure
triggers array with one or more trigger types
- Optional
secret for signing webhook payloads
- Maximum 5 webhooks per app
Update Webhook
- Use PATCH method with
update_mask parameter
- Can update
target, triggers, secret, target_type
- Include only fields to update in request body
List Webhooks
- List webhooks for a specific app:
GET /v1/projects/{project_id}/apps/{app_id}/webhooks
- Returns array of webhooks with their configuration
Get Webhook
- Retrieve specific webhook by ID
- Returns full webhook configuration including triggers and target
Delete Webhook
- Remove webhook by ID
- Webhook will stop receiving callbacks immediately
Notes
- MCP Note: MCP Sinch does not provide webhook management tools, so this skill always uses the Conversation API endpoints
- Maximum 5 webhooks per app
- Webhook target URLs should use HTTPS in production
- Webhook secret is optional but recommended for verifying webhook authenticity
- Triggers can be combined - a webhook can subscribe to multiple trigger types
- Webhooks are scoped to apps - each webhook belongs to a specific app
- Use the Conversation API endpoints directly - reference the OpenAPI spec for exact parameter names and types
- Webhook callbacks are sent as HTTP POST requests to the target URL
- For testing, you can use HTTP URLs, but production webhooks should use HTTPS
1---2name: manage-webhook3description: Manage webhooks in Sinch Conversation API. Use when the user wants to create a webhook, update webhook settings, list webhooks, delete a webhook, get webhook details, configure webhook triggers, or manage webhook callbacks. Handles webhook lifecycle management including creation, updates, deletion, and trigger configuration.4---5
6# Webhook Management
7
8Manage webhooks in Sinch Conversation API using the Conversation API specification. Note: MCP tools do not provide webhook management tools, so this skill always uses the Conversation API endpoints. Webhooks receive callbacks for various events like message delivery, inbound messages, contact updates, and conversation events.
9
10## Instructions
11
121. **Identify the operation from user request:**
13 - **Create webhook**: New webhook with target URL and triggers
14 - **Update webhook**: Modify webhook target, triggers, or secret
15 - **List webhooks**: Retrieve webhooks for an app or project
16 - **Get webhook**: Retrieve specific webhook details
17 - **Delete webhook**: Remove a webhook
18
192. **Extract webhook information:**
20 - Webhook ID: Unique identifier for existing webhooks
21 - Target URL: The callback URL where webhooks will be sent
22 - App ID: The app this webhook belongs to (required for creation)
23 - Triggers: Array of webhook triggers (MESSAGE_DELIVERY, MESSAGE_INBOUND, CONTACT_CREATE, etc.)
24 - Secret: Optional secret for signing webhook payloads
25 - Target type: HTTP (default) or DISMISS
26
273. **Use Conversation API endpoints to perform operations:**
28 - **Note**: MCP Sinch does not provide webhook management tools, so this skill always uses the Conversation API endpoints
29 - **Create webhook**: `POST /v1/projects/{project_id}/webhooks` (Operation ID: `Webhooks_CreateWebhook`)
30 - **Update webhook**: `PATCH /v1/projects/{project_id}/webhooks/{webhook_id}` (Operation ID: `Webhooks_UpdateWebhook`)
31 - **Get webhook**: `GET /v1/projects/{project_id}/webhooks/{webhook_id}` (Operation ID: `Webhooks_GetWebhook`)
32 - **List webhooks**: `GET /v1/projects/{project_id}/apps/{app_id}/webhooks` (Operation ID: `Webhooks_ListWebhooks`)
33 - **Delete webhook**: `DELETE /v1/projects/{project_id}/webhooks/{webhook_id}` (Operation ID: `Webhooks_DeleteWebhook`)
34 - Authentication: Use Basic Auth or OAuth2 with credentials from environment variables
35 - Region: Use CONVERSATION_REGION environment variable (us, eu, or br)
36 - Base URL: `https://{region}.conversation.api.sinch.com`
37
384. **Response handling:**
39 - Confirm successful operations with webhook ID
40 - Display webhook information clearly (target URL, triggers, app ID)
41 - Show webhook configuration details
42 - Report errors with actionable guidance
43
44## Examples
45
46**Natural language prompts that trigger this Skill:**
47- "Create a webhook for https://example.com/webhook with MESSAGE_DELIVERY trigger"
48- "List all webhooks for app abc123"
49- "Update webhook xyz789 to add MESSAGE_INBOUND trigger"
50- "Delete webhook with ID webhook-123"
51- "Show me webhook details for webhook-456"
52- "Add CONTACT_CREATE trigger to my webhook"
53- "What webhooks are configured for this app?"
54
55**Conversation API Usage (Required - no MCP alternative):**
561. **Note**: MCP Sinch does not provide webhook management tools, so this skill always uses the Conversation API
572. Use the Conversation API endpoints for webhook operations (see endpoints above)
583. Authentication: Use Basic Auth with CONVERSATION_KEY_ID and CONVERSATION_KEY_SECRET, or OAuth2
594. Include required headers: `Authorization`, `Content-Type: application/json`
605. For create webhook, include request body with `app_id` (required), `target`, `target_type` (HTTP or DISMISS), `triggers` array, and optional `secret`
616. For update webhook, use PATCH with `update_mask` parameter to specify which fields to update
627. Maximum 5 webhooks per app
63
64## Webhook Triggers
65
66Available webhook triggers:
67- **MESSAGE_DELIVERY**: Delivery receipts for sent messages
68- **EVENT_DELIVERY**: Delivery receipts for sent events
69- **MESSAGE_INBOUND**: Inbound messages from end users
70- **EVENT_INBOUND**: Inbound events from end users
71- **CONVERSATION_START**: New conversation started
72- **CONVERSATION_STOP**: Active conversation stopped
73- **CONVERSATION_DELETE**: Conversation deleted
74- **CONTACT_CREATE**: New contact created
75- **CONTACT_UPDATE**: Contact updated
76- **CONTACT_DELETE**: Contact deleted
77- **CONTACT_MERGE**: Contacts merged
78- **OPT_IN**: Opt-in events
79- **OPT_OUT**: Opt-out events
80- **CAPABILITY**: Capability query results
81- **CHANNEL_EVENT**: Channel-specific events
82- **SMART_CONVERSATION**: Smart conversation analysis
83- **MESSAGE_INBOUND_SMART_CONVERSATION_REDACTION**: Smart conversation redaction
84- **CONTACT_IDENTITIES_DUPLICATION**: Contact identity duplication detected
85- **RECORD_NOTIFICATION**: Record notifications
86- **MESSAGE_SUBMIT**: Message submission events
87
88## Webhook Operations
89
90### Create Webhook
91- Requires `app_id` in request body
92- Specify `target` URL (must be HTTPS for production)
93- Set `target_type` (HTTP or DISMISS)
94- Configure `triggers` array with one or more trigger types
95- Optional `secret` for signing webhook payloads
96- Maximum 5 webhooks per app
97
98### Update Webhook
99- Use PATCH method with `update_mask` parameter
100- Can update `target`, `triggers`, `secret`, `target_type`
101- Include only fields to update in request body
102
103### List Webhooks
104- List webhooks for a specific app: `GET /v1/projects/{project_id}/apps/{app_id}/webhooks`
105- Returns array of webhooks with their configuration
106
107### Get Webhook
108- Retrieve specific webhook by ID
109- Returns full webhook configuration including triggers and target
110
111### Delete Webhook
112- Remove webhook by ID
113- Webhook will stop receiving callbacks immediately
114
115## Notes
116
117- **MCP Note**: MCP Sinch does not provide webhook management tools, so this skill always uses the Conversation API endpoints
118- Maximum 5 webhooks per app
119- Webhook target URLs should use HTTPS in production
120- Webhook secret is optional but recommended for verifying webhook authenticity
121- Triggers can be combined - a webhook can subscribe to multiple trigger types
122- Webhooks are scoped to apps - each webhook belongs to a specific app
123- Use the Conversation API endpoints directly - reference the OpenAPI spec for exact parameter names and types
124- Webhook callbacks are sent as HTTP POST requests to the target URL
125- For testing, you can use HTTP URLs, but production webhooks should use HTTPS
126