She Moved in June. Why Did Your Scheduled Agent Ship Her Order to the Old Address?
She Moved in June. Why Did Your Scheduled Agent Ship Her Order to the Old Address? Quick answer: A scheduled agent keeps shipping to a customer's old address because the address it reads was frozen the first time it ever saw that customer, and the move was recorded somewhere the agent never looks. The fix is one current address per customer, with an effective date, that every run looks up fresh before anything ships. A customer moves in June. She updates her address in a support chat, and the
She Moved in June. Why Did Your Scheduled Agent Ship Her Order to the Old Address?
Quick answer: A scheduled agent keeps shipping to a customer's old address because the address it reads was frozen the first time it ever saw that customer, and the move was recorded somewhere the agent never looks. The fix is one current address per customer, with an effective date, that every run looks up fresh before anything ships.
A customer moves in June. She updates her address in a support chat, and the new address lands in the CRM. In August, your scheduled agent processes her repeat order and sends the parcel to the old address. The parcel comes back, or worse, it gets delivered to a stranger's door. Nobody on your team typed the old address. The agent did exactly what it was built to do. It just read the wrong copy.
The address your agent trusts is the oldest one it has
A scheduled agent rarely asks "where does this customer live now?" It asks something narrower: "what address is on the list I was given?" That list usually comes from the first order, the original signup form, or a spreadsheet export that was made once and never refreshed. The first address a customer ever gave you has a habit of becoming permanent, because it sits in the place the workflow reads first.
The move, meanwhile, gets recorded in a different place. A support agent updates the CRM. The customer changes the address at checkout on your website, but the scheduled workflow reads from the fulfillment sheet. A chat assistant notes the new address in a conversation, and no run ever writes that conversation back into the order record. Each system holds a different address, and the agent picks the one it was built to read. That is usually the oldest one.
Timing makes it worse. A run that pulls its address list on Monday and ships on Wednesday is already working from old information if the customer moved on Tuesday. A run that never re-checks an address at all works from the original address forever. The customer did everything right. She told you she moved. She just told a part of your system that the shipping run does not listen to.
An address is not a label, it is a record with a date
Most address failures come down to shape. An address stored as a plain text field with no date and no source cannot answer the only question that matters: is this current? When a customer has two addresses on file, one from 2023 and one from June, a text field gives the agent no way to choose. It takes whichever one it finds first, and "first" usually means oldest.
The fix is to treat an address as a record, not a label. One current address per customer, with three extra fields attached: the date it became effective, where it came from (a checkout update, a support chat, a form the customer filled in), and the previous address kept as history rather than deleted. When a new address arrives, it replaces the current one and the old one moves to history. Nothing gets overwritten silently, and nothing competes with the current record.
That history matters. A returned parcel, a delivery dispute, or a refund question will eventually ask where an order was sent and why. If the old address was deleted, that question has no answer. If it sits in history with a date range, the answer is right there: this was the current address until June, and the new one took over after that.
The run-start check that stops the wrong shipment
A current-address record only helps if the agent checks it before shipping. Add one step at the start of every scheduled run that ships anything: look up the customer, confirm the current address, and compare it with the address on the order. The check is short. Does the order's address match the current address on file? Is there a newer address with an effective date after the order was placed? Did the customer mention a move in any conversation since the last run?
If everything matches, ship. If anything disagrees, do not ship to the disputed address. Pause that order, record the mismatch and the two addresses involved, and surface it to a human. A paused order costs a short delay. A parcel sent to the wrong address costs the product, the reshipment, the support conversation, and sometimes a stranger holding a customer's order. For anything that leaves your building, pausing on a mismatch is the correct default.
This check also catches the quieter version of the same failure: the customer who never formally moved, but whose delivery instructions changed. A gate code, a "leave with the neighbour" note, a building entrance that changed after a renovation. Those details live in conversations, not in address fields, and a run that only reads fields will miss every one of them.
Where Vilix AI fits
This is the gap Vilix AI is built to close. Vilix AI is a cloud-hosted memory layer, so there is no infrastructure to set up and nothing to install. A scheduled agent connects to the same Vilix AI account over MCP as the rest of your tools, and every run reads and writes the same memory.
That shared memory is what makes an address change survive: a move mentioned in a support chat, captured once, is available to the next shipping run, to a different workflow, and to an assistant on another device, all reading from the same account. Vilix AI stores full conversation history, not just extracted facts, so the next run can revisit what the customer actually said about the move, including the date it took effect and any delivery notes that came with it.
The setup stays simple: a free plan forever, a 7-day Pro trial with no credit card, and data that stays portable, with export or delete anytime.
The test for your next run
Before your scheduled agent ships its next batch, ask one question: if a customer moved since the last run, would this run know, and would it ship to the new address?
If the answer is no, the fix is not a better address form. The form already captured the move. The fix is an address memory: one current address with a date, looked up at the start of every run, with any mismatch paused instead of shipped. Customers do not expect your agent to guess where they live. They expect it to remember what they already told it.
Free forever, no credit card.