Set up an endpoint
- Enter a public
https://endpoint URL. Private, loopback, and internal addresses are rejected when saved and before every delivery. - Select at least one event.
- Optionally enable Recipient details for client-facing events.
- Copy the signing secret immediately. It is displayed once; create a new endpoint if it is lost.
- Use Send test to fire a
pingevent and check the recorded delivery status.
Events
Payload and headers
Every delivery uses the same envelope:channels reports where NeuDocs delivered the client message. It is currently ["email"].
Recipient details
Recipient details are off by default. When enabled,request.sent, reminder.sent, and comment.replied add this object:
Verify the signature
Compute HMAC-SHA256 over the exact raw request body bytes using the endpoint secret. Do not parse and re-serialize the body before verification.Delivery semantics
- Delivery is best-effort, with no retries.
- Event ordering is not guaranteed. Make handlers idempotent and key work by
requestId. - A failed endpoint never blocks another endpoint or the underlying NeuDocs action.
- Return
2xxquickly and process slow work asynchronously.
Relay notifications to WhatsApp
NeuDocs does not connect to WhatsApp natively. Your firm supplies the relay through Zapier, Make, n8n, the WhatsApp Cloud API, Twilio, or another service. NeuDocs does not store client phone numbers, so your relay must look one up in your CRM usingrecipient.email. You also need your own WhatsApp Business setup, approved message templates when required, and documented recipient opt-in.
- Subscribe an endpoint to
request.sentandreminder.sent. - Enable Recipient details and copy the signing secret.
- Verify every signature.
- Look up the phone number in your CRM by recipient email.
- Send an approved template using the recipient name and outstanding item count.
portalUrl in a forwardable chat. If your phone records exist only in NeuDocs, register interest under Settings → Notifications → Delivery channels → WhatsApp; native delivery is not currently available.