AI voice agent for quote follow-up calls in NetSuite
Most quotes that go cold never get a second look. A rep sends an Estimate, the customer doesn't reply, and a week later the rep is three deals further down the pipeline. The quote sits open in NetSuite, technically still "in progress," but nobody's actually working it.
I built an agent that works it.
How it works
A scheduled n8n workflow queries NetSuite every couple of days for open Estimates with a phone number on file, grouping by customer so someone with three open quotes gets one call, not three. For each customer, Retell AI places an outbound call. The agent references the actual quote number, amount, and a short description of what's on it, then asks whether they've had a chance to review it and if anything's holding up a decision.
Depending on the answer, the agent responds differently. Ready to move forward, it says someone from sales will follow up that day. Needs more time, it asks what timeline makes sense. Not moving forward, it asks if anything would change their mind and closes the conversation. Either way, it's done in under 90 seconds.
When the call ends, Retell sends the analysis to n8n, which writes a Phone Call activity back to NetSuite, linked to both the customer and the specific quote. The rep opens the Estimate and the follow-up is already logged, with a summary and an outcome.
A SuiteQL detail worth knowing
Querying open Estimates by status in SuiteQL trips people up. The saved search UI shows statuses like Estimate:A, but SuiteQL's Transaction.status column just returns the bare code, A. Filter on the prefixed value and the query returns nothing. Same applies to invoices, sales orders, any transaction type. I hit this exact issue in the last post on payment reminders, and it came up again here.
The other thing that mattered was the quote total. Transaction.amount doesn't exist in SuiteQL for these record types, foreignTotal does, and that's the field that needs to make it into the call so the agent can say the actual dollar figure back to the customer.
The stack
- NetSuite: source of open quotes, destination for the call log
- Retell AI: outbound voice agent with per-customer dynamic variables, post-call webhook
- n8n: scheduled query, call trigger, webhook receiver, activity write-back
Same shape as the earlier posts in this series, just pointed at the sales side instead of AR. The quote doesn't need a smarter CRM. It needs someone, or something, to actually make the call.
Demo's on LinkedIn.