To support the PulseSync app, you can either create a new Salesforce Org or use an existing one, provided it 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 - DocumentAI - NotebookAI |
[!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.
- Install VSCode Download
- Install the Salesforce CLI or Verify that your installed CLI version is greater than
2.56.7by runningsf -vin 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
-
Clone this repository:
git clone https://git.soma.salesforce.com/gdevadoss/Data360MedTechSolutionKit.git
-
Authorize your org with the Salesforce CLI.
Ctrl+Shift+P Select SFDX:Authorize an Org -> Select Project Default -> Enter the Org alias -> Authorize the Org.
-
Assign below Health Cloud Permission Sets to the Default User.
sf org assign permset -n HealthCloudFoundation sf org assign permset -n HealthCloudUtilizationManagement sf org assign permset -n DiseaseSurveillance
-
Deploy the base app metadata.
sf project deploy start -d ps-base
-
Assign Base Permission Set to Default User.
sf org assign permset -n PulseSyncBasePS
-
Activate Standard PriceBook.
sf apex run -f scripts/apex/activatePricebook.apex
-
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
-
Import Sample data.
sf data tree import -p data/plan.json
-
Enable Data Cloud Copy Field Permissions.
sf apex run -f scripts/apex/assignCopyFieldPermissions.apex
| 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 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 | 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. |
That’s it! You’re all set. The Agentforce widget should now be visible on your external website.
| Step | Action and Details | Images |
|---|---|---|
| Enable Search Index | - Click on App Launcher, Search and Select Commerce application. - Scroll down to Setting and expand it - Click on Search - Use the toggle to turn on Automatic Updates. |
![]() |
| Enable Guest access | - Click on the App Launcher, search for and select the Commerce application and select PulseSync. - 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. |
![]() |
| 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 |
![]() |
| 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. |
![]() |
| 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 |
![]() |
| Adding Images into CMS | - 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. |
![]() |
| Link Image to a Product | - Download Images from Link CMS Images - Click the App Launcher. - Select the Commerce application. - Open Stores and select PluseSync. - 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. |
![]() |
| Publish Website Design | - Click on the App Launcher. - Select the Commerce application >> select PluseSync 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. |
![]() |
| Update Search Index | - From PluseSync 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. |
![]() |
Behind the Scenes - how is the agent powered?
Curious to see the all possible utterances and how they are powered by the Agent. Here is a list of all the possible conversations, the corresponding topics, and the components that power them. | 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 into 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 into 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 into 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 into prompt. | Pacemaker Guide Info | a) Prompt PacemakerDetailsForGuest b) Retriever File_ADL_JYHi_Pacemaker c)Search Index ADL_JYHi_Pacemaker |
| Sl. No. | Utterance | Behind the Scene | Topic | Components |
|---|---|---|---|---|
| 1. | HELP ME SET UP THE HOME MONITOR. | Prompt Invoke apex class which fetch the patient purchased home monitor like name,model,device type, os version and return these details to prompt. Prompt also invoke 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 Invoke apex class which fetch the patient purchased home monitor warranty details like name, start date and end date and also calculated home monitor warranty is in warranty or not return the warranty details to prompt. Prompt also invoke 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 into 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 apex class which return the patient last 6 months pacemaker telemetry details , case history . Prompt also invoke retriever clinical follow up notes. Prompt summarize 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 |
| Sl. No. | Utterance | Behind the Scene | Topic | Components |
|---|---|---|---|---|
| 1. | SUMMARIZE THIS PATIENT’S LAST 30 DAYS AND FLAG ANYTHING ABNORMAL | Prompt Inovke the apex class which returns patient name,some pacemaker telemetry data . Prompt also invoke Retriever which reads the last interrogation note,call transcript,implant report from PDF for the identified Patient from the apex class and Provide 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 Inovke the apex class which returns patient name,Device Model No, Device Serial No and Implant Site. Prompt also invoke Retriever which reads the Patient clinical history from PDF and also update Device Model No, Device Serial No, Implant Site into patient records. | Patient Implant Operation Note | a) Prompt Patient Implant Op Prompt b) Apex Class PluseSyncUtil 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 invoke the flow which create follow up task for patient along with provide some instructions to patient | Patient Follow Up Details | a) Prompt Patient Follow Up plans b) Flow FollowUp Plan Based Tasks |





.png)













































































