1. Partner runs citizen UX on their stack (optional)
2. Partner POSTs to /api/whatsapp/send-message
3. CerebroNovus webhook receives citizen reply
4. Flow engine processes → webhook node POSTs to partner URL (signed)
5. Agent handoff in CerebroNovus inbox if neededVerify signature (Node.js)
import crypto from "crypto";
function verify(rawBody, signature, timestamp, secret) {
const expected = crypto
.createHmac("sha256", secret)
.update(`${timestamp}.${rawBody}`)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signature)
);
}Retry policy: implement idempotency on your side using conversationId + message id.