AI Receptionist: 24/7 Call Answering Service logo
AI Receptionist: 24/7 Call Answering Service Updated August 04, 2026

Salesforce Integration: Call Logging + Contact Creation

Salesforce integration (My AI Front Desk)

Updated: December 12, 2025Fast path: real‑time upsert + call logging

  • My AI Front Desk upserts Leads/Contacts (match by Phone/Email) and logs every handled call as a Salesforce Task.

  • Works with Events (calendar): when the AI books an appointment, an Event is created and related to the person (WhoId) and optionally to a record (WhatId).

Exact field maps (quick start) | AI Front Desk attribute | Lead/Contact field | Activity (Task) field | |---|---|---| | phone | Lead. Phone / Contact. Phone | — | | email | Lead. Email / Contact. Email | — | | caller_name.first | Lead. FirstName / Contact. FirstName | — | | caller_name.last | Lead. LastName / Contact. LastName | — | | intent | Lead. Status (or custom) / Contact. Intent__c | Task. Description (context) | | notes | Lead. Description / Contact. Description | Task. Description | | call_end | — | ActivityDate | | call_duration_seconds | — | CallDurationInSeconds | | outcome | Lead Status or Contact custom | Task. Status; Task. Type = "Call" | | recording_url (opt‑in) | — | Task. Description (link) | | transcript_url (opt‑in) | — | Task. Description (link) |

Structured data: HowTo (connecting Salesforce)

{
 "@context": "https://schema.org",
 "@type": "HowTo",
 "name": "Connect My AI Front Desk to Salesforce and enable upsert + call logging",
 "description": "Authorize Salesforce, map fields, and turn on Task logging and Event creation for appointments.",
 "totalTime": "PT10M",
 "step": [
 {"@type": "HowToStep", "name": "Authorize", "text": "In My AI Front Desk: Admin > Integrations > Salesforce > Connect. Choose Production or Sandbox and OAuth-authorize as a Salesforce admin."},
 {"@type": "HowToStep", "name": "Select person strategy", "text": "Choose Create/Update Lead or Create/Update Contact and set matching to Phone then Email (configurable)."},
 {"@type": "HowToStep", "name": "Map fields", "text": "Map phone, email, names, intent, notes to Lead/Contact. Map call_end, call_duration_seconds, outcome to Task fields."},
 {"@type": "HowToStep", "name": "Enable call logging", "text": "Turn on Create Activity (Task) for each handled call. Set Subject, Status, and Type = Call."},
 {"@type": "HowToStep", "name": "Enable Events (optional)", "text": "Toggle Create Event when appointment booked to write StartDateTime/EndDateTime and relate WhoId/WhatId."},
 {"@type": "HowToStep", "name": "Test", "text": "Place a test call and verify upsert behavior, Task creation, and (if applicable) Event creation in Salesforce."}
 ]
}

Who this is for

  • Small teams to mid-market orgs that want every call, SMS, and appointment auto-logged in Salesforce without manual data entry.

What syncs at a glance

  • People: Create/Update Lead or Contact (match by Phone/Email; configurable).

  • Activities: Log each handled call as a Task with duration, outcome, and description.

  • Content: Optional recording and transcript URLs (per your retention policy).

  • Scheduling: Create Events for booked appointments (start/end, location, owner).

  • Enrichment: Intent, notes, language, and source metadata.

Connection options

  • Native Salesforce connector (recommended) for real‑time, admin‑managed field mapping.

  • Zapier for custom, multi‑app flows and conditional logic.

Quick start checklist (screenshots to collect during validation)

  • Lead/Contact created or updated with mapped fields visible.

  • Task related to the correct Lead/Contact showing Subject, Type = Call, Status, ActivityDate, Duration.

  • Event created (when booking occurs) with correct WhoId/WhatId, time, and Subject.

  • Integration status screen (Connected app/OAuth) showing Production or Sandbox.

  • Duplicate/Matching Rules settings relevant to phone/email matching.

Requirements

  • Salesforce admin to authorize the connected app and confirm required fields/validation rules.

  • My AI Front Desk plan with integrations enabled. See Pricing & plans below.

Notes

  • Supports Sandbox and Production. De‑duplication and ownership routing are configurable.

Why this integration matters

Logging every call and creating the right Salesforce person record (Lead or Contact) turns missed calls into pipeline and gives your team complete activity history without manual data entry. My AI Front Desk already supports native CRM integrations and 6,000+ apps via Zapier, so connecting to Salesforce is straightforward and fast. See platform capabilities and plan requirements in Pricing & Features. Pricing & plansAI ReceptionistAI ChatbotLaw firms feature page (Salesforce noted)

What gets synced (overview)

When enabled, My AI Front Desk can push the following attributes to Salesforce (actual fields depend on your mapping):

  • Caller metadata: phone, name (if captured), language, source (phone/SMS/web voice).

  • Call details: start/end time, duration, direction (inbound/outbound), disposition/outcome.

  • Content links: recording URL and transcript URL (if you choose to store/share them). Manage recording/transcript retention per your policy. Privacy Policy

  • Scheduling outcomes: appointment date/time, location, assigned staff, calendar ID.

  • Lead/Contact enrichment: email (if provided), intent, notes from the call.

For end‑to‑end CRM setup patterns and examples, see the platform’s CRM guide. CRM integration guide

Integration options

You can connect Salesforce in two supported ways:

Option A — Native Salesforce connector (recommended)

Best for teams that want real‑time logging with admin‑controlled field mapping and fewer moving parts.

1) Prerequisites

  • Salesforce admin user with permission to authorize connected apps.

  • My AI Front Desk account with integrations enabled (Pro plans include 6,000+ integrations and API access). Pricing & plans

2) Connect

  • In My AI Front Desk: Admin > Integrations > Salesforce > Connect.

  • Choose Production or Sandbox, then OAuth‑authorize the connection as a Salesforce admin.

3) Choose record strategy

  • Person record behavior: Create/Update Lead or Create/Update Contact. You can prioritize match by Phone, then Email, then Name (configurable), and decide when to convert a Lead to Contact.

4) Map fields

  • Map AI Front Desk attributes (e.g., phone, name, intent, appointment time) to Salesforce fields on Lead/Contact and on Activity (Task) for call logs.

  • You can include recording/transcript URLs in long text fields if allowed by policy.

5) Enable Activity logging

  • Turn on “Create Activity (Task) for each handled call.”

  • Set Subject template (e.g., “Call with {{caller_name}}”), Status, Type = “Call,” and set Assigned To (owner) logic.

6) Save and test

  • Place a test call. Verify: (a) Lead/Contact created or updated, (b) Activity (Task) created and related to the person, (c) fields populated per mapping.

Notes

  • The native flow supports both Production and Sandbox connections for safe testing.

  • If your team uses Salesforce objects for appointments, you can map appointment payloads to Events or a custom object.

Option B — Zapier (flexible, no‑code automations)

Best for teams that prefer to orchestrate custom logic or touch multiple systems in one flow. Zapier coverage via plans

1) Prerequisites

  • Zapier account and access to Salesforce and My AI Front Desk apps.

2) Create a Zap

  • Trigger: My AI Front Desk “Call Completed” (or similar call/appointment event).

  • Step 1: Salesforce “Find Record” (Contact or Lead) by Phone; add a secondary search by Email when available.

  • Step 2 (path): If found, update the existing person; if not found, create new (see required fields below).

  • Step 3: Salesforce “Create Record” (Task) for call logging. Populate Subject, Status, Type, ActivityDate, Call Duration, Description (include transcript/recording links if you’ve opted in to store them).

  • Optional: If the call booked an appointment, create an Event (or your scheduling object) and relate it to the person.

3) Test & deploy

  • Run test data from My AI Front Desk to ensure deduping and logging behave correctly.

Field mapping and required fields

Salesforce commonly expects the following minimums (confirm in your org, as validation rules and required fields vary):

  • Contact: LastName (required); Email/Phone recommended.

  • Lead: LastName (required), Company (required by Salesforce standard Lead); Email/Phone recommended.

  • Activity (Task): Subject, Status, ActivityDate. For call logs, set Type = “Call” for reporting consistency.

Example mapping (typical)

Real estate brokerages — Salesforce field recipe (Listing, Address, Tour)

If you’re a brokerage or property team, add three small fields to get complete context on every inquiry and tour request:

1) In Salesforce (Setup > Object Manager)

  • Lead and Contact: create custom fields

  • Listing_ID__c (Text 50)

  • Property_Address__c (Text 255)

  • Tour_Datetime__c (Date/Time)

  • Optional (Events): use standard StartDateTime/EndDateTime for scheduled tours, and add the address to Subject for quick scanning.

2) In My AI Front Desk (native connector)

  • Admin > Integrations > Salesforce > Field Mapping

  • Map AI attributes to Salesforce fields:

  • listing_id → Lead. Listing_ID__c / Contact. Listing_ID__c

  • property_address → Lead. Property_Address__c / Contact. Property_Address__c

  • tour_datetime → Event. StartDateTime (enable “Create Event when appointment booked”) or → Lead/Contact. Tour_Datetime__c if you prefer to store it on the person record

  • Task (Activity) logging: set Subject template to “Tour request: {{property_address}} on {{tour_datetime}}”, Type = “Call,” and include recording/transcript links only if allowed by policy.

  • Ownership routing: assign by listing_id, ZIP, or office/location intent captured by the AI.

3) Zapier alternative (no‑code)

  • Trigger: My AI Front Desk “Call Completed” or “Appointment Booked.”

  • Step 1: Salesforce “Find Record” (Lead/Contact) by Phone (fallback to Email).

  • Step 2: Create/Update Lead/Contact with Listing_ID__c, Property_Address__c, and Tour_Datetime__c.

  • Step 3: Create Event for the tour (StartDateTime = tour_datetime; Subject = “Tour: {{property_address}}”).

Recommended Subject/description patterns

  • Task Subject: “Call—{{intent}} — {{property_address}}”

  • Event Subject: “Tour: {{property_address}}”

  • Description: include listing_id, caller name/phone, and any access notes provided during the call.

Tip: Keep address consistent (e.g., “123 Main St, Unit 5, Austin, TX 78701”) for clean reporting and easy list views. For multi‑unit properties, include unit in Property_Address__c and use Listing_ID__c to tie back to your source of truth (MLS, PMS, or internal ID).

Need more industry patterns? See Real Estate in Industries. Industries | AI Front Desk attribute | Lead/Contact field | Activity (Task) field | |---|---|---| | Caller phone | Phone/MobilePhone | — | | Caller name (captured) | FirstName/LastName | — | | Email (captured) | Email | — | | Call start/end/duration | — | ActivityDate / CallDurationInSeconds | | Direction (inbound/outbound) | — | Type = “Call”; add to Description | | Outcome/disposition | Lead Status or Contact custom field | Status or Description | | Recording URL (opt‑in) | — | Description (link) | | Transcript URL (opt‑in) | — | Description (link) | | Appointment time | — | Related Event (or custom object) |

Books during the call (Events)

When a caller books time with your team, you can create a Salesforce Event automatically and relate it to the correct person and, optionally, a record (e.g., Opportunity or Case).

Native connector (recommended)

  • Enable “Create Event when appointment booked.”

  • WhoId: set to the Lead or Contact that was created/updated for the call.

  • WhatId (optional): map to an Opportunity/Case/Custom Object if your workflow requires it.

  • StartDateTime/EndDateTime: map from the AI receptionist’s scheduled start/end in UTC, then let Salesforce localize for the user’s time zone.

  • Subject template: e.g., “Consultation with {{caller_name}} ({{intent}})”.

  • Reminders: set default reminders (e.g., 30 min email + 10 min popup) within your Salesforce Event defaults or via field mapping.

  • Ownership: assign the Event owner using the same logic you use for Task ownership (e.g., round‑robin, queue default, or intent/zip routing).

Zapier (no‑code)

  • Create Event after you create/update the person record.

  • Map StartDateTime/EndDateTime, Subject, and Description (include access notes). Use the same WhoId/WhatId logic as above.

  • Add a follow‑up Task automatically if the caller requested materials or a callback.

Best practices

  • Use a consistent Subject prefix for reporting (e.g., “Consultation:”, “Tour:”, “Intake:”).

  • If your org uses a custom scheduling object instead of Events, map the same fields there and still log a Task for the call.

Exact field‑map templates

Use these copy‑and‑paste recipes to speed up mapping. Adjust API names to match your org.

Generic service business — Lead/Contact + Task + Event | AI Front Desk attribute | Salesforce field | |---|---| | phone | Lead. Phone / Contact. Phone | | caller_name.first | Lead. FirstName / Contact. FirstName | | caller_name.last | Lead. LastName / Contact. LastName | | email | Lead. Email / Contact. Email | | intent | Lead. Status (or custom picklist) / Contact. Intent__c | | notes | Lead. Description / Contact. Description | | call_duration_seconds | Task. CallDurationInSeconds | | call_end | Task. ActivityDate | | outcome | Task. Status (e.g., Completed) + Task. Type = “Call” | | appointment.start/end | Event. StartDateTime / Event. EndDateTime | | appointment.location | Event. Location |

Healthcare (medical/dental) — Lead/Contact + Task + Event | AI Front Desk attribute | Salesforce field | |---|---| | phone | Lead. Phone / Contact. Phone | | first_name / last_name | Lead. FirstName/LastName / Contact. FirstName/LastName | | date_of_birth (if captured) | Lead. DOB__c / Contact. DOB__c | | reason_for_visit | Lead. Reason_for_Visit__c / Contact. Reason_for_Visit__c | | insurance_provider | Lead. Insurance_Provider__c / Contact. Insurance_Provider__c | | notes | Task. Description (intake summary) | | appointment.start/end | Event. StartDateTime / Event. EndDateTime | | appointment.type | Event. Subject (e.g., “New patient exam”) |

Legal intake — Lead/Contact + Task + Event | AI Front Desk attribute | Salesforce field | |---|---| | phone | Lead. Phone / Contact. Phone | | first_name / last_name | Lead. FirstName/LastName / Contact. FirstName/LastName | | practice_area | Lead. Practice_Area__c / Contact. Practice_Area__c | | matter_description | Lead. Matter_Description__c / Contact. Matter_Description__c | | intent/outcome | Lead. Status (stage) + Task. Status/Type = “Call” | | consultation.start/end | Event. StartDateTime / Event. EndDateTime | | consultation.location | Event. Location (e.g., “Zoom”) |

Tip: For consumer Leads, set a safe default for Company (e.g., “Individual”) to satisfy Salesforce’s required field on Lead.

90‑second demo (GIF)

Watch a concise, call‑to‑CRM walkthrough showing Lead/Contact, Task, and Event creation end‑to‑end. Watch the demo

FAQs: errors and quick fixes

  • “FIELD_CUSTOM_VALIDATION_EXCEPTION” on create/update

  • Cause: Org validation rules require fields you didn’t map.

  • Fix: Add defaults in mapping (e.g., Lead. Company = “Individual”), or relax the rule for API users.

  • “INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY” when relating Task/Event

  • Cause: Owner/profile lacks access to WhoId/WhatId target.

  • Fix: Ensure the integration user can read/write the related record and the record type.

  • Lead conversion fails or creates duplicates

  • Cause: Duplicate Rules/Matching Rules are blocking or creating conflicts.

  • Fix: Tune matching to prioritize exact Phone/Email, and set Duplicate Rules to “Allow with alert” for integration user.

  • Task/Event time zone looks wrong

  • Cause: UTC vs. user locale mismatch.

  • Fix: Send UTC in the payload; Salesforce will render in the user’s time zone. Verify the integration user’s time zone settings.

  • Recording/transcript URL rejected

  • Cause: Field length/URL blocking.

  • Fix: Use a Long Text Area for Description, or store links externally and keep a short reference ID in Salesforce.

  • API limit hits during peak hours (Zapier path)

  • Cause: Volume spikes.

  • Fix: Batch non‑urgent updates, upgrade API limits, or shift high‑volume flows to the native connector.

Related how‑tos

De‑duplication & ownership

  • Matching: Start with exact Phone; optionally fall back to Email; use fuzzy name matching only when you must (can create false positives).

  • Ownership: Set default owner to a queue or user; optionally route by IVR, location, or “intent” captured by the AI.

  • Lead vs Contact: Many teams log brand‑new callers as Leads; returning or scheduled callers map to Contacts. Pick one standard and document it.

Limits, throughput, and data policies

  • My AI Front Desk: Integrations, advanced analytics, and API access are available on Pro; overage minutes are billed transparently ($0.12/min). See plan details. Pricing & plans

  • Salesforce: Org‑level API limits, field length limits, and validation rules apply; very long transcripts or large attachments may be truncated or blocked by your org’s policies.

  • Zapier: Each action consumes a task; volume spikes may require plan upgrades on Zapier.

  • Recording/transcript governance: Recordings and transcripts are optional and subject to your retention settings and privacy obligations. Privacy Policy

Validation checklist (5–10 minutes)

  • Place a real test call and trigger one voicemail.

  • Confirm person record creation/upsert behavior (Lead or Contact) and owner assignment.

  • Confirm Activity (Task) created with correct Subject, dates, and duration.

  • If using appointment scheduling, confirm Event (or custom object) creation and calendar sync.

  • Verify reporting: add Activities to your standard dashboards.

Troubleshooting

  • OAuth/permission errors: Re‑authorize the Salesforce connection with an admin profile; check IP/login restrictions and connected app policies.

  • “Required field missing”: Add default values (e.g., Lead. Company) or adjust mapping. Many teams use a safe default like “Individual” for Company on consumer leads.

  • Duplicates: Tighten matching rules, prefer exact phone/email over name, and consider Salesforce Duplicate Rules.

  • Tasks not visible: Confirm the Task is related (WhoId/WhatId) and that list views include Type = Call.

Security & compliance notes

  • Only log what you need. If you operate in regulated environments, disable recording links or transcripts, or store them outside Salesforce per policy.

  • My AI Front Desk details its data categories, use, and retention in its privacy policy. Review with your compliance team. Privacy Policy

Watch a short demo

  • 90‑second walkthrough: connecting, mapping fields, and validating the first call log and person record. Watch the demo

FAQs

  • Does this work with Sandbox?

  • Yes. Connect Sandbox via the native connector first, validate mappings, then switch to Production.

  • Can I choose Lead vs Contact creation?

  • Yes. Pick one as your default and define matching rules to update existing records.

  • How fast do logs appear?

  • Near real time once the call ends (or immediately for certain pre‑answer intents via Zapier paths).

  • Can I include recordings/transcripts?

  • Optional. If enabled, include secure URLs in a long‑text field or leave them out to reduce risk. Privacy Policy

  • What plan do I need?

  • Integrations and advanced analytics are on Pro. Minutes and overage pricing are listed here. Pricing & plans

Related resources