← Field notes

July 14, 2026 · Michael Rodriguez

One amber signal rail rising off a phone on a dark home desk and splitting into three glowing rails that each land on a separate destination node, like a switchboard delivering one message to the correct lane
Build in public

How Do You Make Sure a Voice Agent Sends Work to the Correct Destination?

You make sure a voice agent sends work to the correct destination by giving every destination an explicit address, verifying that address before the note is spoken, and confirming the note landed after it is sent. Routing decides which lane a note belongs in. Destination correctness is the separate promise that the lane the note reaches is the lane you meant. Here is how I made mine reliable on a dealership floor with no tech background, the address book, the bugs, and the fixes.


I sell cars for a living. Twenty years in automotive retail, no tech background, no computer science degree.

Last week I wrote about how a voice agent decides which lane a note belongs in. That post was about routing a voiced note to the right person automatically.

This one is the harder half.

Because deciding the right lane and actually delivering to it are two different promises.

You can pick the correct lane every single time and still send the work to the wrong place. The lane was renamed. The list got archived. The address behind it went stale and nobody noticed. The router did its job. The note still landed nowhere.

So here is the real question. Once your agent has decided a note is a parts note, how do you guarantee it reaches the actual parts destination and not a dead channel that used to be parts? That is destination correctness. This is how I made mine reliable, the address book, the bugs, and the fixes.

The short answer

You make sure a voice agent sends work to the correct destination by giving every destination an explicit address, verifying that address is real before any note is spoken, and confirming the note landed after it is sent. Routing decides which lane a note belongs in. Destination correctness is the separate promise that the lane the note reaches is the lane you meant. That means a small address book mapping each intent to one concrete destination, a startup check that fails loudly if any address is missing or stale, and a delivery confirmation that reads the note back out of its destination. A note is not delivered until you can see it sitting there.

Definition

Destination correctness:

the guarantee that the lane a voice agent delivers a note to is a real, current, reachable place and that the note actually arrives there and nowhere else, kept by verifying every destination address before use and confirming the note landed after sending, separate from the routing decision that only chooses which lane the note belongs in.

What does the correct destination actually mean for a voice agent?

It means the note reaches the exact place you meant, and you can prove it got there.

Routing is one promise. It says this note is a parts note. Destination correctness is the second promise. It says the parts note reached the real parts destination, the one that is live today, and it is sitting there right now.

Both promises have to be kept for the work to actually move.

Here is the trap. A router can be perfect and the delivery can still be wrong. The router labels the note a parts note. It hands it to the parts lane. But the address behind the parts lane points at a channel that got renamed three weeks ago, so the note goes into a channel nobody watches anymore. Routing succeeded. Delivery failed. The note is gone and everyone believes it was handled.

The correct destination is not a label. It is a live address that you verified points where you think it points.

That is the whole difference between a note that reaches the parts counter and a note that reaches a channel that used to be the parts counter.

A dark charcoal desk at dawn with an amber routing diagram in light, one input node addressed to a single bright destination node while two dim destination nodes sit unselected, showing one note delivered to exactly one correct place
A dark charcoal desk at dawn with an amber routing diagram in light, one input node addressed to a single bright destination node while two dim destination nodes sit unselected, showing one note delivered to exactly one correct place

What are the pieces that guarantee correct delivery?

Three pieces sit on top of the router. Each closes one way a note reaches the wrong place.

Address book maps each intent to one concrete destination
Startup check verifies every address is live before use
Delivery confirmation reads the note back after sending
The three guardrails of destination correctness. They sit on top of the routing decision, not inside it. The router picks the lane. These three make sure the lane is real and the note arrives.

The address book. Every intent maps to exactly one concrete destination. Not a name a human reads. A real address the machine uses, like a channel id or a list id. The lane parts is a friendly label. The address behind it is the id the note is actually sent to. Keep the two separate, because labels change and ids are what delivery runs on.

The startup check. Before the agent takes a single note, it walks the whole address book and asks each destination if it is real and reachable. A missing address, a stale id, an expired token, all of it fails loudly at startup instead of quietly at delivery. You want to find out an address died when you start the agent, not three days of lost notes later.

The delivery confirmation. After the agent sends a note, it reads that note back out of the destination and matches it on an id it controls. Found means delivered. Not found means undelivered, and the note gets surfaced, not silently dropped. Sending is a request. Confirmation is the receipt.

How do you make destination correctness reliable, step by step?

Here is the order I built mine in. Each step closes one failure before you trust the next.

Step one. Write the address book as data, not code. List every intent and the one concrete destination id it maps to. Keep it in one place you can read at a glance. Parts goes to this channel id. Follow-up goes to this list id. Review goes to this id. When the address book is a plain table you own, a wrong destination is one line you can see, not a value buried in logic.

Step two. Verify every address at startup. Before the agent accepts any note, loop the address book and check each destination resolves to something live. If one does not, the agent refuses to start and tells you which address is dead. A stale destination should stop the agent, not misroute a note. Loud at boot beats silent at delivery.

Step three. Send with an id you control. When the agent delivers a note, attach a reference id you generated, not one the destination hands back. That id is how you will find the note again. Without your own id, confirmation is guessing which record is yours.

Step four. Read the note back before you report success. Right after sending, query the destination for your reference id. If the note is there, delivery is confirmed and you tell the operator it landed. If it is not there, the note is undelivered, and you surface it for a retry or a human. Never report a success you did not verify by reading it back.

Step five. Alert on a changed address instead of guessing around it. When the startup check or a confirmation finds a destination that moved, do not have the agent quietly pick a fallback. Have it stop and tell you the address changed. A voice agent guessing a new destination on its own is exactly how work reaches the wrong place with confidence.

Verify the address, confirm the landing

Routing decides the lane. Destination correctness proves the lane is real and the note arrived. Verify every address before the agent runs, send with an id you own, and read the note back before you call it delivered. Do those and a correct routing decision becomes a correct delivery.

A dark switchboard made of amber light, one input rail addressed to a single verified destination lane glowing bright with a confirmation check beneath it, while a renamed dead lane sits dark and flagged as changed so the note is held instead of misdelivered
A dark switchboard made of amber light, one input rail addressed to a single verified destination lane glowing bright with a confirmation check beneath it, while a renamed dead lane sits dark and flagged as changed so the note is held instead of misdelivered

What breaks when you deliver to a destination, and how do you fix it?

Three failures, in the order they hit me. This is the part the demos skip.

One. The renamed channel. I mapped a parts intent to a channel by name, someone renamed the channel, and every parts note after that went into a channel nobody watched. The routing was right. The address was stale. The fix is to map to the destination id, not the human name, and to verify that id resolves at startup. Names drift. Ids are stable, and a startup check catches an id that stopped resolving.

Two. The confident send with no receipt. The agent called the send, got no error back, and reported the note delivered. The delivery had actually failed downstream. No error is not the same as delivered. The fix is the read-back from step four. The agent does not trust the send call. It queries the destination for the reference id it attached and only reports success when the note reads back.

Three. The silent fallback to the wrong place. Early on, when a destination lookup failed, my code fell back to a default lane so nothing would crash. That felt safe. It was the worst one, because now wrong-destination notes piled up in a default nobody expected and never errored. The fix is step five. A missing or changed address stops the agent and alerts you. It does not quietly reroute work to a place you did not choose.

The failure that kills trust

A silent misdelivery is worse than a crash. A crash tells you to look. A silent misdelivery lets you believe work reached the right destination when it reached a dead channel or a wrong default. Verify the address and confirm the landing every time, or the agent is just hope pointed at an id you never checked.

Route to the id, not the name. Verify every address before you run. And never report delivered until you have read the note back out of the place you sent it.

How do you keep this small enough to ship this week?

You harden one destination first. Not every lane you might ever have. One.

Pick the destination that matters most, the one where a lost note actually costs you. Give it a concrete id in your address book. Verify that id at startup. Send to it with a reference id you own. Read the note back before you call it delivered. Alert if the address ever stops resolving.

That is the whole v1 of destination correctness, and it is enough to trust one lane completely.

  • Map the intent to a concrete destination id, never a human name.
  • Verify the id resolves at startup, and refuse to run if it does not.
  • Send with a reference id you generated yourself.
  • Read the note back out of the destination and match on your reference id.
  • Alert on a changed or missing address instead of falling back silently.

Run that for a week on one lane before you harden a second. A week of real notes tells you whether your confirmation actually catches a failed send, which it will, the first time a token quietly expires.

Correct delivery is not smarter routing. It is a verified address plus a confirmed landing. Map to ids, check them at startup, send with your own reference id, and read the note back before you report success. Do those and a routed note reaches the destination you meant, every time.

An amber note marker landing firmly inside the correct destination node with a confirmation glow beneath it, verified and delivered, while a faint renamed channel sits dark and empty in the background having been caught and skipped
An amber note marker landing firmly inside the correct destination node with a confirmation glow beneath it, verified and delivered, while a faint renamed channel sits dark and empty in the background having been caught and skipped

Only after that week do you harden the second destination. The address book and the confirmation you built first make each new one cheap, because adding a destination is a new id in the book and the same verify-and-confirm you already trust. That is the compounding that lets an operator stack grow. Five rivers, twenty-two agents, all built the same way, one verified destination at a time.

The reason to verify the address and confirm the landing, if you take nothing else from this build log, is that a note reaching the wrong destination is not a small bug. It is work lost while everyone believes it was delivered. The whole point of a voice agent is that a spoken note reaches the place that can act on it. Destination correctness is that promise, kept and proven.

When a note has to travel between tools to reach its destination, the delivery leans on the Model Context Protocol, the open standard for how an AI reaches a tool, and the id you send with and read back rides on that same layer. If you want a channel-id destination worked example, the Slack conversations API reference shows why you map to the stable id and not the display name, because the name can change while the id does not.

The community where operators ship these in public, bugs and all, is the free build log at skool.com/agent-empire-4291. Come make your first delivery land where you meant it. Build log, not a landing page.

While I sell cars for a living.

Michael

FAQ

How do you make sure a voice agent sends work to the correct destination?

You give every destination an explicit address, verify that address is real before the note is spoken, and confirm the note landed after it is sent. Routing chooses which lane the note belongs in based on its intent. Destination correctness is the separate step that guarantees the lane the note actually reaches is the lane you meant. In practice that means a small address book that maps each intent to one concrete destination like a channel id or a list id, a startup check that fails loudly if any address is missing or stale, and a delivery confirmation that reads the note back out of its destination after sending. A note is not delivered to the correct destination until you can see it sitting there, because a lane picked correctly and a note delivered correctly are two different promises and both have to be kept.

What is the difference between routing and destination correctness?

Routing is the decision. Destination correctness is the delivery. Routing reads the intent of a note and decides which lane it belongs in, so a parts question is labeled a parts note. Destination correctness is the guarantee that the parts lane the note gets sent to is a real, current, reachable place and that the note arrives there and nowhere else. You can route perfectly and still send work to the wrong destination if the address behind the lane is stale, the channel was renamed, or the delivery silently failed. Routing without verified addresses and delivery confirmation is a decision nobody checked.

Why does a voice agent send work to the wrong destination?

Almost always because an address changed underneath it and nothing caught the change. A channel gets renamed, a list gets archived, an integration token expires, or someone edits a destination id by hand and fat-fingers it. The routing logic still returns the right lane, but the address that lane points to no longer reaches the right place, so the note gets delivered somewhere wrong or nowhere at all. The fix is not smarter routing. It is treating every destination address as something you verify at startup and confirm at delivery, so a changed address fails loudly instead of quietly misdelivering work.

How do you confirm a voice agent delivered a note to the right place?

You read the note back out of its destination after you send it, and you fail the whole operation if you cannot find it. Sending is a request, not a receipt. The reliable pattern is to send the note, then immediately query the destination for the record you just created and match it on an id you control. If the read returns the note, delivery is confirmed and you tell the operator. If the read comes back empty, you treat the note as undelivered and surface it, instead of reporting a success you never verified. This turns a silent misdelivery into a caught error you can act on the same day.

Michael Rodriguez

Michael Rodriguez has spent 20 years on a dealership floor. With no tech background, he built and runs 22 production AI agents across four businesses on less than $50 a month, in evenings and lunch breaks. Agent Empire is where he ships it in public.

Building agents around a day job? Agent Empire is where operators ship it in public, together. Come build with us.