message
postWebhookMessage Created
Headers
X-Twenty-Webhook-Signaturestring
HMAC SHA256 signature of the request payload using the webhook secret. To compute the signature:
- Concatenate X-Twenty-Webhook-Timestamp, a colon (:), and the JSON string of the request payload.
- Compute the HMAC SHA256 hash using the shared secret as the key.
- Send the resulting hex digest as this header value. Example (Node.js):
const crypto = require("crypto");
const timestamp = "1735066639761";
const payload = JSON.stringify({...});
const secret = "your-secret";
const stringToSign = `${timestamp}:${JSON.stringify(payload)}`;
const signature = crypto.createHmac("sha256", secret)
.update(stringToSign)
.digest("hex");
X-Twenty-Webhook-Timestampstring
Unix timestamp of when the webhook was sent. This timestamp is included in the HMAC signature generation to prevent replay attacks.
X-Twenty-Webhook-Noncestring
Unique identifier for this webhook request to prevent replay attacks. Consumers should ensure this nonce is not reused.
Payload
Response
Return a 200 status to indicate that the data was received successfully
Changes
Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.