📌 Same goal, opposite method
This builds the same artefact as the Claude Code walkthrough covered previously — an AI agent that answers a real phone number and books appointments — by the opposite route.
| Four-vendor build (Claude Code) | This build (Telnyx console) | |
|---|---|---|
| Vendors | 5 — Telnyx, LiveKit, Gladia, ElevenLabs, Anthropic | 1 |
| Build interface | A spoken paragraph to a coding agent | A web console |
| Code written | All of it, by the agent | One embed tag, copy-pasted |
| Model | Claude Haiku 4.5 (agent's own pick) | Kimi K2 (human's pick) |
| Knowledge base | Not attempted | Attempted — and failed on camera |
| Sponsorship | Gladia affiliate link | Telnyx sponsored the video |
The interesting result is that the hard part turned out to be neither the plumbing nor the console. It was grounding, and both builds hit it.
utm_medium=sponsored URL. That does not make the demonstration false — everything shown was verified for this article — but it explains why no alternative is compared and why every rough edge passes without comment.🎛️ Every setting, one by one 1:58
The whole agent is assembled from console fields. Listed here in the order he sets them, because the list is the architecture — every one of these was a config file or an API call in the other build.
| Setting | What it controls | What he chose |
|---|---|---|
| Agent name | Identifier | NN Code support agent |
| Template | Starting prompt — healthcare, sales, lead screener, B2B demo qualification, customer service | Blank, then pasted his own |
| Model | The reasoning engine | Kimi K2 — see §2 |
| Greeting mode | Who speaks first — assistant, model-generated, or wait for user | Assistant speaks first |
| Greeting text | The opening line | "Hi, I'm from NN Code. How can I help you today?" |
| Instructions | System prompt, with template variables | Persona "Nova", 2–3 sentence limit, ask follow-ups |
| Tools | Hang up, webhook, transfer, handoff, SMS, email | Ticket creation, scheduling |
| Knowledge base | Uploaded files or a URL | An FAQ .txt — see §4 |
| Voice | Language, gender, TTS provider and model | Default |
| Speaking plan | Wait timings, interruption handling | Default |
| Phone number | Search, add to cart, assign to the agent | Purchased in-console |
| Widget | Embed snippet for a website | Copy-pasted into a landing page |
That is the console and the coding-agent path converging on the same surface — which is exactly what §8 turns out to be about.
🧠 The model choice 2:18
Two seconds of thought is not deep evaluation. But it is a decision that was made rather than inherited, and on a component that dominates the latency budget of a phone call, that difference matters more than it looks.
🔌 Tools and integrations 4:16
| Tool type | What it does |
|---|---|
| Hang up | Ends the call — a tool, not a special case |
| Webhook | The general escape hatch to your own systems |
| Transfer | Route the call to another number |
| Handoff / invite | Bring in another agent or participant |
| Send SMS | Text the caller mid-call |
| Send email | Notify a human |
Named integrations shown in the console: GitHub, ClickUp, Stripe, Notion, Microsoft Teams, ServiceNow, plus calendar scheduling.
Telnyx's answer is to build the relationships once and sell them as checkboxes. ServiceNow ticket creation from a phone call is the sort of integration that consumes weeks of an agency's time, and it is a dropdown here.
The moat argument still holds for the long tail — the twenty-year-old CRM with no public API — but the head of the distribution is being commoditised in exactly this way, and quickly.
📚 The knowledge base fails 11:53
He uploads an FAQ text file — company information, opening hours, pricing, timelines, what NN Code does — connects it, and later tests the widget on his landing page.
Caller: "What information do you have about NN Code?"
Agent: "Let me look that up for you… I don't have specific information about NN Code in our system. Could you clarify what you're looking for? Is it a product, a project, or something else?"
The knowledge base is an FAQ about NN Code. The first question asked of it is about NN Code. It fails.
So the data was there and the retrieval worked for one phrasing and not the other. That is the characteristic failure of embedding-based lookup: a bare entity name is a weak query. "What do you know about X" carries almost no semantic signal beyond X itself; "help me with AI integrations" matches a whole paragraph of the source document.
Note also the agent's earlier stumble at 10:11, cut short in the recording: "I wasn't able to pull up the…" — the same retrieval path failing mid-sentence during the ticket flow.
A viewer following along will connect a knowledge base, see it work in testing on a well-phrased question, and ship an agent that denies knowing the company it represents when a customer asks the most natural opening question there is.
He also flags — and this is to his credit — "I forgot to hit save" on the knowledge base at 8:51. Whether the widget was talking to a saved version is not established on camera.
🔀 Versioning — the best feature 8:55
A prompt is a deployed artefact. Changing it changes what customers hear, and there is no compiler to catch a regression. Versioning plus promotion gives you the two things that make that survivable: a rollback path and a staging concept.
In the four-vendor Claude Code build there is no equivalent. The prompt is whatever the agent last wrote into a file. Rolling back means asking it to change something back — an operation with no guarantee of returning to a known state.
This is the strongest argument in the video for the console approach, and it goes by in a sentence between two screenshots.
📞 Two calls, read closely 9:22
Call one — in-console test
Handles a support-ticket request and an appointment request in the same conversation, correctly collecting name and issue description before acting. Then, mid-flow: "I wasn't able to pull up the…" — and the recording moves on.
Call two — a real phone call 13:36
The distance between "the agent collected the booking correctly" and "the booking exists in your calendar" is the entire integration problem, and it is not crossed here.
💬 The honest bit about chatbots 12:21
It is also the only ethical guidance in either voice-agent video, and it arrives in the one that had the most commercial reason to skip it. Worth noting when the same video is criticised in §4 — the criticism is about what goes unexamined, not about the presenter's candour.
transfer being one of the tools listed in §3. The right principle, unwired.🧰 The 238 skills nobody used 3:00
The description links two repositories the video mentions only in passing. Both are real, and one of them reframes the whole "no-code versus coding agent" question.
| Repository | Stars | Licence | Contents |
|---|---|---|---|
team-telnyx/telnyx-code-examples | 149 | MIT | 510 top-level directories — the description says "100+" |
team-telnyx/ai | 201 | MIT | Plugin marketplace v0.4.0 |
activate-sim-card- exists in C#, Go, Java, Node, PHP, Python and Ruby; alongside abandoned-cart-recovery-python, after-hours-nurse-triage-python, ai-after-hours-emergency-triage-python./plugin marketplace add team-telnyx/ai
The marketplace manifest confirms modular plugins — telnyx-whatsapp, telnyx-voice and others — with providers for Claude Code, Cursor and Gemini CLI, plus a .windsurf directory and an AGENTS.md.The video links it and never opens it. That is the most significant omission here, and it is the one that connects to everything else on this site: vendors are starting to distribute capability as agent skills rather than as documentation or as a UI.
⚖️ One vendor vs four
| Dimension | Four vendors, coding agent | One vendor, console |
|---|---|---|
| Accounts & keys | 5 accounts, 5+ keys | 1 account |
| Failure domains | 5 independent | 1 — but total |
| Bills | 5, different units | 1 |
| Component choice | Best-of-breed per layer | Whatever the vendor offers |
| Prompt versioning | None | Versions + promote to main |
| Self-hosting | LiveKit is Apache-2.0 | Not possible |
| Portability | Code you own, vendors swappable | Console config, no export shown |
| Time to working demo | ~10 min + 1–2 days verification | ~15 min |
| Who chose the model | The builder agent | The human |
| Knowledge grounding | Not attempted | Attempted, failed on camera |
Both builds produced a working agent in about a quarter of an hour. Neither addressed retry behaviour, evaluation, disclosure-in-practice, or what the caller hears when a tool call fails. The one build that attempted grounding failed it on camera and did not notice.
Collapsing five vendors into one removes five sets of credentials and five status pages. It does not remove the thing that actually determines whether the agent is usable — which is whether it reliably knows what it is supposed to know, and what it does when it does not.
🏦 Reading this from a bank
| Property | Implication in a regulated setting |
|---|---|
| Single vendor, single DPA | One processor agreement instead of five. Materially simpler procurement |
| Prompt versioning with promote-to-main | Change control for a customer-facing artefact. The one governance primitive present in either build |
| No self-hosting path | Voice, transcripts and knowledge base all sit with the provider. Voice is biometric data in most frameworks |
| Knowledge base failed on the primary question | An agent that denies knowing its own institution is a customer-trust incident, not a bug |
| Retrieval works for some phrasings, not others | Needs a phrasing-variation test set before launch. Testing by calling and listening will not find this |
| Booking saved to a "demo schedule" | The integration is the project. Collecting a booking correctly is the easy half |
| ServiceNow, Teams, Stripe as checkboxes | Where enterprise integration effort actually goes — if they work as advertised, which was not shown |
| Disclose-it-is-AI advice given, not implemented | In several jurisdictions disclosure is becoming a requirement, not a courtesy |
| No human-transfer path demonstrated | The transfer tool exists and is unwired. For regulated support, an escape hatch is mandatory |
| Vendor ships 238 agent skills | The emerging distribution model: capability delivered to your coding agent, not to your developers |
That is a third answer to "how do you build this", distinct from both videos: not a console, and not a human describing the topology, but the vendor's knowledge shipped directly into the builder. If that pattern generalises, the interesting question stops being which stack you assemble and becomes which vendors have published skills for the thing you are trying to do.
🔍 Claims checked
| Claim | Result |
|---|---|
| Telnyx console builds a full voice agent without code | Demonstrated end to end; only the widget embed is code |
| "100+ production-ready examples" | Understated — telnyx-code-examples has 510 top-level directories, MIT, pushed today |
| A Claude Code plugin exists | team-telnyx/ai, MIT, 201 ⭐, .claude-plugin/marketplace.json v0.4.0 |
| Plugin scope | README: 238 Agent Skills + MCP access; Claude Code, Cursor, Gemini CLI, Windsurf |
| Console settings match the API | Consistent with the published dev docs and the plugin's existence |
| Kimi K2 is "cheap and very good" | Asserted, not shown. No latency or cost figure given |
| Integrations: GitHub, ClickUp, Stripe, Notion, Teams, ServiceNow | Shown in the console menu; none demonstrated working |
| Knowledge base answers questions about the company | Failed on camera — "I don't have specific information about NN Code in our system" |
| …but works for other phrasings | Yes — the next question retrieved the same document correctly. Classic weak-query retrieval failure |
| Earlier retrieval stumble | "I wasn't able to pull up the…" at 10:11, cut short, uncommented |
| "I forgot to hit save" | His own words at 8:51. Whether the widget tested a saved version is not established |
| Agent versioning with promote-to-main | Real and the most production-relevant feature shown |
| Appointment booking works | Flow is excellent, including the read-back summary — but "saved in the demo schedule", not a calendar |
| "Make it obvious this is AI, offer a human" | Correct advice, not implemented. The agent never identifies as AI; no transfer demonstrated |
| Video is sponsored by Telnyx | Disclosed — utm_medium=sponsored in the first description link |
.claude-plugin/marketplace.json and the team-telnyx/ai README. Nothing was built — no Telnyx account was created and no number purchased — so console behaviour is reported as shown on screen. Comparisons are against the four-vendor Claude Code build covered separately on this site. Verified 5 August 2026.💡 Key takeaways
- Same agent, opposite method: one vendor and a console instead of five vendors and a coding agent. Comparable build time, comparable demo — the difference is where the complexity sits.
- The knowledge base failed the most obvious question. Asked what it knew about the company it represents, the agent said it had no information — then answered correctly when the same content was asked for differently.
- That failure is diagnostic, not incidental. A bare entity name is a weak retrieval query. "Tell me about X" carries almost no signal; "help me with AI integrations" matches a paragraph.
- The video does not notice. It moves straight from the failed answer to praising the widget — which is how a viewer ships an agent that denies knowing its own company.
- Agent versioning with promote-to-main is the best feature in either build, and gets eleven seconds. A prompt is a deployed artefact; rollback and staging are what make changing it survivable.
- The four-vendor build has no equivalent. Its prompt is whatever the coding agent last wrote to a file, with no known-good state to return to.
- A human picked the model here, in two seconds, for a stated reason. Shallow — but a decision made rather than inherited from the builder's own vendor preference.
- The booking flow's read-back summary is the behaviour worth copying: restating project, day and time catches transcription errors before they become missed meetings.
- But it saved to a "demo schedule", not a calendar. Collecting a booking correctly is the easy half; the integration is the project.
- Enterprise integrations are becoming checkboxes. ServiceNow, Teams, Stripe and Notion in a dropdown is precisely the agency work the other video called a moat — commoditised at the head of the distribution.
- "Make it obvious this is AI and offer a human" is the only ethical guidance in either video — unprompted, in the sponsored one. And unimplemented: the agent never says it is AI and no transfer is shown.
- The biggest omission is in the description, not the video: Telnyx ships 238 agent skills installable into Claude Code with one command. Vendors are starting to distribute capability as skills rather than as docs or a UI.
🔗 Resources & links
- How To Build A Phone AI Voice Agent with TelnyxSource video — Nicolai Nielsen, 15:55, 23 June 2026. Sponsored by Telnyx
- team-telnyx/ai201 ⭐, MIT. 238 Agent Skills + MCP for Claude Code, Cursor and Gemini CLI — the most interesting link in the description
- team-telnyx/telnyx-code-examples149 ⭐, MIT. 510 directories of runnable examples across seven languages
- The plugin marketplace manifestv0.4.0 — modular plugins for WhatsApp, Voice, SMS, Email, TTS, STT, Verify, Numbers, WebRTC
- Telnyx AI Assistants documentationThe API surface behind every console field in §1
- TelnyxThe platform, and the sponsor of the source video