for organizations
Keep Glific. Change the channel.
If you run programs over WhatsApp through Glific, you already know the shape of the problem: per-conversation fees, template approvals, policy changes you don’t control, and a channel you can never own. Xoyo’s bridge plugs into Glific exactly where a WhatsApp provider does, so your flows keep running and your beneficiaries move to an app that carries your name.
What changes for you, and what doesn’t
Doesn’t change
Your Glific flows, templates, contact groups and reports. Glific talks to the Xoyo bridge through the same provider contract it uses for Gupshup: send a message, send a template, discover templates, receive events by webhook.
Changes
The app on the beneficiary’s phone is yours, not Meta’s. No per-message platform fee. Data on servers you choose. Interactive messages, reminders and media that don’t depend on a third party’s policy calendar.
What the bridge does
Every item below is built, tested, and covered by a live smoke run that exercises the bridge end to end on every release. Task ids are from the bridge backlog.
Send and template send
POST /v1/msg and POST /v1/template/msg in the Gupshup v2 envelope Glific already speaks. Text, media, location and interactive types.
Template discovery and submission
GET /v1/templates for Glific’s template poll, and a submit-for-approval endpoint so your template library lives in one place.
Signed webhooks
Inbound messages and delivery status reach Glific as webhooks signed with a per-organization HMAC-SHA256 secret and a five-minute replay window.
Session window and consent
The 24-hour session window is enforced bridge-side, templates outside it, and every bridged room carries a consent record the beneficiary gave once, at signup.
Interactive messages
Quick replies and lists render natively in the Xoyo apps. When a device can’t render a type, the bridge degrades it to plain text with the options spelled out, never a silent drop.
Accept-and-pace delivery
Per-organization rate limits that queue and pace rather than reject. Your bulk sends succeed on a schedule you can see in the health endpoint.
Identity by phone
Contacts are matched on the verified E.164 phone number, the same key Glific uses, so your existing contact records line up without migration.
Encryption that ends at the bridge, visibly
For a bridged room, encryption terminates at the bridge so your organization can read and reply. The app marks that room in amber. Nobody is told a bridged chat is private when it isn’t.
Health you can monitor
GET /v1/health reports pacing position, webhook liveness and the bridge bot’s real cross-signing trust status, computed live.
The contract, in one screen
A Gupshup-v2-shaped HTTP API in, HMAC-signed webhooks out. If your integration already speaks to a WhatsApp BSP, it speaks to Xoyo.
# Glific → Xoyo: send a message POST https://bridge.your-brand.org/v1/msg Authorization: Bearer <org api key> Content-Type: application/json { "channel": "xoyo", "source": "919876543210", "destination": "919812345678", "message": { "type": "quick_reply", "content": { "type": "text", "text": "Can you make Monday 9am?" }, "options": [ { "type": "text", "title": "Yes" }, { "type": "text", "title": "Reschedule" } ] } } # → 200 { "status": "submitted", "messageId": "…" }
# Xoyo → Glific: inbound message, signed POST https://glific.your-org.org/gupshup X-Xoyo-Timestamp: 1756900000 X-Xoyo-Signature: v0=3f1c… { "app": "your-org", "type": "message", "payload": { "id": "285ae1a6-…", "source": "919812345678", "type": "text", "payload": { "text": "Yes, Monday works." }, "sender": { "phone": "919812345678", "name": "Amara" } } } # verify: HMAC-SHA256(secret, ts:body) == signature
Shapes are illustrative; the binding contract is the bridge’s architecture decision record, shared with the Glific-side provider. Signature scheme: Slack v0 style, per-organization secret, five-minute window.
How a pilot runs
Scope
One program, one flow, a handful of field staff. We stand up a Xoyo server for you or on your infrastructure, and a Glific organization pointed at the bridge.
Brand and install
Your name, icon and colors go into the brand config. Field staff install the app from a test link and sign in with their phone numbers.
Run the flow
Your existing Glific flow sends templates, reminders and quick replies over Xoyo. We watch the bridge health endpoint and the smoke evidence with you.
Decide
You have real delivery numbers, real costs and real feedback. Continue on your own servers, have us host, or stop. The code is Apache-2.0 either way.
Said plainly: what the bridge can’t do yet
Inbound interactive replies — a beneficiary tapping a quick-reply button in the Xoyo app is not yet mapped back to Glific as a button reply; the text of the choice arrives instead. This is tracked as F-148 and is in the next build queue.
Other integrators — the bridge is verified against Glific. Opening it as a general multi-integrator API is a proposed architecture decision, not yet accepted.
Production push and mobile encryption — see the roadmap; both are next-tier work with named tasks.
Talk to us about your program.
Tell us which flows you run, how many contacts you reach, and where your data needs to live. We’ll come back with an honest answer and a pilot plan.