Objective
In this article, you’ll learn how to map your Salesforce fields to Coconut for your integration.
NOTE: Salesforce is a paid add-on. Please connect with your Customer Success Manager to get started.
Steps
From Settings, you can modify existing field mappings, add new field mappings, import custom fields, or restore default field mappings for your integration.
Configure settings
Here you can adjust client mapping settings to specify how Coconut identifies and aligns clients with Salesforce records when direct matches to Salesforce IDs are unavailable during appointment bookings.
From the navigation menu, click Settings
From Integrations & API, click CRM
From Salesforce, click Settings
Decide whether Coconut should align unmatched clients with Salesforce’s Leads, Contacts or Accounts (Person) objects when it looks for an existing client record.
This selection decides how Coconut attempts to match clients without a Salesforce ID.
For example, if incoming clients in Coconut should map against Leads in Salesforce, select Leads for “Existing clients should match what type of record?”
If you selected Leads in the previous step, further specify how you want Coconut to interact with those Leads.
Choose between Contacts or Opportunities to indicate the subsequent object type Coconut should consider when handling unmatched Leads.
If you select Contacts or Person Accounts in the previous step, then the next selection ‘Leads get converted into what type of record?’ is not applicable.
Next, define the sequence Coconut employs to match clients in Salesforce.
For instance, selecting Phone Number means Coconut first attempts to match clients based on their Salesforce ID
If unsuccessful, it then searches by Phone Number, followed by Name and Email in the order specified
This indicates your preference for the matching order
Both attributes will still be used to find a match
This matching order preference tells Coconut about how you want it to look up Leads/Contacts when it doesn’t have a matching Salesforce ID in Coconut
Lastly, when a new client record is created in Coconut, you can select whether to create Lead or Contact or Person Account in Salesforce
Or, choose None so no new record is created in Salesforce
Make the desired changes on your Settings screen in Coconut and they will be automatically Saved and applied on the Salesforce Integration settings.
Salesforce Integration settings page
NOTE: Adjustments to client matching settings directly affect how client data is synchronized and managed between Coconut and Salesforce, impacting the integration’s efficiency and data integrity.
Modify existing field mappings
To modify existing field mappings for your organization’s Salesforce <> Coconut integration:
From the navigation menu, click Settings
From Integrations & API, click CRM
Select a field to be mapped from the Coconut Software dropdown list
Confirm the value for the mapped pair by selecting it from the Salesforce dropdown list
Make your desired modifications
Click Save
NOTE: If you selected Contacts or Leads as a response to “Existing clients should match which type of record?”, make sure to set up the appropriate field mappings in this section.
Add a field mapping
To add a field mapping:
From the navigation menu, click Settings
From Integrations & API, click CRM
From Field Mappings, click Show mappings for Contact, Leads, and Events to expand the field mappings columns
Click Add mapping
Select a field to be mapped from the Coconut Software dropdown list
Confirm the value for the mapped pair by selecting it from the Salesforce dropdown list
Click Save
Salesforce Field Mapping page used to configure which Salesforce fields map to Coconut data
NOTE: Once you sync your Salesforce instance that has person account record type with Coconut then you will Person Accounts as a section under field mappings.
Import custom field mappings
If your organization has custom fields scoped to events, person accounts, or contacts/leads in Salesforce, these are imported into Coconut and mapped as part of your organization’s Salesforce<>Coconut integration.
To import field mappings:
From the navigation menu, click Settings
From Integrations & API, click CRM
Click Import Salesforce Fields
The changes are imported and the custom fields display as options in the Salesforce dropdown list.
Field Mapping Reference
Default Field Mappings
Salesforce fields without a dropdown list are required fields for the integration. While the corresponding Coconut field includes a dropdown list, Coconut recommends NOT modifying the default for these mappings.
The following are required as part of the Salesforce<>Coconut integration.
Leads
Coconut Software Field | Salesforce Field |
SFDC User Id | Owner ID |
Client Last Name | Last Name |
Client Full Name | Company |
Events
Coconut Software Field | Salesforce Field |
Staff Platform ID | Assigned To ID |
Client Platform ID | Name ID |
Appointment Start | Start Date Time |
Appointment End | End Date Time |
Contacts
Coconut Software Field | Salesforce Field |
Staff Platform ID | Assigned To ID |
Client Platform ID | Name ID |
Appointment Start | Start Date Time |
Appointment End | End Date Time |
Person Accounts
Coconut Software Field | Salesforce Field |
First Name | First Name |
Last Name | Last Name |
Staff Platform ID | Owner ID |
Available Coconut Fields
The following fields in Coconut are available for mapping to your organization’s Salesforce fields.
Coconut Software Field | Description |
Coconut Client ID | The client’s unique Coconut Software identifier |
Client Platform ID | The client’s unique Salesforce identifier |
Client First name | The client’s first name |
Client Last name | The client’s last name |
Client Full name | The client’s full name |
Client Email | The client’s email name |
Client Address | The client’s street address |
Client City | The client’s city of residence |
Client State/Province | The client’s state/province of residence |
Client Zip/Postal Code | The client’s zip/postal code |
Client Country | The client’s country of residence |
Client Phone | The client’s phone number |
Client Cell Phone | The client’s cell phone number |
Client Work Phone | The client’s work phone number |
Client Notes | Client profile notes |
Coconut Staff Id | The staff’s unique Coconut Software identifier |
Staff Platform ID | The staff’s unique Salesforce identifier |
Staff First name | The staff’s first name |
Staff Last name | The staff’s last name |
Staff Full name | The staff’s full name |
Coconut Appointment Id | The unique Coconut Software identifier associated with the appointment |
SFDC Event Id | The unique Salesforce identifier associated with the appointment |
Appointment Start | The appointment’s start time |
Appointment End | The appointment’s end time |
Appointment Notes | Notes for staff about appointment details |
Appointment Meeting Method | The appointment’s meeting method |
Appointment Meeting Link | The appointment’s meeting link (applies to video calls) |
Location Name | The branch location associated with the appointment |
Service Name | The service associated with the appointment |
Attendee Notes | Notes shared with clients about their upcoming appointment |
Question (i.e. What is your Annual Household Income?)* | The value associated with a custom question configured in Coconut |
* The number of questions accessible from the dropdown will match the number of questions within http://{subdomain}.coconutcalendar.com/settings/questions.
Available Salesforce Fields
Options in the Salesforce dropdown reflect the optional fields within your organization’s Salesforce instance at the time of initial setup, or if you have since imported custom fields from Salesforce to Coconut.
To configure custom fields within Salesforce, please refer to their documentation here.
Once configured, import the custom fields by following the steps outlined in Import custom field mappings.
NOTE: This is a live integration, making changes to field mappings can introduce adverse effects during business hours.
Salesforce Setup
Here are some Salesforce-recommended pre-deploy practices and must-haves:
Deploy in Sandbox
The first deployment should be done in Sandbox org before production org
After tests are done in the sandbox you can connect to your production org
For more information, review this Salesforce documentation
Backup current instance
Salesforce doesn’t have any rollback functionality for the deployments
Coconut recommends you take a backup of your current instances before deployment tests
For more information, review this Salesforce documentation
Review Salesforce enforced prerequisites
The overall test coverage for Apex components must be at least 75%
If you don't have enough test coverage the Coconut layout sync will fail
This isn't something Coconut has control over, and you are advised to ensure you have the proper coverage
For more information, review this Salesforce documentation
Enable Coconut functionality for Salesforce users
Once you have configured Salesforce settings in the Coconut application, you will need to update some layout changes in Salesforce to ensure that the Coconut settings are reflected appropriately
Go to Salesforce -> Administration -> Profiles
Choose the type of user you want to enable Coconut appointments for
Choose Visualforce Page Access from the settings
Select all the Available Visualforce Pages that have the term “Coconut” in them and “Add” them under “Enabled Visualforce Pages”
Click Save
Adding Coconut-related pages to Enabled Visualforce Pages in Salesforce
Test if the integration is working
In your production instance of Coconut, create a new client in the Clients section of the application
Book a meeting with the said client using Coconut, and assign yourself as the staff member for it
Since Coconut syncs events with your Salesforce instance, you can only search for clients that have a Coconut event associated with them
Login to Salesforce and search for the Lead/Contact depending on how your field mappings were set up
You will see the Coconut appointment associated with the Lead/Contact
You can now edit/delete it and confirm if the appointment changes sync over to Coconut
NOTE: There are two buttons on any appointment: “Edit” and “Edit Coconut Appointment”. ”Edit” is a native Salesforce functionality that only allows you to edit the appointment start and end times, and appointment details. The “Edit Coconut Appointment” button will enable you to edit all aspects of a Coconut appointment.
Troubleshooting
Layout sync issues
If you are unable to see the “New Coconut Appointment” button on the LHS navigation when you go to the Accounts/Leads/Contacts/Event Details pages, visit this Salesforce article for instructions on how to solve these issues.
Insufficient privileges error
A standard Salesforce user will be able to see the “New Coconut Appointment” buttons on the Leads/Contacts pages, but if they click on them and receive an “Insufficient Privileges” error, then the Salesforce administrator can refer to this Salesforce guide to ensure that the Coconut appointment buttons are enabled for the Salesforce user.
The Insufficient Privileges error in Salesforce
Duplicated List Views
Due to a known issue with Salesforce, some list views might duplicate after deploying Coconut buttons to the Salesforce instance. It's essential that after connecting Salesforce with Coconut, Salesforce admins review the Account, Contact, Event, and Lead list views for possible duplicates.
Admins can follow these steps to remove in case of duplicate list views:
Navigate to the Deployment Status page in Setup in Salesforce
Locate the deployment that occurred after connecting Salesforce to Coconut
Note the Deployment Name (Example: 0AfD00000004PvI)
Log in using your Salesforce admin credentials
Go to the Utilities tab and select Metadata API Process Status
Enter the deployment name noted in step 3 into the AsyncProcessId textbox
Choose Deploy as Async Operation
Click on Get Status
Expand all and review components with componentType: ListView, changed: true, and created: true
Note down the ID of the component
Example: 00Bau000000bABCDE2
Navigate to the relevant list view page in Salesforce
Example: Event list view
Duplicate list views with the same name will appear in the list view dropdown
Choose one of them
To delete the correct one, ensure the URL of the current Salesforce page contains the same ID noted in step 11
Example: https://../Event/list?filterName=00Bau000000bABCDE2
After confirming the correct duplicate list view, select 'Delete' from the list view controls
For further assistance, please reach out to your Customer Support contact.
More information can be found in the Salesforce documentation.
Rollback
After disconnecting Salesforce integrations from Coconut, it's essential for Salesforce admins to review where custom buttons are being used. Unused buttons should be deleted to maintain system cleanliness and prevent potential issues. Here are the steps for Salesforce admins to review and delete Account, Contact, Event, and Lead objects for both list button and detail page buttons in Salesforce:
Navigate to the management settings for the object you want to edit
(Account, Contact, Event, or Lead)
Go to Buttons, Links, and Actions
Find the button you wish to delete and click on the arrow icon associated with it
Select 'Delete' from the dropdown menu
A list of button or link references will appear, showing where the button is in use
Click on the reference label and remove the button reference from its usage
Once references are removed, return to Buttons, Links, and Actions
Repeat steps 3 and 4, and then confirm the deletion in the 'Are you sure?' dialog by selecting 'Delete'
The page will refresh, and the button will no longer be available in the list
After buttons are deleted, from Visualforce Pages in Setup, delete Coconut pages by following this Salesforce help article.
Finally delete Trusted URL for Coconut from Trusted URLs page in Setup by following this Salesforce help article.
A note on access and visibility
Coconut admin users can access Settings and input integration details in Coconut.
NOTE: You will require someone at your organization with Salesforce administrator access to fully integrate Salesforce with Coconut.