Webhooks

Get notified the moment a record is created, updated or deleted.

Webhooks send an HTTP request to your system whenever data changes in Solid, so you never need to poll the API.

Create a webhook

  1. Go to Settings → APIs & Webhooks → Webhooks.
  2. Click + Create webhook and enter a public HTTPS URL.
  3. Click Save. Events start arriving immediately.

Events

EventExamples
Record createdperson.created, company.created
Record updatedopportunity.updated
Record deletedcompany.deleted

Payload

Each event is a POST with a JSON body:

{
  "event": "person.created",
  "data": {
    "id": "abc12345",
    "name": { "firstName": "Ana", "lastName": "Souza" },
    "createdAt": "2026-09-30T15:30:45Z"
  },
  "timestamp": "2026-09-30T15:30:50Z"
}

Answer with any 2xx status to confirm delivery. Other responses are logged as failures.

Verify the signature

Every request is signed so you can check that it came from Solid. The headers keep the names of the open-source engine Solid is built on:

HeaderContent
X-Twenty-Webhook-SignatureHMAC SHA-256 signature
X-Twenty-Webhook-TimestampWhen the request was signed
import crypto from 'node:crypto';

export function isFromSolid(req, secret) {
  const timestamp = req.headers['x-twenty-webhook-timestamp'];
  const expected = crypto
    .createHmac('sha256', secret)
    .update(`${timestamp}:${JSON.stringify(req.body)}`)
    .digest('hex');
  return expected === req.headers['x-twenty-webhook-signature'];
}

Reject requests whose signature doesn't match, and ignore timestamps older than a few minutes to prevent replays.

On this page