Webhooks

Inbox Drop ingress - inbound email payload from provider adapter

POST
/api/webhook/inbox-drop

Inbox Drop ingress that receives a parsed inbound email payload from a provider-specific adapter (today: the sendgrid-inbound service). The api evaluates which workflows' InboxDropTrigger nodes match the email's subject/from filters and enqueues one BullMQ job per match. Auth is the shared INTERNAL_SERVICE_TOKEN via the X-Internal-Token header - NOT user auth. Adapter services hold this token; external callers must not hit this endpoint directly. Returns 202 with matchedCount so the caller can decide whether to fall back to a non-workflow path when no workflow matched.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Internal-service request body sent by inbound-email adapters (SendGrid, etc.) to fan out to matching workflows.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/webhook/inbox-drop" \  -H "Content-Type: application/json" \  -d '{    "organizationId": "64a1b2c3d4e5f60012345678",    "userId": "64a1b2c3d4e5f60012345679",    "emailData": {      "from": "alex.nguyen@example.com",      "to": [        "inbound+org-64a1b@inbound.tetherai.ca"      ],      "subject": "Maple Court availability",      "body": "Hi - could you confirm the corner unit is still listed?"    },    "metadata": {      "receivedAt": "2026-05-20T15:04:01.135Z",      "source": "sendgrid_inbound"    }  }'
{  "success": true,  "matchedCount": 1}