Two-way & keywords
The inbound event
Section titled “The inbound event”When a reply arrives on a sandbox virtual number, Fabric emits a message.inbound
webhook event:
if (event.type === "message.inbound") { const { messageId, channel } = event.data; // InboundMessageWebhookData await handleReply(messageId, channel);}Verify the signature and dedupe on event.id exactly as you do for delivery events.
Keywords are handled for you
Section titled “Keywords are handled for you”STOP, START, and HELP are consent keywords, and Fabric applies them automatically:
STOPopts the recipient out. Subsequent promotional sends to that number are suppressed.STARTopts the recipient back in.HELPtriggers the help response.
You do not implement opt-out yourself — Fabric records it in the consent store so the send-path gate enforces it on your behalf. See compliance for how opt-out interacts with transactional vs promotional traffic.
Test it in sandbox
Section titled “Test it in sandbox”Send a sandbox message, then use the dashboard’s virtual phone to reply (including a STOP), and
watch the message.inbound event reach your webhook while the opt-out takes effect on the next
promotional send. This lets you build and verify your inbound handling before any live inbound route
exists.