A ← Integrations
Internal · Salesforce MCP
Salesforce Salesforce
Agent file

Nia and Noah

Noodoe virtual front desk. Inbound service only — not careers. Nia is the woman on the phone. Noah is chat. They know EV OS, partner hardware, no Noodoe truck on site, and when to look someone up, book 90 minutes, or open a case. They only confirm a write when the tool status says it happened.

Try them

Phone, voice widget, chat widget

Nia · voice

Call +1 (778) 716-8034, or use the Talk to Nia button on the left. Allow the microphone. She should say she is Nia at Noodoe.

Noah · chat

Use the Chat with Noah button on the right. Same Salesforce tools. Clock times with colons are OK in chat.

Who they are

Agent details

Voice

Nia

Woman. Says it on the first line. MiniMax, same family as Nora. Do not swap the voice.

Chat

Noah

Desk / web chat. Same tools as Nia. Colons OK in times.

Shop

Noodoe

EV charging / EV OS. 90-minute default demo. Calendar is Events, not Field Service.

Timezone

America/Vancouver

Spoken voice times have no colons. Naive times are shop-local, not UTC.

House settings

Same stack as Eric and Nora

Voice

MiniMax

speech-02-turbo. Same Nora voice id. Kylie fallback. Speed 1.05.

Ears

Deepgram Flux

flux-general-en. EOT 0.7. Keyterms include Noodoe, charger, EV OS.

Model

gpt-4.1

Same as Lex / Nora in this Vapi org. Temp 0.4 voice, 0.3 chat.

Line

Office bed

End-call phrases, wait 0.4s, interrupt on wait / hold on.

Goals

What this integration is for

Answer like a front desk

Short turns. One question at a time. No invented contacts, times, or charger status. Never mention jobs or the careers page.

Use the real Salesforce calendar

Openings are empty Event gaps on Adham. A book creates a 90-minute Event. A move changes that Event.

MCP is the only bridge

The model never talks to Salesforce itself. Voice and chat both call the same toolbox: Events, notes, Cases, Leads, and Accounts. Confirm only on the success word.

Architecture

What we actually built

  1. Caller hits Nia at +1 (778) 716-8034, or uses the voice widget. Chat hits Noah.
  2. Vapi answers (prompt + MiniMax + Deepgram Flux + gpt-4.1).
  3. Voice calls MCP tool salesforce_voice_mcp. Chat calls salesforce_chat_mcp.
  4. n8n path salesforce-voice or salesforce-chat runs one Code Tool.
  5. That tool hits Salesforce REST as adham@ayra.cx.
  6. JSON comes back with a status. Voice and chat both have Events, Cases, Leads, and Accounts. Confirm only on found, ok, booked, rescheduled, noted, opened, or created.
Salesforce

What we can and cannot do

Can

  • Find or create a Contact
  • Read weekday Event gaps on Adham’s calendar
  • Book / move a 90-minute Event
  • Write a completed Task note
  • Open or look up a Case. Create a Lead. Find an Account

Cannot

  • Noodoe EV OS / charger control / billing
  • Field Service ServiceAppointment (not on this org)
  • Take a card or delete a visit
  • Invent a time or confirm a write on the wrong status
How to test

Talk, then check Salesforce

On the phone (Nia)

  1. Dial +1 (778) 716-8034 or use the Nia widget on this page.
  2. Speak like a customer. Do not say tool names.
  3. Give a real first and last name. First name only should not look anyone up.
  4. Seed Contact: Alex Rivera, phone 6045550100.
  5. For times only, say “don’t book anything.”
  6. After bye, she should hang up.

After you hang up

  1. Salesforce → Calendar on Adham. Empty gaps are openings. A new 90-minute Event is a book.
  2. Timezone on that calendar must be Vancouver.
  3. 🟢 Salesforce · MCP · Voice → Executions. Open the Code Tool row: tool, status, asked, returned.
  4. Vapi call → Railway-* tool rows if you need the raw MCP args.
  5. Fail if she said 11:00 and the Event is 4:00 AM.
Scenarios

What we can test

Scenario You say Tools that should run Pass
Times only Don’t book. What do you have tomorrow morning? get_open_times 2–3 spoken slots. No new Event.
Find seed Alex Rivera, 6045550100 find_customer Status found
Book demo Book the first morning slot for an EV OS demo find_customer → get_open_times → book_visit Status booked. Event on Adham
Move I need to move my visit. Friday morning. lookup_visit → get_open_times → move_visit Status rescheduled. Same Event, new time
Note Note they have 12 chargers in a garage add_customer_note Status noted. Task on the Contact
Cancel Cancel my visit None that delete an Event Takes a message. Event still there
Case Open a case. Charger offline. create_case Status opened. Case in Salesforce. Works on Nia and Noah
First name only “Alex” then wait No find yet Asks for last name before lookup
Careers I’m looking for a job at Noodoe None required This line is for charging and energy. No jobs talk. May take a name and number.
Send a tech Can you send a technician to my site? find_customer → create_case Says Noodoe does not send a truck. Local electrician. Opens a case.
Examples

Scripts that exercise the MCP

Availability

Hey, this is Alex Rivera. Don’t book anything. What times do you have tomorrow morning?

Expect get_open_times only. Cross-check Adham’s empty morning slots.

Book

I want an EV OS demo. Tomorrow morning if you can. Alex Rivera. Use 6045550100.

Pick one of the times she offered. Then open Salesforce Calendar and find that Event.

Move

I need to move my visit. Friday morning instead.

She should look up the visit, offer free times, then move. Confirm the when field, no owner name.

Note

Can you note they have 12 chargers in a garage?

Logs should show add_customer_note / noted.

Case

Alex Rivera, 6045550100. Open a case. The charger is offline at the Vancouver site.

Works on Nia and Noah. Status must be opened before they say it is on file.

Careers

Hi, I saw careers on the site. Are you hiring?

Must not describe roles or send them to a jobs page. This line is inbound service only.

On-site tech

Our charger is broken. Can Noodoe send someone today?

No Noodoe truck. Local electrician. Remote help yes. Then a case after first and last name.

Prompt

What we changed after reading their help center

Now in the live prompt

  • Inbound service only. Careers, hiring, internships are banned.
  • When to use each action, not just a name list. Identify first. New sale books 90 minutes. Support opens a case. Cancel is a note.
  • No on-site technician. Driver line vs EV OS line.
  • EV OS: access modes, RFID, Stripe, commissioning, fleet, energy, partner hardware including LiteOn.

Their website agent vs ours

The noodoe.com widget is a help-search bot that goes offline and takes an email. The picture map of who they are is on the brief.

Open who Noodoe is →

On the system

What each layer should show

Salesforce

Calendar

App Launcher → Calendar on Adham. Shop hours are weekdays. A book is a 90-minute Event. Times-only leaves the board empty. Contact: Alex Rivera · 003au00000GEI3tAAH.

MCP executions

Workflow 🟢 Salesforce · MCP · Voice or Chat. Each tool run is one Code Tool row: tool, status, name, when. Voice workflow executions are the handshake plus the tool.

Six voice tools

Voice and chat: find_customer, get_open_times, book_visit, move_visit, add_customer_note, lookup_visit, create_case, lookup_case, create_lead, find_account.

Next client

Duplicate this app tomorrow

Send this page to the client. It only asks them to invite adham@ayra.cx and answer how they use Salesforce.

Open the live Noodoe MCP page →   Open who Noodoe is →   Open the client access page →