Send a survey question

Mint (or reuse) a candidate’s survey placement and send the next question over WhatsApp.

POST/api/v1/candidates/{id}/churnguard/send#

Mint (or reuse) this candidate’s survey placement and send the next question over WhatsApp.

Headers

X-Api-Keyonb_live_<key_id>_<secret>required
Your issued Partner API key — see Authentication.

Status codes

2012xx
A new question was sent.
2002xx
Already sent this round, or the send itself was refused (data.delivery: "failed", data.refusal names the reason).
4014xx
Missing, malformed, unknown or revoked key. Every authentication failure looks the same — see Authentication.
4034xx
Your account’s plan does not include ChurnGuard.
ChurnGuard is not included in your plan.
4044xx
Unknown, cross-tenant, or (a candidate id) sandbox-hidden. One outcome, never a 403.
Not found
4294xx
Per-key or per-account rate limit exceeded. Retry after the Retry-After header.
Too many requests — please try again shortly.
4094xx
A refusal reason from a closed vocabulary — e.g. survey_complete, engine_active, no_question_set. Branch on the exact string; it is a published, stable set of codes.
5035xx
The compliance-conversation read failed — retry.
mirror_unreadable
5005xx
The send itself, or an internal read, failed — retry.
This resource is temporarily unavailable. Try again shortly.round_unavailable

This sends a real WhatsApp message

Calling this endpoint messages the candidate. It is idempotent per round — a repeat call once a question has already gone out returns already_sent, never a duplicate send.

cURL
curl -X POST \
"https://rca-onboardly.com/api/v1/candidates/<candidate id>/churnguard/send" \
-H "X-Api-Key: $ONB_KEY"
201 · Sent
{
"delivery": "sent",
"roundNo": 1,
"placementId": "7c4e2a1b-6f9d-4b3e-8a2c-1d5e9f4a3b60"
}
200 · Already sent this round
{
"delivery": "already_sent",
"roundNo": 1
}