Skip to content

Webhooks

Webhooks let Mind One notify external systems in real time when events happen on the platform. Instead of polling the API periodically, your system receives an HTTP call the moment something relevant occurs.


How they work

  1. You configure an endpoint on your system that accepts POST requests.
  2. You register the webhook in Mind One, specifying the URL and which events to listen for.
  3. When the event occurs, Mind One sends a POST with a JSON payload to your endpoint.
  4. Your endpoint responds with a 2xx code to confirm receipt.

Configuration

Webhooks are managed from Account Settings → Webhooks. Only the Admin role can create, edit and delete webhooks.

To create a webhook:

  1. Click + Create webhook.
  2. Enter a descriptive name (e.g. Sync notifications).
  3. Enter the destination URL where Mind One will send requests.
  4. Select one or more events that will trigger the webhook.
  5. Click Create webhook.

Available events

EventDescription
datagrid.row.createdA new record was created in a sheet
datagrid.row.updatedAn existing record in a sheet was updated
datagrid.row.deletedA record was deleted from a sheet
datagrid.createdA new sheet was created
datagrid.updatedA sheet’s configuration or metadata was modified
datagrid.deletedA sheet was deleted
datagrid.approvedA sheet was published

Payload format

All events follow the same structure:

{
  "event": "datagrid.row.updated",
  "timestamp": "2026-05-25T10:30:00Z",
  "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "data": { ... }
}
FieldTypeDescription
eventstringThe event’s name
timestampstringDate and time of the event in ISO 8601 (UTC) format
tenantIdstringIdentifier of the tenant that originated the event
dataobjectEvent-specific payload

Security

Every webhook includes an X-MindOne-Signature header with an HMAC-SHA256 signature of the request body, using the secret configured on the webhook.

X-MindOne-Signature: sha256=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Verification in Node.js:

const crypto = require('crypto');

function verifySignature(payload, signature, secret) {
  const expected = 'sha256=' + crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');
  return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}
Always validate the signature before processing the payload. Discard requests with an invalid or missing signature.

Retries

If your endpoint doesn’t respond with a 2xx within the time limit (10 seconds), Mind One retries delivery with exponential backoff:

AttemptWait
1Immediate
21 minute
35 minutes
430 minutes

After 3 failed retries, the event is marked as undelivered.


Related

  • API Documentation — Public REST API to query and modify data programmatically.
  • Connections — Automatic syncing with data warehouses via Autosync.