Skip to content

About

A deployable sample E2E application that shows how Data 360 powers Agentforce, showcases the use of structured,unstructured & IoT data in Agentic conversations in a Medical Device Scenario. Uses Data 360, Sales Cloud, Commerce Cloud and Experience Cloud.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

A Medical Device Solution Powered by Data 360 – Pulse Sync

Imagine a pacemaker application that does more than monitor a device; it helps care teams understand the whole patient. Welcome to Pulse Sync! Built with Salesforce Data 360, this solution unifies patient records, pacemaker telemetry, clinical data, and unstructured medical documents into a trusted, actionable profile providing an AI-powered context for faster, more informed decisions. Pulse Sync leverages Data 360, Agentforce, and the Salesforce Platform to provide personalized patient care experiences based on connected medical devices.

The Pulse Sync application showcases Agentforce, Prompt Builder, Document AI, and Notebook AI by leveraging both structured and unstructured data to process patient and device telemetry information. It features a comprehensive patient profile, with the Pulse Sync AI agent using structured and unstructured data to drive contextual conversations.

🎥 Product Demo

Watch the video on what is included in this end to end solution before you get started.

There are two ways to install this solution kit. You can use Claude to run the installation process for you, or you can manually set up the solution in your org. The instructions for both are provided below.

Automated Installation with Claude

1. Pre-Deployment Instructions

To ensure a successful install, please verify your environment is properly configured.

Step Details
1 Before running the installer, ensure you have Claude, Git, and Visual Studio Code installed, and that you have permission to debug the Chrome browser.
2 Configure Claude Code permissions in VS Code: Open VS Code → Settings and search for permission. Under Extensions → Claude Code, make sure Claude Code: Allow Dangerously Skip Permissions is Enabled/Checked, and set Claude Code: Initial Permission Mode to bypassPermissions.
3 Create a folder on your local desktop to store the project. This will ensure that any CLAUDE.md file you may have already created won’t interfere with the install.

2. Create the Target Org

Step Details
1 Request a demo org from the Partner Learning Camp using the link provided https://partnerlearningcamp.salesforce.com/s/demo-org. If you want to use your own developer org, ensure that it has Sales, Service, Experience, Commerce, Field Service, Data Cloud and Loyalty Management licenses/features enabled.
2 Change the log-in user's email to your own email address and make sure to confirm the change.
3 Update your password in the demo org environment.
4 Make a note of your username and password, as you will need them later.

3. Clone the Deployment Repository Using VS Code

Step Details
1 Open VS Code
2 Select 'Clone Git Repository'
3 Enter this Git repository URL in the Command Palette ()
4 Select the local folder where you want to download the repository (Refer to the Pre-deployment Instructions Section)
5 Once the repository has been downloaded, select “Yes, I trust the authors” when prompted
6 When asked, select “Yes” to open the cloned project folder in VS Code

4. Launch Claude Code

Step Details
1 Initiate a Claude chat session within VS Code as shown below
2 To get started, Claude requires some information: The instructions (prompts), an alias (which can be anything), your new Demo Org username and password.
3 To initiate the installation, use the following prompt:
"Install Data 360 Healthcare Installer into Alias: ALIASNAME Username: USERNAME Password: PASSWORD"

Replace the alias (can be anything), username and password with your own credentials (from when you created your org) and then press enter to begin the installation. Here is an example: Install Data 360 Healthcare Installer into Alias: Data360MedTechSolution Username: XXX.com Password: XXXXX
claudeicon

5. Installation Mode Selection

Step Details
1 You will then receive the following prompt from Claude:
"The installer needs confirmation on which mode to run. Based on your request for the complete Data360 Healthcare Installer, you'll want Mode 2 which includes all 21 steps - the full Data Cloud + Commerce + Experience Cloud solution. Should I proceed with Mode 2 (the complete installation with all 21 steps)?"
We recommend option 2
Mode 1 = Data Cloud Only
Mode 2 = Data Cloud + Commerce + Experience Cloud + Agentforce

6. Authenticate The Org

Step Details
1 Playwright MCP will launch a new browser window.
2 Log in with your org username and password.
3 Click Allow Access.

Claude will begin installing everything from the code repository and will orchestrate a series of sub-agents to do the work for you. We recommend checking on the installation, as there are times when Claude may require additional permissions from you, depending on your settings.

7. Configure MCP Server

While the MCP Setup skill (/mcp-setup) is running, the installer may pause and ask you to complete the following steps to configure the Salesforce MCP servers:
i. Retrieve Consumer Key & Secret from External Client App

Step Details
1 Go to Setup → External Client App Manager → Salesforce_DC_Prod_Org.
2 Open Settings → OAuth Settings → Consumer Key and Secret
3 Enter the verification code sent to your Salesforce user email.
4 Copy the Consumer Key & Secret and Environment as Sandbox or Production and provide them to Claude.
5 Claude will register and connect the Salesforce MCP servers.
mcpserverconsumerkey

ii. Reload VS Code & Verify MCP Connections

Step Details
1 Press Ctrl+Shift+P (Windows) or Cmd+Shift+P (Mac)
2 Select Developer: Reload Window
3 After reload, run /mcp or open MCP Servers under Customize
4 Verify that all four Salesforce MCP servers show Connected
5 Reply reloaded to Claude to continue.
mcpserverconnected

8. Claude Moves Forward with Installation

Claude will begin installing everything from the code repository and will orchestrate a series of sub-agents to do the work for you. We recommend checking on the installation once in a while, as there are times when Claude may require additional permissions from you (Consumer Key/Secret for MCP setup, VS Code window reload after MCP registration), depending on your settings.

  1. Feature Enablement
  2. External Client App Deploy
  3. MCP Setup
  4. Base Metadata Deploy
  5. Data Kit Install
  6. Agentforce Data Library
  7. Notebook AI
  8. Document AI
  9. Agent Setup Configuration
  10. Prompt Template Add Retriever
  11. Assign Permission To App
  12. Experience Cloud Setup
  13. Commerce Store Enablement
  14. Cms Workspace Setup
  15. Storefront Publish
  16. Embed Service Agent On Experience Site
  17. Site Branding Setup
  18. Datastream File Upload
  19. Refresh Data Cloud Components
  20. Copy Field Sync
  21. Refresh Data Streams(Optional)

It takes close to more than three hours to complete so let Claude do its work. Once the installation is complete, navigate to Sales Cloud and search for Mark Smith who is the featured unified profile. From Mark Smith’s profile, navigate to Details, then log in to Experience Cloud to try the logged-in user agent experience. All possible conversations are available in the video and in the “behind the scenes” section of Git repository.

claudeinstallationsummary

9. Access Experience Cloud and Test the MedTech Solution

Once installation is complete, use Mark Smith, the primary Experience Cloud user, to test the logged-in customer, Commerce, and Service Agentforce experiences.

Recommended Approach – Log in to Experience as User

Navigate to the Pulse Sync App → Accounts. Search for and open Mark Smith. From the account record, select Log in to Experience as User. The Experience Cloud site opens as Mark Smith and is ready for testing.
RecordPageImage

Alternative Approach – Direct Experience Cloud Login

Navigate to the Mark Smith Experience Cloud User and update the email address to one you can access. Reset the password and complete the password reset using the email you receive. Go to Setup → Domains and copy the Experience Cloud Sites Domain URL. Open https://ExperienceCloudSitesDomain/PulseSync. Log in using the Mark Smith username and the newly configured password.
RecordPageImage

Note: Log in to Experience as User is the recommended approach because it provides the quickest way to access the site without resetting the user's email or password.

Manual Installation

There are three required steps that allow you to set up Data 360, import structured and unstructured data, and configure the Employee agent within your Salesforce instance. After completing these steps, the Employee agent will be ready in your org. Steps 4 and 5 are optional — Step 4 deploys the service agent on your own website, and Step 5 deploys it on an Experience Cloud site. The Employee agent has the same functionality as the service agent.

Once the installation is complete, you can navigate to Sales Cloud or the Pulse Sync App and search for "Mark Smith" to view all the unified data that enriches Mark Smith's profile.

1. Pre-Deployment Instructions

Step 1. Salesforce Org Setup Requirements for the PulseSync App (5 min)

To support the PulseSync App, you can either create a new Salesforce org or use an existing Salesforce org that includes the following features and licenses:

Requirement Details
Licenses Required - Data Cloud
- Sales Cloud
- Service Cloud
- Health Cloud
- Health Cloud Platform
Features Required - Service Agent
- Einstein Agent
- Copilot
- Prompt Builder
- Agentforce Data Library
- Agentforce Studio
- Process Content - Document AI
- Notebook AI

[!IMPORTANT] It is recommended to start with a brand-new environment to avoid conflicts with any previous work you may have done. A developer org can also be used.

Step 2. Salesforce CLI

  • Install VS Code Download
  • Install the Salesforce CLI or verify that your installed CLI version is greater than 2.56.7 by running sf -v in a terminal.
  • Open VS Code >Go to > Extensions >Search for Salesforce Extension Pack >Click Install
  • Install Git (Ignore if already installed) Git
  • Open VS Code > Go to Extensions > Search for Git Extension Pack > Click Install

Step 3. Enable Data 360.

Step Action and Details Images
Verify and Enable Data Cloud for Your Org - Ensure that Data Cloud provisioning is complete before proceeding.
- To verify this, navigate to Data Cloud Setup. If provisioning is complete, the page will appear as shown.
- If you see a Get Started button, click it and wait for the provisioning process to complete.
- This process can take up to 10 minutes.
DatacloudSetup

Step 4. Enable Features In Your Environment (20 minutes)

Step Action and Details Images
Turn on Einstein - Go to Setup.
- In the Quick Find box, search for Einstein Setup.
- Click Turn On Einstein.
Einstein
Turn on Agentforce Note: You may need to refresh the page to see the Agentforce Agents menu after turning on Einstein.

- Go to Setup.
- In the Quick Find box, type Agentforce Agents.
- Toggle on Agentforce.
Agent1
Modify the Data Cloud Architect Permission Set - Go to Setup.
- In the Quick Find box, Search for and Select Permission Sets.
- Open the Data Cloud Architect permission set.
- Click Data Cloud Data Space Management under Apps.
- Click Edit, enable the default data space, and click Save.
- Confirm by clicking OK.
DSSpace2
Assign Health Cloud Permission Set Licenses to Admin User - Click on your Avatar (Profile Icon) in the top-right corner.
- Select Settings (or My Settings).
- In the left panel, navigate to Advanced User Details or Personal Information.
- Click View next to your user details.
- Scroll down to Permission Set License Assignments section.
- Click Edit Assignments.
- Search for Health Cloud, Health Cloud Platform licenses and add them.
- Click Save.
Enable Person Account - Go to Setup.
- Enter Person Accounts in the Quick Find box and select Person Accounts.
- Review the information and steps provided on the Setup page to understand the configuration.
- Turn on the Person Accounts toggle.
PS
Enable Notebook AI - Go to Setup.
- Search for Feature Manager and scroll down.
- Enable Notebook AI.
DSSpace4

Step 5. Base Metadata deployment

  1. Clone this repository:

    git clone https://git.soma.salesforce.com/gdevadoss/Data360MedTechSolutionKit.git
  2. Authorize your org using Salesforce CLI.

    Ctrl+Shift+P Select SFDX:Authorize an Org -> Select Project Default -> Enter the Org alias -> Authorize the Org.

  3. Assign the following Health Cloud Permission Sets to the Admin User.

    sf org assign permset -n HealthCloudFoundation
    sf org assign permset -n HealthCloudUtilizationManagement
    sf org assign permset -n DiseaseSurveillance
  4. Deploy the base app metadata.

    sf project deploy start -d ps-base
  5. Assign the Base Permission Set to Admin User.

    sf org assign permset -n PulseSyncBasePS
  6. Activate Standard PriceBook.

    sf apex run -f scripts/apex/activatePricebook.apex
  7. Replace the Standard Price Book variable in the JSON file with the actual Standard PricebookId by following the steps below in order. Choose PowerShell in VS Code Terminal

    $pbQuery = sf data query -q "SELECT Id FROM Pricebook2 WHERE IsStandard = true AND IsActive = true LIMIT 1" --json | ConvertFrom-Json
    $STD_PB_ID = $pbQuery.result.records[0].Id
    Write-Output "Standard Price Book Id: $STD_PB_ID"
    (Get-Content data\pricebookentries.json) -replace "STANDARD_PRICEBOOK_ID", $STD_PB_ID | Set-Content data\pricebookentries.json
  8. Import Sample data.

    sf data tree import -p data/plan.json
  9. Enable Data Cloud Copy Field Permissions.

    sf apex run -f scripts/apex/assignCopyFieldPermissions.apex

2. Data 360 Configuration

Step 1. Install Datakit and Deploy In Your Environment.

Step Action and Details Image
Install Data Kit - Install Data Kit:
sf project deploy start -d ps-datacloud

- Open your org (if it is not already open):
sf org open
Deploy Data Kit Into Your Org - Go to Setup.
- Enter Data Kits in the Quick Find box.
- Select Data360MedTechSolutionKit.
- Click Datakit Deploy.

Note: The deployment process may take approximately 25 minutes to complete. You can monitor the progress in the Deployment History section.
image

Step 2. Extract Source files.

Step Action and Details Image
Navigate to Documents folder in GitHub Repository - Open a web browser and go to GitHub.
- Once inside the repository, you will see the MedTech Documents at the root level.
- Click on Pre_Implant_Report to open the file.
- Click on Download to save it in your system.
Note: Follow the above procedure to download the following documents: Implant_Report, Call_Transcript, Post_Implant_Report, ClinicianNote_DischargeSummary, Initial_Interrogation, Last_Interrogation, Pacemaker Patient Guide, Mark_Smith_OP_Note. Ensure that all files are securely saved to your local system, as they will be required for subsequent processing and configuration steps.

Step 3. Configure Notebook AI Workspace

Step Action and Details Image
Notebook AI Workspace Setup
- Go to App Manager and search for Notebook AI.
-Go to Permission Set from Setup, Search for and Click Data Cloud User Permission set
-Click Clone button and Label the new permission set as Notebook AI Agent
- Open Notebook AI Agent permission set -> click Agent Access and add the Notebook Ai Agent in the permission set
-Assign the user you are using for Notebook Ai to the newly created Notebook AI Agent permission set from Manage Assignments.
- Click on New Notebook.
- Provide notebook name as Diagnosis.
- Under Personal Library, click on the (+) icon.
- Upload the following documents:
    (a) Pre_Implant_Report
    (b) Implant_Report
    (c) Call_Transcript
    (d) Post_Implant_Report
    (e) ClinicianNote_DischargeSummary
    (f) Initial_Interrogation
    (g) Last_Interrogation
Notebook AI Notebook AINotebook AI UploadNotebook AI Docs
Activate Notebook AI Agent - Go to Setup.
- In the Quick Find box, search for and select Agentforce Agents.
- Click on Notebook AI Agent.
- Click Open in builder.
- Check whether the agent is activated. If it is not activated, click Activate.
Notebook AINotebook AINotebook AI

Step 4. Agentforce Data Library Setup

Step Action and Details Image
Agentforce Data Library Setup and Files Upload - Go to Setup .
- In the Quick Find box, Search for and Select Agentforce Data Library.
- Click New Library.
- Enter the name Pacemaker Implant Guide
- Click Save.

-Under the Pacemaker Implant Guide library, set Data Type to Files → Click Upload Files.
- Choose the Pacemaker Patient Guide.pdf file (downloaded in the previous step) → Once the upload is complete, click Done.

-You can wait until the Status updates to Ready .This process may take approximately 20 minutes to complete.
Follow the steps described above to create the additional libraries:
i. Create a library named Patient Clinician Discharge And Interrogation Note, set the Data Type to Files and upload the ClinicianNote_DischargeSummary.pdf file that was downloaded in the previous step.
ii. Create a library named Patient OP, set the Data Type to Files and upload the Mark_Smith_OP_Note.pdf file that was downloaded in the previous step.
Notebook AINotebook AINotebook AI

Step 5. Configure Document AI.

Step Action and Details Image
Create Document AI - Open Data Cloud App from App launcher.
- Search for and Select Process Content.
- Click Document AI.
- Click New button>>Select the From a Source Object option>>Click Next.
- Select an Unstructured Data Model Object as ADL_Patient_Op__dlm.
- Click Next button.
- Enable toggle for PDF under Select File Types and click Next.
- Select OpenAI GPT-4o option under Select a Large Language Model and click Next.
- Click Add and select New.
- Enter Data Lake Object Name as DAI Patient OP and the API Name will auto populate.
- Click Next.
- Upload the file as Mark_Smith_OP_Note.PDF and select Using Auto-Extraction option and click Next.
- Once the fields are extracted, create the remaining field by referring the screenshot.
- Click the Add Field button, enter the Name and select field type as String and again click Add.
- Click Save, then click next.
- Enter Document Schema Name as DIA Patient OP Schema and click Save.
docAi1 docAi2 docAi3 docAi4 docAi5 docAi6 docAi7 docAi7
Create Search Index for Document AI - Open Data Cloud App from App launcher.
- Search for and Select Search Index>>Click New
-Select Easy Setup and click Next
-Select DAI Patient OP DMO and click Next
-Click Save
docAi8 docAi9
Create Retriever for Document AI - Open Data Cloud App from App launcher.
- Search for and Select AI Models >>Select Retrieve >>Click New Retriever
-Select Individual Retriever and click Next
-Click Data Cloud and Select default value for In which data space does the source data reside? , Select DAI Patient Op as Select a data model object,Select DAI Patient OP Search Index >>Click Next
-Select All Documents and click Next
-Click Field Name >> Select Direct Attribute >> Select DIA Patient OP >> Select atrialLeadModel
- Click Add Field >> Add the fields by referring screenshot
-Click Save
-Click Activate
docAire1 docAire2 docAire3

Step 6. Upload Files for Datastreams.

Step Action and Details Image
Update File in Data Cloud - Navigate to Data Cloud from the App Launcher
- Navigate to Data Streams (sometimes under Data → Data Streams).
- Click pacemaker_iot_data where the Connection Type is set to File Upload.
- Click Update File in the Data Stream interface to open the file selection dialog.
- Upload the new file:
- Browse and select the pacemaker_iot_data file that was downloaded in the previous step.
- Ensure the file matches the expected format (CSV, JSON, etc.).
- Click Deploy.
- Verify the file in the Data Stream:
- Optionally, check Processing History or Deployment History to ensure the file was ingested successfully without errors.
uploadfile1 uploadfile2
Data Cloud Copy Field Enrichment Sync - Navigate to Object Manager.
- Search for and Select Contact.
- Click Data Cloud Copy Field.
- Select Pacemaker Patient Health Summary default
- Click Start Sync.
- In the dialog box, click Start Sync.
- This process can take up to 15 minutes to complete.
- Click Sync History to ensure the status is Complete.
Note: Ensure that the sync status for each field is verified and confirmed.
imageimageimage
Data Cloud Related List to the Contact - Go to Object Manager.
- Search for and Select Contact.
- Go to the Data Cloud Related List tab.
- Click New.
- Under Data Cloud Object, select pacemaker_iot_data and click Next.
- Keep the default values and click Next.
- Change the related list label to Pacemaker IOT.
- Check the Contact Layout checkbox.
- Check the Add related list to users’ existing record page customizations checkbox.
- Click Next.
imageimageimage

Step 7. Refresh Data 360 Components

Step Action and Details Images
Refresh Data Stream - Go to App Launcher
- Click on the Data Cloud App
- Navigate to the Data Streams tab
- For each data stream listed, click the downward arrow on the right-hand side of the data stream name and select Refresh Now
- Wait until the status shows Success and verify the Last Processed Records
- Follow above steps one by one for all Data Streams: Account_Home, Contact_Home,Case_Home, Product2_Home, Pricebook2_Home, PricebookEntry_Home, Asset_Home, Task_Home, Entitlement_Home, ServiceAppointment_Home, AllergyIntolerance_Home, CodeSet_Home, CodeSetBundle_Home, Medication_Home, PatientMedicalProcedure_Home, HealthCondition_Home,MedicationRequest_Home
image
Run Identity Resolution Ruleset - Go to the Identity Resolution tab
- Choose and select Unify Patient IOT Data
- Click Run Ruleset
image
Run Calculated Insights - Go to the Calculated Insights tab
- Choose and select Pacemaker Latest Transmission
- Click Publish Now
- Follow the above steps for the following calculated insight :
- Pacemaker Patient Health Summary
- Click Run Publish Now
image
Publish Segment - Go to the Segment tab.
- Choose and select Anomalous Pacemaker Battery.
- Click Run Publish Now
image

⚠️ Important Note: If you still cannot see the values under Account 360 Record page then follow the above refresh steps again in the same series.

3. Agentforce Agents Installation

Step 1. Install Agents and Activate

Step Action and Details Image
Agent Setup and Configuration - Install Agents:
sf project deploy start -d ps-post-pack
Note: If the command throws an error for the FlexiPage
update the key from pacemaker_iot_data__pr to pacemaker_iot_data1__pr

- Assign Permission Set to the Default User:
sf org assign permset -n PulseSyncCustomPS.

- Activate Agent:
sf agent activate --api-name Clinician_Copilot

- Create Agent User:
sf apex run -f scripts/apex/createAgentUser.apex

- Create ClinicalCareCoordinator User:
sf apex run -f scripts/apex/createCareCordinatorUser.apex

- Open your org (if not already open):
sf org open.
Assign User to Service Agent - Click Setup
-Search for and Select Agentforce Agents.
- Click PulseMedAssistant
-Click Agent Access and select canvas mode
-Select the agent user created in previous step under Agent User Record Field
-Click Save
-Click Commit Version
-Click Activate
image
Add Pacemaker Implant Guide Retriever - Go to Setup → enter Prompt Builder
Open Monitor Troubleshoot Support prompt template
- Replace ADL_PACEMAKER_IMPLANT with a retriever:
  i. Click Insert Resource → Retrievers → Configure Retrievers
  ii. Select the retriever created by the ADL when you uploaded the file for Pacemaker Implant Guide(Eg:File_ADL_JYHi_Pacemaker )
  iii. Under Search Text, choose Free Text → Question
  iv. For Output Fields, select Chunk → Apply and Insert
  v. Click Save As → Save as New Version → Activate.

Note: Follow the above step for adding Retriever to the below Prompt Templates:
i. Post Implant Care
ii. PacemakerDetailsForGuest
iii.DeviceRegulatoryInfo
iv.HomeMonitorSetupGuide
v. WarrantyDurationDetails.
imageimageimage
Add Patient Implant Op Retriever - Go to Setup → enter Prompt Builder
Open Patient Implant Op Prompt prompt template.
- Replace DAI_SI_Patient_OP_Retriever with a retriever:
  i. Click Insert Resource → Retrievers → Configure Retrievers
  ii. Select the retriever created manually for Document AI (Eg:DAI Patient OP Retriever)
  iii. Under Search Text, choose Free Text → Id and Question.
  iv. For Output Fields, select deviceModel, deviceSerial,implantSite and patientName → Apply and Insert
  v. Click Save As → Save as New Version → Activate.
image
Add Patient Summary Retriever - Go to Setup → Enter Prompt Builder
Open Patient30DaysSummary prompt template
- Click on the Apex class and verify if the Input:Id has been assigned to Account Input.
- Replace DAI_PATIENT_OP with a retriever:
  i. Click Insert Resource → Retrievers → Configure Retrievers
  ii. Select the retriever created by Document AI (Eg:DAI Patient OP Retriever)
  iii. Under Search Text, choose Free Text → Id.

- Replace ADL_PATIENT_CLINIC with a retriever:
  i. Click Insert Resource → Retrievers → Configure Retrievers
  ii. Select the retriever created by the ADL when you uploaded the file for Patient_Clinician_Notes(Eg:File_ADL_Patient_Clinici)
  iii. Under Search Text, choose Free Text → Question→ Apply and Insert
  iv. Click Save As → Save as New Version → Activate
imageimage
Add Patient 6 Month Summary Retriever - Go to Setup → enter Prompt Builder
Open PatientSummary60Days prompt template.
- Replace ADL_PATIENT_CLINIC with a retriever:
  i. Click Insert Resource → Retrievers → Configure Retrievers
  ii. Select the retriever created by the ADL when you uploaded the file for Patient_Clinician_Notes(Eg:File_ADL_Patient_Clinici )
  iii. Under Search Text, choose Free Text → Id and Question.
  iv. For Output Fields, select Chunks → Apply and Insert
  v. Click Save As → Save as New Version → Activate.
Assigning Permission to App - Go to Setup
- Search for App Manager
- Click Pulse Sync App
- Click Edit from arrow.
- Click User Profiles
- Search System Administrator from Available Profiles and select it and click on right arrow -> so it will be present under Selected Profiles
- Click on Save
imageimage
Activate Account Record Page - Go to Setup.
- In Quick Find, Search for and Select Lightning App Builder.
- Click Patient Account Page from the list.
- Click on Edit.
- In the top-right corner, click Activate.
- Click on Assign as Org Default in the popup
- Click Save
imageimage

4. (Optional) Configure Commerce Cloud and Experience Cloud

Step 1. Experience Cloud Setup

Step Action and Details Images
Enable Commerce Cloud - From Setup, enter Commerce in the Quick Find box.
- Select Settings under Commerce.
- Turn on Enable Commerce.
CommerceEnable
Create an Experience Site - From Setup, enter Digital Experiences in the Quick Find box -> Select All Sites under Digital Experiences.
- Click New to open the Creation wizard with template options and Select the Commerce Store (LWR) template.
- Click Get Started.
- Provide Store Name as ‘PulseSync’ and ensure the URL ends with /PulseSync
- Click Create. Your site will be created in Preview status.
CommerceLwrTemplate CommerceLwrTemplate
Activate Site - From Setup, enter Digital Experiences and select All Sites under Digital Experiences.
- Click Workspaces next to PulseSync.
- Select Administration.
- In Settings, click Activate and confirm by clicking OK.
- Your site will now be live and fully set up.
ExpSiteActive
Register Site Setting - Go to Domains from Setup under User Interface and copy the Experience Cloud Sites Domain.
- Search for and Select Sites from User Interface >>Click on the Site Label for ESW Web Deployment site.
- Under Trusted Domains for Inline Frames, click New.
- Paste the copied domain URL and click Save.
registersite registersite1
Digital Experience - From Setup, search for Digital Experiences and click on Settings under Digital Experiences.
- Select the Allow using standard external profiles for self-registration, user creation, and login checkbox
- click OK in the dialog box and Click Save .
SiteSetting
Experience Cloud Automated Setup - Deploy Experience cloud package
sf project deploy start -d ps-pd-experience-optional

- Create Experience Site User
sf apex run -f scripts/apex/createSiteUser.apex
CORS Configuration - From Setup, search for CORS and click New.
- Add https://*.my.salesforce-scrt.com and Save.
- From Setup, Search for and Select Domains under User Interface.
- Copy the My Domain URL and the Experience Cloud Sites Domain.
- Add both URLs separately in CORS, ensure it starts with https:// and click Save.
- Click New and Add.
https://*.my.salesforce-scrt.com
Cors1 CorsExt
Trusted URL - Go to Domains under User Interface and copy the Experience Cloud Sites Domain.
- From Setup, search for Trusted URLs and click New Trusted URL.
- Enter the Name as PulseSync and paste the copied domain URL, ensuring it starts with https://.
- Make sure to select all the CSP directives.
- Click Save.
TrustedUrl1
Update CSP Trusted URL - Go to Domains under User Interface and copy the Experience Cloud Sites Domain url.
- From Setup, Search for and Select All Sites and Click Builder next to PulseSync.
- Click Setting and click Security & Privacy
- Scroll down to Trusted Sites for Scripts section and edit the Site Url and paste the Experience Cloud Sites Domain URL and click on Update.
- Publish the Site
CSP

Step 2. Commerce Cloud Setup

Step Action and Details Images
Enable Search Index - Click on App Launcher, Search for and Select Commerce application.
- Scroll down to Settings and expand it
- Click on Search
- Use the toggle to turn on Automatic Updates.
Si
Enable Guest access - Click on the App Launcher, Search for and Select the Commerce application.
- On the left-hand side, click Stores under Settings.
- Navigate to the Buyer Access tab.
- Scroll down to the Guest Access section.
- Click on Enable button and click on Continue.
GuestAccess
Assign Guest User to Buyer Group - In the PulseSync store, On the left-hand side, click Stores under Settings >> Click on Buyer Access Tab
- Click on PulseSync Guest Buyer Profile under Guest Access .
- Click on Related ->Click on Buyer Groups , Click on Assign Button
-Select the checkbox for PulseSync Buyer Group and click on Assign Button
GuestBuyerGrp
Assign Customer User to Buyer Group - Go to the App Launcher, search for Accounts, and open it.
- Open the Mark Smith account and click Enable as Buyer.
- In PulseSync commerce store, navigate to Settings > Buyer Access.
- Open the PulseSync Buyer Group.
- Under Buyer Group Members, click Assign, search for Mark Smith ,Select the checkbox and click Assign.
MarkSmith
Execute Commerce Script - Create Commerce Data:
sf apex run -f scripts/apex/createCommerceData.apex

- Create Store Pricebook:
sf apex run -f scripts/apex/storePricebookCreation.apex
Create CMS Workspace - Click on the App Launcher >> Select the Commerce application >> Select PulseSync Store
- Scroll down to Content Manager
- Click on Add workspace >> Enter details such as Name PulseSync CMS Images.
- click on Next
- Add PulseSync Channel and PulseSync.
- Click Next
- Keep language as it is and click on Finish
CMSWorkspace
CMSWorkspace1
Adding Images into CMS - Download Images from Link CMS Images
- Click on the App Launcher >> Select the Commerce application >> Select PulseSync Store
- Scroll down to Content Manager
- Open PulseSync CMS Images.
- click on Add >>Select Content >>Select Image and click on Create button.
- Click Upload and select the downloaded images from local and click Done.
- Copy the Title and paste the value in API Name field.
- Click Save >>click Publish and click on Next and Click on Publish Now.
- Follow the above steps for the remaining images.
AddingCMS1 AddingCMS2
Link Image to a Product - Click the App Launcher.
- Select the Commerce application.
- Open Stores and select PulseSync.
- Navigate to Merchandise > Products and open the required product.
- Scroll down to the Media section.
- Click Add and select Add Image from Library>>Select PulseSync CMS Images library.
- Choose the appropriate image from PulseSync CMS Images workspace and click Add.
- Click Save.
LinkPrdImage LinkPrdImages1
Publish Website Design - Click on the App Launcher.
- Select the Commerce application >> select PulseSync store.
- Scroll down to Website Design>> From the dropdown, select Home then click Publish>> Publish Product as well as Category.
- Go back to the PulseSync store.
- Click Home, then click Preview to verify that the products are displayed on the site.
PublishCommerce
Update Search Index - From PulseSync commerce store>> Click Setting >>Click Search.
- Under Search Index Tab >> Click on Update Button on the top Right corner.
- Select Full Update.
- The product will be available in ExperienceSite once the update is complete.
SIupdate

Step 3. Configure Experience Site Images from CMS Workspace

Step Action and Details Images
Add Site Logo - From Setup, search for All Sites and click Builder next to PulseSync.
- On the top-left corner, click on the Site Logo and click on Clear Image
- Click Select Image from CMS and choose the PulseSynclogo image from PulseSync CMS Images library
- Scroll to the bottom, select the Footer Logo >>Click Clear Image and update it by selecting the same image from CMS.
SiteLogo SiteLogo1
Configure Background Images - Click Background Image(Banner) section in Experience Builder and Click Clear Image button under Settings
- Click Select Image from CMS and choose the healthcloudbanner as per screenshot from PulseSync CMS Images library >>Click Save
- Scroll to the middle of the page to locate the Left and Right Background Image sections.
- Select pulsesyncbanner2 image for the Left section
Select pulsesyncbanner1 image for right section. Refer to the Screenshot
-Click Save
-Click Publish button
banner1 banner3 banner3

Step 4. Deploy Service Agent on an Experience Site

Step Action and Details Image
Enable Messaging Channel - Navigate to Setup >> Search for and Select Messaging Setting.
- Toggle on Messaging.
MSEnable
Configure Site Setting - In Setup, Search for and Select Sites and click Register My Salesforce Site Domain. RegisterDomain
Embedded Service Package Installation - Install Embedded Service Package:
sf project deploy start -d ps-embeddedservice.
Activate Messaging Channel - Activate Messaging Channel:
sf apex run -f scripts/apex/activateMessagingChannel.apex
Publish ESA - Click on Setup.
- In Quick Find, Search for and Select Embedded Service Deployments.
- Click on ESA Web Deployment.
- Click on 'Publish' button.
- Hold for a confirmation Message.
RouteEsa
Create a New Version of Omni-Channel Flow - Click on Setup.
- Search for Flows in the Quick Find box and select it.
- Open the flow Route Conversations to Agentforce Service Agents.
- Deactivate the flow and open the Route to Service Agent element.
- Refresh the Service Channel by selecting a different option and then reselect Live Messaging.
- Set Route To as Agentforce Service Agent and choose PulseMedAssistant.
- In Fallback Queue ID, remove the existing queue and reselect the same queue.
- Click Save As New Version, then click Activate.
RouteEsa

Step 5.Access Experience Cloud and Test the MedTech Solution

Once installation is complete, use Mark Smith, the primary Experience Cloud user, to test the logged-in customer, Commerce, and Service Agentforce experiences.

Recommended Approach – Log in to Experience as User

Navigate to the Pulse Sync App → Accounts. Search for and open Mark Smith. From the account record, select Log in to Experience as User. The Experience Cloud site opens as Mark Smith and is ready for testing.
RecordPageImage

Alternative Approach – Direct Experience Cloud Login

Navigate to the Mark Smith Experience Cloud User and update the email address to one you can access. Reset the password and complete the password reset using the email you receive. Go to Setup → Domains and copy the Experience Cloud Sites Domain URL. Open https://ExperienceCloudSitesDomain/PulseSync. Log in using the Mark Smith username and the newly configured password.
RecordPageImage

Note: Log in to Experience as User is the recommended approach because it provides the quickest way to access the site without resetting the user's email or password.

5. (Optional) Deploy the Service Agent to an External Website

Step 1. Embedded Service Messaging Setup and Configuration

Step Action and Details Image
Enable Messaging Channel - Navigate to Setup >> Search for and Select Messaging Setting.
- Toggle on Messaging.
MSEnable
Embedded Service Package Installation - Install Embedded Service Package:
sf project deploy start -d ps-embeddedservice.
Configure Site Setting - In Setup, Search for and Select Sites and click Register My Salesforce Site Domain.
- After registration, open the Embedded Service Deployment and locate the Site Endpoint that starts with ESW (ESA Web Deployment).
- Click the endpoint link to open the site settings.
- Under Trusted Domains for Inline Frames, click Add Domain.
- Enter the same external website URL used earlier.
- Click Save.
RegisterDomain RegisterDomain1
Activate Messaging Channel - Activate Messaging Channel:
sf apex run -f scripts/apex/activateMessagingChannel.apex
Publish ESA - Click on Setup.
- In Quick Find, Search for and Select Embedded Service Deployments.
- Click on ESA Web Deployment.
- Click on 'Publish' button.
- Hold for a confirmation Message.
ESApublish
Create a New Version of Omni-Channel Flow - Click on Setup.
- Search for Flows in the Quick Find box and select it.
- Open the flow Route Conversations to Agentforce Service Agents.
- Deactivate the flow and open the Route to Service Agent element.
- Refresh the Service Channel by selecting a different option and then reselect Live Messaging.
- Set Route To as Agentforce Service Agent and choose PulseMedAssistant.
- In Fallback Queue ID, remove the existing queue and reselect the same queue.
- Click Save As New Version, then click Activate.
RouteEsa

Step 2. CORS Configuration

Step Action and Details Image
Configure CORS Settings - From Setup, Search for and Select CORS >> click New.
- Enter the external website URL. Do not include a trailing “/”.
- Click New and Add.
https://*.my.salesforce-scrt.com
CorsExt

Step 3. Trusted URL Configuration

Step Action and Details Image
Configure Trusted URL - In Setup, search for Trusted URLs and select it, then click New Trusted Domain.
- Enter the API Name and URL — use the same external site URL provided earlier.
- Select frame-src (iframe content).
- Click Save.

Step 4. Get Embedded Service Deployment Code Snippet

Step Action and Details Image
Script for Executing Agent in External Site - From Setup, search for Embedded Service Deployments.
- Select ESA Web Deployment, scroll down, and click Install Code Snippet.
- Copy the code snippet.
Codesnippet

Step 5. Verify the Agent on the External Website

That’s it! You’re all set. The Agentforce widget should now be visible on your external website.

6. (Optional) YouTube Connection Setup

Step 1. Setup YouTube Connection

Step Action and Details Images
Create YouTube Connection - Go to Data Cloud Setup >> Search for and Select Other Connectors>>Click New
-Search for YouTube and click it >>Provide Name as YouTube, Enter Client Id, Client Secret, Refresh Token and Channel Id
-Click Test Connection to verify the connection is established, then click Save
youtube

Step 2. Create Data Lake Object and Retriever For YouTube

Step Action and Details Images
Create DLO - Go to Data Cloud app from App launcher>>Click Data Lake Object Tab >>Click New
-Select From External Files>>Select YouTube>>Click Next
Select the Connection as YouTube >>Select 15 March 2026 as Creation Date>>Click Next
-Enter Object Name as Youtube Pacemaker Videos>> Select New >>Again enter Object Name as Youtube Pacemaker Videos and click Next
-Select Enable semantic search with system defaults checkbox and click on Save
-Verify the YouTube Pacemaker Videos search index has been created and proceed only after the status is marked Ready.
youtubeDLO youtubeDLO2
Create Retriever For YouTube -Navigate to Data Cloud app from App launcher>>Click AI Models Tab >>Click Retrieve>>Click New Retriever
-Select Individual Retriever >> Click Next
-Click Data Cloud and Select default value for In which data space does the source data reside? , Select Youtube Pacemaker Videos as Select a data model object,Select Youtube Pacemaker Videos Search Index >>Click Next
-Select All Documents and click Next
-Click Field Name >> Select Related Attribute >> Select Youtube Pacemaker Videos Chunk >> Select Chunk
-Click Add Field and add the fields shown in the screenshot
Click Save, then click Activate
youtubeRet youtubeRet youtubeRet youtubesi

Step 3. Creation of Prompt Template

Step Action and Details Images
Create Prompt Template -Go to Setup>>Search for and Select Prompt Builder>>Select Template Type as Flex
-Enter Name as Pacemaker Video Content Prompt >> Add an input with the Name Question and select Free Text as the Source Type>>Click Next
-Refer to the screenshot to add the prompt details
- Place the retriever as shown in the screenshot:
  i. Click Insert Resource → Retrievers → Configure Retrievers
  ii. Select the retriever manually created for Youtube(Eg:Youtube Pacemaker Videos Retriever )
  iii. Under Search Text, choose Free Text → Question
  iv. For Output Fields, select Chunk → Apply and Insert
-Click Save, then click Activate
youtubepmp youtubepmp1

Step 4. Add the Prompt Template into Agent

Step Action and Details Images
Create Agent Action -Go to Setup>>Search for and Select Agentforce Assets>>Click Action >>Click New Agent Action
-Select Action Type as Prompt Template>>Select Pacemaker Video Content Prompt and Click Next
-Refer to the screenshot when adding the Agent Action Description and Input Description. For the Output Variable (Prompt Response), select the Show in conversation checkbox
-Click Save
youtubeaction youtubeaction
Create Agent Topic -Go to Setup>>Search for and Select Agentforce Agents>>Click PulseSync Assistant and click open builder>>Deactivate agent
-Click New, select New Subagent, and click Next>>Enter Pacemaker Post-Op Care Video Content as the Name
-Enter the Topic, Description, Scope, and Instructions as shown in screenshot and click Next
-Select the Pacemaker Video Content Prompt action and click Finish.
-Activate the Agent
youtubetopic

Behind the Scenes - how is the agent powered?

Curious to see all possible utterances and how they are powered by the Agent. Here is a list of all the possible conversations, the corresponding topics(Subagent), and the components that power them.

$${\color{blue} A \space guest \space user \space asks \space general \space Pacemaker \space related \space details \space through \space the \space Service \space Agent(PulseMedAssistant) \space deployed \space on \space the \space external \space website.}$$
Sl. No. Utterance Behind the Scene Topic Components
1. MY DAD MAY NEED A PACEMAKER—WHAT ARE THE OPTIONS AND WHAT’S THE PROCESS? Reads unstructured data from PDF that has been ingested into Data Cloud, where it is chunked, vectorized, and indexed for easy retrieval and added the retriever to the prompt. Pacemaker Guide Info a) Prompt
PacemakerDetailsForGuest

b) Retriever
File_ADL_JYHi_Pacemaker

c)Search Index
ADL_JYHi_Pacemake
2. IS YOUR PACEMAKER FDA-APPROVED/CLEARED? Reads unstructured data from PDF that has been ingested into Data Cloud, where it is chunked, vectorized, and indexed for easy retrieval and added the retriever to the prompt. Pacemaker Guide Info a) Prompt
PacemakerDetailsForGuest

b) Retriever
File_ADL_JYHi_Pacemaker

c)Search Index
ADL_JYHi_Pacemake
3. HOW LONG IS THE WARRANTY AND WHAT DOES IT COVER? Reads unstructured data from PDF that has been ingested into Data Cloud, where it is chunked, vectorized, and indexed for easy retrieval and added the retriever to the prompt. Pacemaker Guide Info a) Prompt
PacemakerDetailsForGuest

b) Retriever
File_ADL_JYHi_Pacemaker

c)Search Index
ADL_JYHi_Pacemake
4. HOW DO I SETUP MY REMOTE MONITOR APP? Reads unstructured data from PDF that has been ingested into Data Cloud, where it is chunked, vectorized, and indexed for easy retrieval and added the retriever to the prompt. Pacemaker Guide Info a) Prompt
PacemakerDetailsForGuest

b) Retriever
File_ADL_JYHi_Pacemaker

c)Search Index
ADL_JYHi_Pacemaker

$${\color{blue} For \space Logged-In \space User \space on \space Service \space Agent(PulseMedAssistant) \space is \space Deployed }$$ There is a single contact populated with all the relevant information needed to drive these conversations — Mark Smith. By using this contact, you can log in to Experience Cloud and have full conversations.

Sl. No. Utterance Behind the Scene Topic Components
1. HELP ME SET UP THE HOME MONITOR. Prompt invokes an apex class which fetches the patient's purchased home monitor like name,model,device type, os version and returns these details to the prompt. Prompt also invokes a retriever which reads unstructured data of Home Monitor Setup Instructions from PDF that has been ingested into Data Cloud, where it is chunked, vectorized, and indexed for easy retrieval. Patient Post Implant Support a) Prompt
HomeMonitorSetupGuide

b) Apex Class
getStructuredData

c) Retriever
File_ADL_JYHi_Pacemaker

d)Search Index
ADL_JYHi_Pacemaker
2. WHAT’S THE WARRANTY/COVERAGE FOR MY IMPLANTED DEVICE AND MONITOR Prompt invokes an apex class which fetches the patient's purchased home monitor warranty details like name, start date and end date and also calculates whether the home monitor warranty is active or inactive and returns the warranty details to the prompt. Prompt also invokes a retriever which reads unstructured data of warranty coverage instructions from PDF that has been ingested into Data Cloud, where it is chunked, vectorized, and indexed for easy retrieval. Patient Post Implant Support a) Prompt
WarrantyDurationDetails

b) Apex Class
getStructuredData

c) Retriever
File_ADL_JYHi_Pacemaker

d)Search Index
ADL_JYHi_Pacemaker
3. WHAT PRECAUTIONS SHOULD I TAKE AFTER IMPLANT? Reads unstructured data from PDF that has been ingested into Data Cloud, where it is chunked, vectorized, and indexed for easy retrieval and added the retriever to the prompt. Patient Post Implant Support a) Prompt
Post Implant Care

b) Retriever
File_ADL_JYHi_Pacemaker

c)Search Index
ADL_JYHi_Pacemaker
4. MY MONITOR ISN’T TRANSMITTING—HOW DO I TROUBLESHOOT? Reads unstructured data from PDFs ingested into Data Cloud, where it is chunked, vectorized, and indexed for efficient retrieval. The retriever is incorporated into the prompt, which invokes an Apex class to fetch the patient’s pacemaker IoT details and verify whether the device is functioning properly. Patient Post Implant Support a) Prompt
Monitor Troubleshoot Support

b) Apex Class
getStructuredData

c) Retriever
File_ADL_JYHi_Pacemaker

d)Search Index
ADL_JYHi_Pacemaker
5. CAN YOU SCHEDULE A REMOTE DEVICE CHECK The prompt suggests three available upcoming dates for a remote device check and creates a service appointment based on the user’s selected date Patient Post Implant Support a) Flow
Appointment Date Suggestion
Create Service Appointment
Abnormal Readings Alert
6. BOOK AN APPOINTMENT WITH MY CARDIOLOGIST Creates a task to schedule a cardiologist appointment and assigns it to the Clinic Care Coordinator. Patient Post Implant Support a) Flow
Cardiologist Appointment
7. Can you summarize my last 6 months for my primary care doctor? Prompt invokes an apex class which returns the patient's last 6 months pacemaker telemetry details , case history . Prompt also invokes a retriever clinical follow-up notes and summarizes these details. Patient Post Implant Support a) Prompt
PatientSummary60Days

b) Apex Class
getStructuredData

c) Retriever
File_ADL_Patient_Clinici

d)Search Index
ADL_Patient_Clinici

$${\color{blue} For \space Employee \space Agent }$$ There is a single contact populated with all the relevant information needed to drive these conversations — Mark Smith. You can access the contact record page for this contact to have full conversations.

Sl. No. Utterance Behind the Scene Topic Components
1. SUMMARIZE THIS PATIENT’S LAST 30 DAYS AND FLAG ANYTHING ABNORMAL Prompt invokes the apex class which returns patient name,some pacemaker telemetry data . Prompt also invokes Retriever which reads the last interrogation note,call transcript,implant report from PDF for the identified Patient from the apex class and provides a concise summary for 30 days. Patient Implant Operation Note a) Prompt
Patient30DaysSummary

b) Apex Class
getSmmarizePatientDetails

c)Retriever
DAI SI Patient OP Retriever
File_ADL_Patient_Clinici

d) Search Index
DAI SI Patient OP
ADL_Patient_Clinici
2. CAN YOU EXTRACT LEAD MODEL/SERIAL AND IMPLANT SITE? Prompt invokes an apex class which returns patient name,Device Model No, Device Serial No and Implant Site. Prompt also invokes a Retriever which reads the Patient clinical history from PDF and also updates the Device Model No., Device Serial No., Implant Site in the patient records. Patient Implant Operation Note a) Prompt
Patient Implant Op Prompt


b) Apex Class
PulseSyncUtil

c)Retriever
DAI SI Patient OP Retriever

d) Search Index
DAI SI Patient OP
2. CREATE A FOLLOW-UP PLAN BASED ON OUR PROTOCOL Prompt invokes the flow which creates a follow-up task for the patient and provides instructions to the patient. Patient Follow Up Details a) Prompt
Patient Follow Up plans


b) Flow
FollowUp Plan Based Tasks

About

A deployable sample E2E application that shows how Data 360 powers Agentforce, showcases the use of structured,unstructured & IoT data in Agentic conversations in a Medical Device Scenario. Uses Data 360, Sales Cloud, Commerce Cloud and Experience Cloud.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages