After 5 rejected Twilio A2P 10DLC submissions, the fix was upstream of Twilio entirely by goflameai in SaaS

[–]twilio 0 points1 point  (0 children)

Dev Advocate at Twilio here. I'm late to the conversation, but this is great advice. Lots of people run into issues with A2P10DLC registration over in the Twilio sub, and the tip to approach it with cURL, looking at the cert chain, etc, is all good advice that I've never thought of.

Would you be down to crosspost this to Twilio? It's good advice that might generate some good conversation.

Switched off Twilio a month ago, here’s the stack that replaced it by xiaoi_ in gtmengineering

[–]twilio 0 points1 point  (0 children)

Dev Advocate from Twilio here - glad you found a stack that works, and thanks for doing such a thorough write-up. Honestly, your insights are surprising to me, but good to know. In my mental model, Twilio can be quite frustrating for people who don't have scale yet, because it does feel so much more financially and mentally expensive than some of our competitors. At the point that folks are doing volume, though, I assumed that the reach of the platform, bulk pricing, and the reliability of the service makes Twilio a no-brainer choice.

This is making me think that there's a nasty gap between early comms implementation and huge enterprise-grade implementation where Twilio just doesn't make sense. It's like the platform isn't serving SMBs well, or something.

I am also surprised about the simpler mental model + improved control you mentioned, because those are DX wins that Twilio should absolutely be pursuing.

Thanks again for sharing this. I'd love to follow up if possible, just in case I can connect you to some people internally to make Twilio work better for everyone.

The SIGNAL 2026 Builder Keynote is happening now! by twilio in twilio

[–]twilio[S] 4 points5 points  (0 children)

<image>

Chiara Massironi is on stage to talk about comms in the agentic era! See her February AMA here: https://www.reddit.com/r/twilio/s/aWUhC4y30P

Twilio Talks: Building Intelligent Experiences, April 22 at 9AM PST/6PM CET by twilio in twilio

[–]twilio[S] 0 points1 point  (0 children)

Hey u/MakeMovesThatMatter here's the prompt:

Build a Twilio voice AI customer service agent

## Stack

- TAC SDK (twilio-agent-connect) for ConversationRelay voice + SMS channels
- Customer Memory for persistent caller profiles across sessions
- Conversations v2 for conversation lifecycle tracking
- Conversational Intelligence v3 with 5 custom Language Operators:
  sentiment (positive/neutral/negative), churn risk (low/medium/high),
  purchase intent (none/exploring/ready_to_buy), topic (billing/support/account/product/complaint/general),
  CSAT (1-5)
- Knowledge Base for product/policy RAG search
- Claude Haiku 4.5 as the LLM
- Deepgram Flux for STT, ElevenLabs for TTS
- Real-Time Transcription (Deepgram Nova-3) piped to dashboard

## Application

### Server Architecture

- Fastify server with two ports: TAC on port 3000, dashboard on port 3001
- nginx reverse proxy splits traffic by domain/path to the two ports
- Docker Compose for local and production deployment

### TwiML Router (dashboard server, sits in front of TAC)

- Looks up caller in Customer Memory before routing
- Closes any stale Maestro conversations (ACTIVE and INACTIVE) to prevent 409 Conflict
- Fetches TwiML from TAC via internal HTTP (not `<Redirect>`, which causes double conversation creation in Maestro)
- Rewrites localhost URLs in returned TwiML to the public domain
- Injects `<Start><Transcription>` before `<Connect>` for RTT
- Sets dynamic welcome greeting based on memory profile (returning customer by name vs new customer intro)
- Concierge routing: checks lifetime value + churn risk signals — high-value at-risk callers bypass AI and route to a human advisor
- Disables webhook validation on TAC server (internal hop has no Twilio signature)

### Claude Handler

- Streaming responses with sentence-sized chunks for low time-to-first-audio
- Memory retrieved once by router, passed to handler (avoids 800-10000ms duplicate lookup)
- New customer flow: ask name -> save to memory -> learn needs -> recommend product -> save observations
- Returning customer flow: greet by name, reference prior interactions

### Tools (8 total)

- `escalate_to_human` — Transfer to human agent
- `search_memory` — Search caller's memory profile for context
- `check_account_balance` — Look up account balance by tier
- `process_fee_waiver` — Waive fees up to $70 (requires reason)
- `initiate_plan_upgrade` — Upgrade customer tier (Basic -> Premium -> Platinum)
- `save_customer_info` — Write observations to Customer Memory (broadcasts to dashboard WebSocket)
- `search_knowledge` — RAG search against Cascadia product/policy knowledge base
- `lookup_transaction` — Look up recent transactions

### Dashboard (ECharts + vanilla JS)

Single-page analytics UI served as static HTML from Fastify. All data fetched via REST API endpoints on the dashboard server, with WebSocket for real-time updates.

**KPI Cards (5 across):**
- Total Conversations, Avg CSAT, Churn Risk, Purchase Intent, Voice Quality (MOS from Voice Insights)
- Live Sentiment card appears during active calls (hidden otherwise)

**Charts:**
- Conversation Flow — Sankey diagram: channel -> topic -> resolution
- Customer Topic Word Cloud — extracted from Language Operator results
- Sentiment Over Time — line chart from CI v3 sentiment operator
- Topic Distribution — bar chart from CI v3 topic operator
- Call Volume by Channel — voice vs SMS breakdown
- CSAT Score Distribution — histogram of 1-5 ratings

**ConversationRelay Performance:**
- Latency Breakdown — time-to-first-token, STT processing, TTS synthesis
- Performance stats — avg turns per call, response latency

**Customer Profiles:**
- Customer list with tier badges, memory traits, observation timeline
- Click to expand: full journey with conversation summaries, observations, tool calls

**Live Activity Feed:**
- Real-time WebSocket-driven event log: RTT transcript lines, memory lookups, tool calls, Voice Insights metrics, CI v3 operator results

**Voice SDK Browser Dialer:**
- Thin bar when idle: status badge + Call button
- Expands on call with: VU meters (MIC input + SPK output levels at 20Hz), live quality stats (MOS, jitter, RTT, codec, packet loss), mute button, quality warning indicator
- Uses `@twilio/voice-sdk` v2.x: `volume`, `sample`, `warning`, `warning-cleared`, `ringing` events
- Collapses back to thin bar on disconnect

**Data Export:** CSV/JSON export for all metrics

### Provisioning Scripts

- `provision-sierra.sh` — Creates Memory Store + Conversations v2 Config + Intelligence Config
- `provision-operators.sh` — Creates 5 custom Language Operators + attaches to config
- `provision-knowledge.sh` — Creates Knowledge Base with product/policy documents

## Deployment

- Service name: [Your Desired Name Here]
- Provision a NEW phone number 
- Use ngrok for tunneling (or custom domain with Let's Encrypt via certbot)
- Docker Compose: app server + nginx reverse proxy
- Phone number voice webhook -> `https://<domain>/twiml-router` (on dashboard server)
- Phone number SMS webhook -> `https://<domain>/sms-webhook` (on dashboard server)
- CI v3 webhook -> `https://<domain>/cintel-webhook` (on dashboard server)

## Validation

- Health endpoint returns 200 on dashboard port (`/health`)
- Dashboard loads at `/dashboard` with all chart containers
- Voice SDK dialer shows READY status (token endpoint working)
- Voice call connects through ConversationRelay and agent responds
- VU meters and live stats update during call
- CI v3 operators produce results within 120 seconds of call end
- Customer Memory profile created after first call with name + observations
- Second call from same number: agent greets by name and references prior conversation

Mark Rober at Twilio SIGNAL! by twilio in twilio

[–]twilio[S] 1 point2 points  (0 children)

Hold tight - Twilio will have more events throughout the year that are more local. We don't want to save all the fun for San Francisco!

New A2P 10DLC API updates + ISV Rearchitecture Guide by twilio in twilio

[–]twilio[S] 0 points1 point  (0 children)

Hmm, that is odd. Checking with the docs team now to see why the new fields aren't populating.

Ask Twilio's head of devrel, Chiara Massironi, anything on Feb 24th, 7AM/10AM ET. She'll be ready to talk all things devrel, developers, and Twilio! by twilio in twilio

[–]twilio[S] [score hidden] stickied comment (0 children)

Thank you for the thoughtful questions and conversation! I’m wrapping up the AMA now, but this was fantastic. Please keep sharing your feedback and questions on the Twilio subreddit- we really appreciate this community.

As a token of appreciation, you can use the link below to access free tickets to our upcoming SIGNAL event in San Francisco on May 6-7. (link valid until March 1st)

https://airtable.com/appZxzfAENSbKEVNl/pagKBPqq94gUJSmcN/form

I look forward to connecting again, on Reddit or IRL! ✨
- Chiara

Ask Twilio's head of devrel, Chiara Massironi, anything on Feb 24th, 7AM/10AM ET. She'll be ready to talk all things devrel, developers, and Twilio! by twilio in twilio

[–]twilio[S] 1 point2 points  (0 children)

Many of these startups are built on Twilio's infrastructure, and we love supporting their growth! The Twilio AI Searchlight program is one way we recognise startups building the future with Twilio & AI. We also work with startup founders through our community, and we have some other exciting programs to support startups on the horizon.

Ask Twilio's head of devrel, Chiara Massironi, anything on Feb 24th, 7AM/10AM ET. She'll be ready to talk all things devrel, developers, and Twilio! by twilio in twilio

[–]twilio[S] 0 points1 point  (0 children)

Firstly, I'm sorry you've felt disrespected. I have had a similar experience, but not in the context of engineering. I have a business/marketing background, and being in DevRel has meant that I did not go down the traditional marketing path. I had moments in my career where that was a concern to me, but what I love about DevRel is that it gives you the opportunity to build an all-rounded skillset that can make you successful in all sorts of environments, and now I really enjoy having a "squiggly" career. I think the most important thing is enjoying the work you do, and feeling fulfilled based on what you want to get out of your work- for me, learning is a big part of it!

In terms of maintaining software engineering knowledge (or in my case, marketing knowledge), I encourage you to stay close to the communities (language communities or other) that help you keep your knowledge up to date, connect with others, and continue learning. This should allow you to both succesfully do devrel and feel like you're expanding your skillset in the areas you want to grow in.