A ← Integrations
Fourth integration · Live Noodoe org
Salesforce Salesforce
Integration 4 · Live client org

Noodoe MCP is live

This is the live Noodoe Salesforce org, not the Ayra demo org Nia and Noah still write to. Same ten tools as the other Salesforce MCP. We can create Leads and Contacts by name. We cannot read or write email, phone, title, or account until they open those fields.

Right now

What is wired for Noodoe

Live MCP

Noodoe · Salesforce · MCP

Workflow k763ckaBZi2ngB5T

https://primary-production-7f76f.up.railway.app/mcp/noodoe-salesforce

Org noodoe.my.salesforce.com. Runs as the Ayra connected app (client credentials). Do not reuse SF_CLIENT_ID from the demo org.

Live Ten tools published

Also already live, different org

  • 1 · Housecall Pro — Eric, Johns Pest
  • 2 · ZenMaid — Grace, Kingsway
  • 3 · Jobber — Nora, Adam Plumbing
  • 4 · Salesforce — this page. Live Noodoe MCP above. Nia / Noah still sit on salesforce-voice / salesforce-chat (Ayra demo org) until we point them here.

Open the Nia · Noah demo page →

Why the records looked empty

Field-level security, not an empty CRM

The people are there. The columns are hidden.

Salesforce has two locks. Object access lets us see that Contacts and Leads exist. Field-level security decides which boxes on that record we are allowed to query. If a field is off for this user, the API pretends the column does not exist.

That is why SELECT Email, Phone FROM Contact returns No such column 'Email'. The field is on their New Contact screen. It is not on ours.

What that looks like in practice

Keith Fernsler and Manfred Elfstrom are real rows. We can see name, company, status, and Noodoe custom boxes we were granted. Email, phone, mobile, job title, account, website, industry, and lead source all come back INVALID_FIELD.

Their page layout is also not assigned to this profile, so we cannot screenshot the exact New Contact form. The list below is: standard Salesforce add fields we probed, plus every Noodoe field this user can actually create.

New Contact

Add-contact fields, and which ones we can fill

A salesperson hitting New Contact gets the usual Salesforce name / account / phone / email form, plus two Noodoe boxes. Required to save: Last Name only. We can create that Contact. We cannot update it later, and we cannot write the contact details people care about.

Field on New Contact Who fills it This user
Salutation · First · Last · Middle · Suffix Person typing, lead conversion, or our MCP Create Last Name required
Account Name Salesperson links the company, or lead conversion Hidden
Title Salesperson or form Hidden
Email · Phone · Mobile Salesperson, web form, or email capture Hidden
Mailing address Salesperson or form Hidden
Title Category Noodoe sales: Decision Maker, Influencer, Gatekeeper, End User Champion Create empty on recent rows
Engagement Mode Noodoe sales: LinkedIn, Email, Phone, Social Media, In-Person, Multi-Channel Create empty on recent rows
Creation Source Salesforce, not the salesperson Create
New Lead · ad fields

What sits on a Lead, including campaign

Required to create a Lead: Last Name and Company. Status defaults to New. The “ad” boxes are Noodoe custom fields — Campaign, product interest, account type, calculator. Their website thank-you does not fill those. It writes name + company, then parks the email on a Task.

Lead field What fills it today This user
First · Last · Company Web inquiry, salesperson, or create_lead Create required: last + company
Status Defaults New. Sales moves it: Working, Attempted, Contacted, MQL, Meeting Set, SQL, Nurturing, Unqualified, Unresponsive, Archived Create defaulted
Email · Phone · Mobile · Title Form or salesperson. Hidden from us. On Manfred the email only showed up in the thank-you Task body. Hidden
Campaign Marketing / ads. Active values: Email, Fleet, Hospitality, Incentive, LinkedIn, Multifamily, Public, Shell Recharge. Older rows also show SingleSite-CPO_202505. Create usually empty on web leads
Account Type Sales: New_Business, Existing_Business, New Site Create
Product Interest · Timeline · Budget · Decision Maker · Property Size Sales qualification. Free text. Empty on the UBC web lead. Create
Decision Timeline TBD, Immediate (<30 days), 30 days, 60-90 days, Exploring, Unknown Create defaults TBD
Calculator Used TBD, Boolean, None — their site calculator Create
Service Package TBD, Clean, Move, Deliver, Feed, Engage, Safe Create
CalendlyCreated Calendly. Not the website thank-you. Create default false
No. of Locations · Annual Revenue · IAE Notes · Lead Score Sales / ops after the inquiry Create
Billing address Sales. Custom address on the Lead, not the hidden standard mailing fields. Create
What fills the add

Five ways a person lands in Salesforce

1. New Contact / New Lead

A Noodoe person types the form. They see email and phone. We do not.

2. Website inquiry

Creates a Lead with name + company, Status New. A completed Task “Thank you for your inquiry” holds the email in the body. Campaign and product interest stay empty unless marketing mapped them.

3. Calendly

CalendlyCreated flips on. That is a meeting book, not the contact form.

4. Our MCP

create_lead writes First, Last, Company. book_visit can create a Contact with First + Last, then an Event. No email, no phone, no campaign.

5. Lead conversion

Their sales process turns a Lead into an Account + Contact. We cannot see Account on the Contact after that.

Event and Task

Meetings are Events on a Contact. Notes and sent emails are Tasks. Our note tool writes a completed Task titled Customer note.

Create

Yes — we can create new Leads right now

Lead create is on

The object is createable. Required fields we can write: Last Name and Company. create_lead already sends First Name, Last Name, and Company (company falls back to “{name} site” if the agent does not pass one).

Do not put a test Lead in their org unless someone on Noodoe asks. The tool itself is live.

Limits on that create

  • Cannot write Email or Phone on the Lead.
  • Cannot update the Lead after create. This user is create-only on Lead and Contact.
  • Cannot convert the Lead.
  • Contact create also works (Last Name). Same create-only rule.
Cases

They barely use Cases. Our case tools will likely fail.

One Case in the whole org

Case 00001006 · Status New · created 2023-05-01. Internal comments empty. That is the only row this user can see.

Status values we can write: New, On Hold, Escalated, Closed.

Hidden — and those are the fields we send

create_case posts Subject, Description, Origin Phone, Status New, and ContactId. Subject, Description, Origin, Priority, Type, Reason, and Contact are all INVALID_FIELD. So a support case from the phone will not land until those fields are granted. Do not promise “I opened a case” on this org yet.

Inbound trouble should go on a Lead or a Task note until then. That matches how they already work: Leads + thank-you Tasks, almost no Cases.

Tools

Same ten names as the other Salesforce MCP

Tool Writes Confirm only if
find_customer Read Contact by first + last name found / not_found / needs_disambiguation
get_open_times Read weekday Event gaps ok / no_slots
book_visit Contact if needed, then Event booked
move_visit PATCH Event rescheduled
add_customer_note Completed Task noted
lookup_visit Read upcoming Event found
create_case Case — likely fails. Subject / Description / Origin / Contact are hidden opened
lookup_case Read Case number + status only. One row exists found
create_lead Lead (name + company) created
find_account Read Account by name found
If we need more

Do not ask Rosa unless we decide we need it

Hold for later

Email, Phone, Title, Account on Contact/Lead. Subject, Description, Origin, Contact on Case. Same permission set → Object Settings → Field Permissions.

Justin’s line: thank her, integration is working, we will ask if we need more permission.

We do not need

  • A security token. Client-credentials OAuth already works.
  • Another user. team@ayra.cx is in.
  • Delete or edit on Leads. Create-only is enough.