> ## Documentation Index
> Fetch the complete documentation index at: https://docs.famulor.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Signed webhook subscriptions

> Register a dedicated HTTPS receiver for call, conversation and booking events.

Register a dedicated HTTPS receiver for call, conversation and booking events.

A workspace owner/admin can register a receiver with Settings: Write and the read permission for each selected event: Calls: Read or Bookings: Read. API Access is required. Signing secrets stay with the receiver and are never returned by list, detail or create responses.

## Supported events

* `call.completed`
* `conversation.ended`
* `booking.created`
* `booking.cancelled`
* `booking.rescheduled`

Use a strong signing secret of 16–256 characters in the receiving application. Famulor sends the exact JSON bytes signed with HMAC-SHA256 in X-Famulor-Signature. Verify the signature before processing. Duplicate or replayed deliveries are possible; deduplicate using the event and resource ID.

## n8n

New Famulor Trigger nodes in package 2.3.0 use automatic registration. Add the workspace API key and your signing secret to Famulor Webhook API credentials, select one event and activate the workflow. Deactivation removes only that node’s subscription. Saved version-2/3 nodes keep manual setup unless you explicitly select Automatic Subscription. Existing assistant, connector and booking destinations remain unchanged.

## API, MCP, CLI and SDK

| REST | MCP | CLI |
| - | - | - |
| `GET /api/v1/webhooks` | `list_webhook_subscriptions` | `famulor list-webhook-subscriptions` |
| `POST /api/v1/webhooks` | `create_webhook_subscription` | `famulor create-webhook-subscription` |
| `GET /api/v1/webhooks/{id}` | `get_webhook_subscription` | `famulor get-webhook-subscription --id <subscription-id>` |
| `DELETE /api/v1/webhooks/{id}` | `delete_webhook_subscription` | `famulor delete-webhook-subscription --id <subscription-id>` |

```bash theme={null}
famulor create-webhook-subscription --url 'https://receiver.example.com/events' --events '["call.completed"]' --secret '<signing-secret-from-your-receiver>'
```

```typescript theme={null}
import { Famulor } from 'famulor-sdk';

async function subscribe(workspaceApiKey: string, callbackUrl: string, signingSecret: string) {
const client = new Famulor({ apiKey: workspaceApiKey });
const subscription = await client.api.createWebhookSubscription({
  body: { url: callbackUrl, events: ['call.completed'], secret: signingSecret },
});
await client.api.deleteWebhookSubscription({ path: { id: subscription.data.id } });
}
```

A stable optional subscription UUID makes an ambiguous registration safe to repeat with identical settings. Different settings for the same ID return 409. Deleting an already absent subscription returns deleted: false.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.