In this article
Objective
The Salesforce Layout Enhancements project introduces new, specific appointment scheduling buttons to Salesforce List and Record Pages, creating a faster and more targeted booking experience for your staff.
This enhancement is part of the overall CRM Integration Strategy to deeply embed scheduling within Customer Relationship Management (CRM) platforms.
When the feature is enabled, the generic New Coconut Appointment button is replaced with two new, specific buttons: Schedule for My Branch and Schedule for Any Staff. These buttons immediately direct the user to the most relevant Coconut scheduling view, bypassing unnecessary selection steps.
Steps
Enabling the Feature Flag
The new layout and buttons are controlled by a feature flag, customers can contact their Customer Support Manager (CSM) to turn this feature on.
New Buttons and Booking Flows
Once enabled, the two new buttons, Schedule for My Branch and Schedule for Any Staff, will appear on the action bar of Salesforce List and Record pages.
NOTE:
Due to Salesforce's default behavior, newly added buttons are typically placed at the end of the button list and may be hidden behind a dropdown menu. Staff should be advised to look for them in the dropdown.
Schedule for My Branch Flow (List Page)
This flow is optimized for staff booking with local availability.
From a Salesforce List Page (where tables of Leads, Contacts, Accounts, etc. are found), click the Schedule for My Branch button from the dropdown menu.
The user is redirected to the embedded Coconut Schedule page for their branch, allowing them to see local staff availability.
Do one of the following:
Click an available time slot of a specific staff member to redirect to the Book Appointment page with the staff pre-filled.
Click the Book Appointment button on the schedule to go to the booking page without pre-filled staff.
Fill in the appointment information and Save the appointment.
The user is redirected back to the Salesforce page from which the appointment was initiated, and the appointment is synced to Salesforce.
Schedule for My Branch Flow (Record Page)
This flow is initiated from a client's Record Page (a page for a particular Lead, Contact, Account, etc.) and automatically pre-fills the client's information. The flow outcome varies based on the client's status in Coconut:
Client Status in Salesforce Record | Action: Click Time Slot or Book Appointment Button | Expected Result |
Exists and is Synced to Coconut | Redirected to Schedule/Book Appointment page | Staff is pre-filled (if time slot selected) AND Client is pre-filled on the appointment page. |
Does NOT Exist in Coconut | Redirected to Schedule/Book Appointment page | Staff is pre-filled (if time slot selected). A New Client Dialog automatically opens with pre-filled Salesforce information. On save, the new client is added to the engagement. |
Exists in Coconut but NOT Synced to Salesforce | Redirected to Schedule/Book Appointment page | Staff is pre-filled (if time slot selected). A New Client Dialog automatically opens with pre-filled Salesforce information. On save, a warning appears indicating a duplicate client was found. Selecting the duplicate client adds them to the engagement. |
Schedule for Any Staff Flow (List Page)
This flow is ideal for Contact Centre agents or staff who need to book with any available expert across the organization.
From a Salesforce List Page, select Schedule for Any Staff.
The user is redirected to the embedded Coconut Contact Centre page where they can book an appointment for any available staff.
Schedule for Any Staff Flow (Record Page)
Similar to the "Schedule for My Branch" flow, initiating this from a client's Record Page automatically pre-fills client information if the client exists in Coconut and has been synced.
If the client does not exist or has not been synced, a pre-filled client creation dialog will pop up for the user to add the client.
If the client already exists in Coconut but hasn't been synced to Salesforce, a warning about a duplicate client will appear upon saving, prompting the user to add the already existing client to the event.
Editing Appointments
Appointments can only be edited through the Coconut embedded experience to ensure data integrity.
Find the event on the Calendar tab or under Activity on a client's Record Page.
Once on the event page in Salesforce, locate the Coconut button called Edit Through Coconut in the upper right corner, either visible or in the dropdown menu.
Clicking the button will take the user to the event page in Coconut where they can edit the details.
NOTE:
A new validation rule prevents standard users from editing Coconut-originated events outside of the Coconut embedded experience.
Troubleshooting
Issue | Root Cause / Check | Resolution/Workaround |
Staff sees a Permission Denied Page after clicking Schedule for My Branch | User does not have the required Coconut schedule permission. | This is the expected behavior. Use the Schedule for Any Staff button instead. For a cleaner UX, see the Customization section to remove the button from the user's Profile/Page Layout on Record Pages. |
New buttons (Schedule for My Branch and Schedule for Any Staff) are not visible | Feature flag salesforce-layout-enhancements is not enabled for the user/vendor. | Enable salesforce-layout-enhancements for the user/vendor via the feature management tool. Wait one to two minutes for automatic layout syncing to complete. |
New buttons are visible, but hidden behind a dropdown menu | Salesforce places new buttons at the end of the action bar. | This is a known Salesforce platform limitation. Educate staff to look for the buttons in the action bar dropdown. |
Staff cannot edit an appointment that originated in Coconut | The user is a Standard User, and the new edit validation rule is preventing changes outside of Coconut. | Advise the user to click the Edit Through Coconut button on the event page or calendar to edit the appointment directly within the Coconut embedded experience. System Admins can bypass this check. |
Client creation dialog shows Duplicate Found warning upon save | The client exists in Coconut but has not yet been synced to Salesforce. | This is expected behaviour. The user should select the already existing client from the dialog to add them to the engagement. |
Customization: Removing the Non-Functional Button
For users without schedule permission (e.g., Contact Centre staff), clicking Schedule for My Branch will result in a permission denied page. To prevent this broken experience on Record Pages, Salesforce Administrators can remove the button.
NOTE:
This customization only removes the button from Record Pages as Salesforce currently does not allow for custom layouts on List Pages.
Create a Custom Profile: Navigate to Set-up > Profiles > New Profile and clone an existing profile (e.g., Standard User).
Create a New Page Layout: Navigate to Object Manager > the Object you would like to remove the button from (e.g., Lead, Contact, Account) > Page Layouts > New. Use the existing layout as a base.
Remove the Button: In the new layout editor, remove the Schedule for My Branch button by dragging it from the Salesforce Mobile and Lightning Experience Actions section into the top section.
Save your changes.
Assign the New Layout: Go back to the Page Layouts page for the object, click Page Layout Assignment > Edit Assignment.
Select your custom user profile.
Use the Page Layout to Use dropdown to select your new layout.
Save your changes. The button will no longer appear on that object's Record Page.
Repeat: This process must be repeated for each object type (Lead, Contact, Account, etc.).
A note on access and visibility
The availability and expected behaviour of the booking flows depend on the individual staff member's Coconut permissions and client data synchronization.
Schedule for My Branch is intended for staff with schedule permission for a branch.
Schedule for Any Staff is intended for Contact Centre agents or staff who need to book with any available expert across the organization.
Only System Admins can bypass the validation rule that prevents editing Coconut-originated events outside of the embedded Coconut experience.
