Salesforce Contact Sync
Keep your Salesforce contacts up to date. Find, update, or create contacts from any external data source in one pass.
The Challenge
People change titles, get new phone numbers, and move companies all the time. When you get updated contact info from a conference badge scan, an email signature, or a LinkedIn update, you have to manually look up each person in Salesforce and update their record. For new contacts, you have to create them from scratch. This prompt handles both — updating existing records and creating new ones — in a single pass.
What This Prompt Does
Find or Create
Looks up contacts by email — updates existing ones, creates missing ones
Smart Updates
Only changes fields that differ — never clears existing data
Batch Processing
Handles dozens of contacts in one pass with full reporting
Change Log
Shows every field updated with before and after values
The Prompt
The Prompt
Task
Sync contact data from external sources into Salesforce. Use @Salesforce/Find Contact by EmailName it "Salesforce/Find Contact by Email" and call it with @Salesforce/Find Contact by Email to check if contacts exist, @Salesforce/Update ContactName it "Salesforce/Update Contact" and call it with @Salesforce/Update Contact to update existing records with new information, and @Salesforce/Create ObjectsName it "Salesforce/Create Objects" and call it with @Salesforce/Create Objects to create new contacts for people not yet in the system.
Example: Sync these 15 contacts into Salesforce — update existing ones with new titles and phone numbers, create records for anyone new.
Input
The user will provide either:
- A list of contacts with emails and updated information
- A description of what changed (e.g., "these people changed titles")
- A batch of new contacts to add with existing contacts to update
Example: "Sync these contacts: john@acmeName it "acme" and call it with @acme.com is now VP Sales (was Director), jane@betaName it "beta" and call it with @beta.io has a new phone 555-0123, and mike@gammaName it "gamma" and call it with @gamma.com is new — create him as a contact"
Context
Workflow
- For each contact, use @Salesforce/Find Contact by EmailName it "Salesforce/Find Contact by Email" and call it with @Salesforce/Find Contact by Email to check if they exist in Salesforce
- For existing contacts, compare the provided data against current Salesforce fields
- Use @Salesforce/Update ContactName it "Salesforce/Update Contact" and call it with @Salesforce/Update Contact to update fields that have changed (title, phone, department, etc.)
- For contacts not found in Salesforce, use @Salesforce/Create ObjectsName it "Salesforce/Create Objects" and call it with @Salesforce/Create Objects to create new Contact records
- Report a summary of all updates and creations
Fields to Sync
Contact Fields:
- FirstName, LastName
- Title
- Phone, MobilePhone
- Department
- MailingAddress (Street, City, State, PostalCode, Country)
- LinkedIn URL (if custom field exists)
- Description / Notes
Sync Rules
- Only update fields where the new data differs from the current Salesforce value
- Never clear a field — if the new data is empty but Salesforce has a value, keep the existing value
- Log every change with the old and new value
- For new contacts, require at minimum: Email, FirstName, LastName
- If the contact is new and an AccountId is provided, link them to the account
Output
Contact Sync Summary
Contacts Processed: [count] Updated: [count] Created: [count] No Changes Needed: [count]
Updated Contacts:
| Contact | Email | Field | Previous Value | New Value | |---------|-------|-------|---------------|-----------| | [John Smith] | john@acmeName it "acme" and call it with @acme.com | Title | Director | VP Sales | | [Jane Doe] | jane@betaName it "beta" and call it with @beta.io | Phone | (empty) | 555-0123 | | [Jane Doe] | jane@betaName it "beta" and call it with @beta.io | Department | Engineering | Product |
New Contacts Created:
| Name | Email | Title | Company | |------|-------|-------|---------| | [Mike Johnson] | mike@gammaName it "gamma" and call it with @gamma.com | CTO | Gamma LLC |
No Changes Needed:
- [Sarah Lee] (sarah@deltaName it "delta" and call it with @delta.com) — all fields already match
Summary:
- [X] fields updated across [Y] contacts
- [Z] new contacts created
- [W] contacts already up to date
Example Usage
Try asking:
- →"Sync these contacts into Salesforce: john@acme.com is now VP Sales, jane@beta.io has phone 555-0123"
- →"Update Salesforce for mike@gamma.com — he changed his title to CTO. If he doesn't exist, create him."
- →"Sync these 20 conference contacts into Salesforce — update existing, create new"