Skip to main content
elean can send task events as signed JSON payloads to any HTTP endpoint you control — new tasks, assignments, status and priority changes, comments, updates, and deletions.

Setup

1

Open Integrations

Go to Workspace Settings → Integrations and find the Custom Webhook card.
2

Configure the endpoint

Click Connect and enter the Endpoint URL that should receive POST requests. elean generates a Signing Secret for you — use it to verify incoming requests.
3

Optional settings

Set Max retry attempts (1–10, default 5) and any custom headers to include on every request.
4

Choose events

Select which events should be sent to that endpoint. You can change this at any time.

Payload

Each request is a POST with a JSON body:
For example, a task.status_changed event:
oldStatus and newStatus are the status names as shown in the project. actorId is null when the change came from the Public API or the system. Payloads can include additional fields; rely only on the ones documented here. Requests include these headers:

Verifying the signature

Compute an HMAC SHA-256 of the raw request body using your Signing Secret, and compare it (constant-time) to the X-Elean-Signature header:
Always verify against the raw request body, before any JSON parsing — re-serializing the parsed body can change byte-for-byte formatting and break the signature check.

Supported events

Retries

If your endpoint doesn’t respond with a 2xx status, elean retries with backoff up to your configured Max retry attempts (default 5).

Limits

The number of webhook connections per workspace depends on your plan:

Disconnecting

Remove a connection from Workspace Settings → Integrations → Custom Webhook → Disconnect. No further events will be sent, and you can reconnect at any time.