Integrations
Send handoffs and replies to your help desk with a signed webhook, get a weekly summary by email, and embed the chat with your page builder.
Help desk webhook
A public HTTPS address, for example a Zapier, Make or help desk webhook. Leave blank to turn the webhook off.
Visitor asked for a person (conversation.handoff), Team reply sent (conversation.replied), Conversation status changed (conversation.status; not sent for the waiting statuses, which the handoff event covers). Replies are your team's messages, never internal notes.
Also send the chat with the assistant from before the visitor asked for a person, as conversation.transcript.
Under Signing & Testing: the Signing secret, Send test event (sends ping; without a saved URL: "Enter an HTTPS webhook URL and save first."), Regenerate secret and the last delivery result ("Last delivery: conversation.replied succeeded (HTTP 200), 5 mins ago."). Only administrators can change the webhook URL, events and transcript setting or see the secret; other managers see the settings read-only ("Only administrators can change this.").
- Team & Handoff tab scrolled to the Integrations section
- Help Desk Webhook: Webhook URL, Send These Events, Include Chat Transcript, Signing & Testing
- Weekly Digest below
Payload
{
"id": "…",
"event": "conversation.handoff",
"delivered_at": "2026-10-14T10:00:00+00:00",
"site": "https://your-store.com/",
"conversation": {
"id": 42, "status": "human_requested", "name": "Sarah", "email": "sarah@example.com",
"customer_id": 0, "agent": null, "created_at": "…",
"admin_url": "https://your-store.com/wp-admin/…",
"messages": [ { "from": "customer", "text": "Can I talk to someone?", "time": "…" } ]
}
}
messages holds the messages from the request for a person on (from is customer, ai, human_agent or system), up to 200 per conversation. agent is { "name", "email" } once someone is assigned. Internal notes are never sent.
Verifying the signature
Headers: X-Siteryn-Event, X-Siteryn-Delivery, X-Siteryn-Timestamp and X-Siteryn-Signature = sha256= + HMAC-SHA256 of "{timestamp}.{body}" with your secret.
$secret = 'your-signing-secret';
$body = file_get_contents( 'php://input' );
$timestamp = $_SERVER['HTTP_X_SITERYN_TIMESTAMP'] ?? '';
$signature = $_SERVER['HTTP_X_SITERYN_SIGNATURE'] ?? '';
$expected = 'sha256=' . hash_hmac( 'sha256', $timestamp . '.' . $body, $secret );
if ( ! hash_equals( $expected, $signature ) || abs( time() - (int) $timestamp ) > 300 ) {
http_response_code( 401 );
exit;
}
$event = json_decode( $body, true );
Deliveries run in the background with up to 3 attempts (retries after 5 and 30 minutes) on network errors, 5xx or 429 responses; X-Siteryn-Delivery stays the same on retries, so reject repeated delivery ids and old timestamps. Redirects are not followed.
Weekly digest
"[Your Site] Support chat: your week": the last seven days' conversations, answers, resolved without your team, answers citing your information, contact requests, failed messages, "Support Inbox: 2 waiting for your team, 1 in progress", up to 5 unanswered questions and a link to Analytics.
Monday by default · blank uses the contact form address.
Page-builder widgets
Embed the chat, always open, in a page. The name, welcome message and colours come from the plugin settings (Siteryn → AI Support Agent).
| Builder | Find it as |
|---|---|
| Block editor | The "AI Store Assistant" block (one per page; wide and full alignment) |
| Elementor | The "AI Store Assistant" widget |
| Bricks | The "AI Store Assistant" element |
The widgets keep rendering if the license lapses. You can also use the Free plugin's shortcode anywhere.