Synchronize tasks and touchpoints with Salesforce

Who can use this feature?

While Totango may be the main platform for your CS teams, other teams in your company may use Salesforce for work, task management, and customer engagements. Using inbound and outbound integration jobs, you can ensure that your teams have relevant information in both systems for task, touchpoint, and campaign touches.

  1. View and update Totango activity in Salesforce as account activity, task events, or a custom Salesforce object (bi-directional). 

    Example: Create a task in Totango and assigning it to a user. The user can review the task in Totango or Salesforce and act on it. Any updates to the task appear in both systems.&nbsp
  2. View and update Salesforce activity in Totango (bi-directional).

    Example: Touchpoints created in Totango can be synced to Salesforce as an account activity event. Afterward, a Salesforce user can change the touchpoint information, which will be synced to Totango in the next sync schedule.
  3. View Totango campaign touches in Salesforce events (outbound only)

Set up bi-directional sync

To enable bi-directional sync, create two separate integration jobs (tasks inbound/tasks outbound or touchpoints inbound/touchpoints outbound). The bi-directional sync relies on the same object and data field mapping for Account ID & External ID. If there is an update conflict (e.g., the same task was updated both in Totango and Salesforce before the next sync job executed), the last update wins.

External ID is always stored in Totango as lowercase. Using Totango DB ID will also work (in case of an existing task/touchpoint or created from the UI/API).

Create an inbound integration job (tasks or touchpoints)

Before creating an inbound job, the account record must exist in Totango before syncing tasks and touchpoints data (e.g., an accounts inbound job is required before tasks and touchpoint inbound jobs). You cannot change the associated account of a task or touchpoint. However, you can create new tasks and touchpoint records in Totango during the integration (e.g., enable the toggle within the Settings area of the integration).

  1. Follow the steps to create a new inbound integration job. Choose the Tasks (inbound) or Touchpoints (inbound) object.
  2. Within the Data Source area, modify the object fields as needed (defaults are included).
  3. Add a query filter in SOQL query language to filter the data set. Only the objects that pass the filter will be imported to Totango. If no filter is given, all tasks/touchpoints from Salesforce.
    mceclip0.png
  4. Click Load Preview to see the results.
  5. Modify the mapping as needed, and click Validate Mapping.

  6. Continue with scheduling and settings.

  7. Click Save and Sync.

Create an outbound integration job (tasks or touchpoints)

Before creating an outbound job, the Totango account record must exist in Salesforce before syncing tasks and touchpoints data (e.g., an accounts outbound job is required before tasks and touchpoint outbound jobs). The integration only syncs taks/touchpoints if the related Salesforce account is already matched to Totango. However, you can create new tasks and touchpoint records in Salesforce during the integration (e.g., enable the toggle within the Settings area of the integration).

  1. Follow the steps to create a new outbound integration job. Choose the Tasks (outbound) or Touchpoints (outbound) object.
  2. Within the Data Source area, click +More Filters to refine the data set.
    mceclip2.png

    Filtering outbound tasks/touchpoints is restricted to last updated in last 30 days. Please contact Totango support filtering more than 30 days.

  3. From the Destination area, set the following:
    • Object: Set the Salesforce destination object.
    • Parent object: If the object is connected to a parent, choose the parent object.
  4. Click Connect.
    The mapping page is pre-loaded with a default mapping template.
  5. Modify the mapping table if needed, and click Validate Mapping.
    mceclip4.png
  6. Continue with scheduling and settings.
  7. Click Save and Sync.
  • In case there is no match for the parent account, Totango skips the record in the sync (it will not be counted in the overall statistics of the job).
  • For improved performance, the filtering of skipped records is not done in online preview and validation, but only while processing the data.
  • When creating new record of task/event in Salesforce for a Totango task/touchpoint, we will update the WhatId with the Account ID. When updating existing record of task/event in Salesforce for Totango task/touchpoint, we update Account ID field only if it is mapped, and we will not update WhatId.

Create an outbound integration job (campaign touch)

Before creating an outbound job, the Totango account record must exist in Salesforce before sending campaign touches (e.g., an accounts outbound job is required before campaign touch outbound jobs). The integration only syncs campaign touches if the related Salesforce account is already matched to Totango. However, new campaign touches will be created.

  1. Follow the steps to create a new outbound integration job. Choose the Tasks (outbound) or Touchpoints (outbound) object.
  2. Within the Data Source area, click +More Filters to refine the data set.
    mceclip5.png

    Filtering outbound campaign touches is restricted to last updated in last 30 days. Please contact Totango support filtering more than 30 days.

  3. From the Destination area, set the following:
    • Object: Set the Salesforce destination object.
    • Parent object: If the object is connected to a parent, choose the parent object.
  4. Click Connect.
    The mapping page is pre-loaded with a default mapping template.
  5. Modify the mapping table if needed.

    We recommend using the default mapping template and not to change the mapping. Mapping Totango Start Date field to Salesforce ActivityDate field is mandatory. We recommend mapping Totango Campaign Touch ID to a custom field in Salesforce event object to distinguish between regular events and campaign touches in salesforce.

    mceclip6.png
  6. Click Validate Mapping.
  7. Continue with scheduling and settings.
  8. Click Save and Sync.
  • The subject of the created event in Salesforce will be: "Ongoing/One time campaign \"Campaign Name\" was sent to N users. From: user@domain.com"
  • Salesforce events created for campaign touch will be of type email (if type field exists in Salesforce event object).
  • In case there is no match for the parent account, Totango skips the record in the sync (it will not be counted in the overall statistics of the job).
  • For improved performance, the filtering of skipped records is not done in online preview and validation, but only while processing the data.
  • When creating new record of task/event in Salesforce for a Totango task/touchpoint, we will update the WhatId with the Account ID. When updating existing record of task/event in Salesforce for Totango task/touchpoint, we update Account ID field only if it is mapped, and we will not update WhatId.

Default field mapping

Each integration job is independent and can have different scheduling and mapping. Mapping templates automatically default per object, but you can update the mappings as needed, especially if using custom objects in Salesforce instead of tasks and events.

These are the default mapping templates:

Integration Type Source Object Source Field Source Field Type Totango Attribute Attribute Type
Salesforce
Touchpoints
Inbound
Event
AccountId text Account Id Key , text
Id text Touchpoint External Id Key , text
Subject text Subject text
Description text Content text
ActivityDate datetime Touchpoint Date Date
CreatedBy.Email reference field Touchpoint Creator text
LastModifiedDate datetime Last Update Date Date
LastModifiedBy.Email reference field Last Updater Text
       
Salesforce
Touchpoints
Outbound
Event
AccountId text Account Id Key , text
Id text Touchpoint External Id Key , text
Subject text Subject text
Description text Content text
ActivityDate datetime Touchpoint Date Date
OwnerId reference field Touchpoint Creator text
       
Salesforce
Tasks
Inbound
Task
AccountId text Account Id Key , text
Id text Task External Id Key , text
Subject text Title text
Description text Description text
Priority text Priority text
Status text Status text
ActivityDate Date Due Date Date
Owner.Email reference field Assigned To text
CreatedBy.Email reference field Assigner text
CreatedDate Date Create Date date
LastModifiedDate Date Last Update Date date
       
Salesforce
Tasks
Outbound
Task
AccountId text Account Id Key , text
Id text Task External Id Key , text
Subject text Title text
Description text Description text
Priority text Priority text
Status text Status text
ActivityDate Date Due Date Date
OwnerId reference field Assigned To text
       
Salesforce
Campaign Touch
Outbound
Event
AccountId text Account Id Key , text
Campaign Touch ID text Touchpoint External Id Key , text
Subject text Subject text
Description text Description text
ActivityDate datetime Start Date Date
OwnerId reference field Created By text
       

Known limitations and best practices

  • It is not possible to change the connected user name for Salesforce existing connection.
  • It is not possible to map to reference fields.
  • For importing touchpoints from Salesforce to Totango, touchpoints must contain Subject or Content.
  • For importing tasks from Salesforce to Totango, tasks must have title.
  • For outbound jobs, the “Created By” field in Salesforce can not be updated.
  • Importing tasks or touchpoints from Salesforce to Totango that are created before the account they belong to was synced to Totango, requires a full sync.
  • We recommend using the default mapping template that Totango provides for tasks and touchpoints inbound and outbound. However, for touchpoints, it is possible to use different mapping if needed:
    • For touchpoints outbound, you can map Totango Touchpoint Date to StartDateTime in Salesforce. For that you need to use double mapping and map Touchpoint Date to both ActivityDate and to StartDateTime in Salesforce.
    • If the above is used, for touchpoints inbound, you need to map StartDateTime  to Totango Touchpoint Date. 
  • Participants are supported for Touchpoint inbound and outbound. The recommended mapping is to Event WhoID in Salesforce. Please enable Event WhoID in the Salesforce configuration for the Event object.

    In touchpoints inbound jobs from Salesforce to Totango, we create the participants in Totango but if after that the user changes the participants in Salesforce, we do not update it in Totango in the next inbound job run. Read more on how to enable Event WhoID in Salesforce (it is not the default out of the box).

  • If there is an outbound job for tasks/touchpoints and a task/touchpoint that is part of both this outbound jobs is deleted in Totango, we will also delete it from Salesforce as part of the outbound job in order to keep data consistency. Similarly, if such task/touchpoint is deleted in Salesforce, it will be deleted in Totango as well as part of the inbound job.

Was this article helpful?

1 out of 1 found this helpful

Have more questions? Submit a request