Open

Multiple webhook URLs + platform alert events

--- Today Spur sends every webhook event to a single callback URL, and we only expose two event types: Message Received and Message Status Update. Customers have to route everything through one endpoint, and they get no alert when Meta does things to their WABA (display name rejected, account flagged, template paused, CTWA lead submitted). Ask, two parts. 1. Multiple webhooks, each scoped to specific events. - Settings, Webhooks, New webhook, enter URL, tick the events you want, save. - A customer can register N webhooks, each listening to its own subset of events. - Public API to register, list, edit, delete webhooks programmatically. 2. Expose new event types beyond incoming + delivery status. Meta already fires these to our WABA, we just need to forward them. a) Phone number name update (Meta field: phone_number_name_update) Fires when display name is approved or rejected. Customers want to know immediately if their brand name gets rejected. json { "entry": [{ "id": "[REDACTED]", "time": 1778602217, "changes": [{ "value": { "display_phone_number": "[REDACTED]", "decision": "REJECTED", "requested_verified_name": "[REDACTED]", "rejection_reason": "BIZ_COMMERCE_VIOLATION_OTHER" }, "field": "phone_number_name_update" }] }], "object": "whatsapp_business_account" } b) Account update / violations (Meta field: account_update) Fires on spam violations, quality rating drops, account restrictions. Critical for customers to monitor. json { "entry": [{ "id": "[REDACTED]", "time": 1778216044, "changes": [{ "value": { "event": "ACCOUNT_VIOLATION", "violation_info": { "violation_type": "SPAM" } }, "field": "account_update" }] }], "object": "whatsapp_business_account" } c) CTWA automatic events (Meta field: automatic_events) Fires on CTWA ad lead events with ctwa_clid for downstream attribution. Customers running CTWA ads can pipe this into their CRM or CAPI optimizer. json { "object": "whatsapp_business_account", "entry": [{ "id": "[REDACTED]", "changes": [{ "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "[REDACTED]", "phone_number_id": "[REDACTED]" }, "automatic_events": [{ "id": "[REDACTED]", "event_name": "LeadSubmitted", "timestamp": 1777473615, "ctwa_clid": "[REDACTED]" }] }, "field": "automatic_events" }] }] } d) Template status update (Meta field: message_template_status_update) Fires when a template moves between APPROVED, PAUSED, REJECTED, PENDING. Customers want to know the moment a high-volume template gets paused so they can swap to a backup before broadcasts break.

Rohan Rajpal·6 days ago
Open

Broadcast sequences — schedule multiple templates in a single broadcast

Broadcast sequences — schedule multiple templates in a single broadcast Problem Right now, if a user wants to run a drip/sequence campaign (e.g., 3–5 follow-up templates to the same segment), they have to create a separate broadcast for each message and manually adjust the audience each time. It's repetitive, error-prone, and there's no clean way to target only users who received the previous message. What we want to build A "broadcast sequence" mode where the user can configure a series of templates in a single broadcast config: - Pick a segment (as usual) - Add multiple templates in order (2, 3, 5, however many) - Set a delay between each one (e.g., 2 days between message 1 and 2, 3 days between 2 and 3, etc.) - Hit schedule once — the system fires message 1 on day 0, message 2 after the configured delay, message 3 after the next delay, and so on Audience toggle per follow-up For every message after the first, there's a toggle that controls who receives it: - Only users where the previous message was delivered — tighter funnel, avoids spamming users who never got the first message anyway - Everyone in the original segment — ignores delivery status of the previous step, sends to the full original audience Why it matters - Replaces the current workaround of 3–5 separate broadcasts with manual audience juggling - Standard pattern for re-engagement, cart recovery follow-ups, launch sequences, educational drips, etc. - Gives users proper control over sequence targeting without needing custom segments for each step

Karan·30 days ago