Salesforce Integration

Overview

Amity’s Salesforce integration synchronizes data in Salesforce accounts, cases, contacts, opportunities, and opportunity line items with Amity accounts, tickets, people, and subscriptions.

Given that Salesforce is a very flexible platform, Amity's integration can support custom fields. As part of our on-boarding process, your Amity customer success manager will work with you to identify any custom fields need to be synchronized.

Amity supports both unidirectional and bidirectional Salesforce synchronization.

Once enabled, the synchronization occurs every hour.

Requirements

Your organization must have a Salesforce subscription that includes API access. This feature is enabled by default in the following editions:

  • Enterprise Edition
  • Unlimited Edition
  • Developer Edition
  • Performance Edition

For other editions, the API feature may be available for an additional cost. Please contact your Salesforce account representative for more details.

Before Amity can enable Salesforce integration, you must provide the following user credentials:

  • Username
  • Password
  • Security Token

This user must be granted the “API Enabled” permission. Follow the instructions in User Permissions.

If you need to reset your security token, follow the instructions in Reset Your Security Token.

Synchronization Details

Accounts

By default, Amity will synchronize ONLY Salesforce accounts that have the custom checkbox field "Amity Sync" checked (more detail steps on how to create the Amity Sync account custom field are described in the attached "Create Amity Sync account custom field" documentation). All other accounts will be ignored. It is possible to use extensions to define custom configurations.

Deleted Salesforce accounts will not be synchronized.

If a Salesforce account is deleted after it has been synchronized with Amity, the Amity account will not be deleted.

If you are previously using the Account Type value of "Customer" as the synchronization indicator, you can migrate to custom checkbox field "Amity Sync" using a custom formula field. The details steps are described in the attached "Create Amity Sync account formula field" documentation.

If you would like to massively update the Amity Sync account custom field you have created for the existing accounts based on specified condition (e.g. accounts that have a Closed Won opportunity), there are various methods to automate the process. You can perform the update via a created workflow (the details steps are described in the attached "Create a workflow rule to set Amity Sync" documentation) or via CSV file import (the detail steps are described in the attached "Update Amity Sync field in multiple accounts" documentation).

Contacts

By default, Amity will synchronize all Salesforce contacts that are associated with synchronized Salesforce accounts.

Deleted Salesforce contacts will not be synchronized.

If a Salesforce contact is deleted after it has been synchronized with Amity, the participant in Amity will not be deleted.

If a Salesforce contact has been synchronized and then the associated account is removed, Amity will continue to synchronize the Salesforce contact.

Amity will not synchronize an email address that is malformed.

Cases

By default, Amity will synchronize all Salesforce cases that are associated with synchronized Salesforce contacts.

Deleted Salesforce cases will not be synchronized.

If a Salesforce case is deleted after it has been synchronized with Amity, the Amity ticket will not be deleted.

If a Salesforce case has been synchronized and then the associated contact is removed, Amity will continue to synchronize the Salesforce case. 

Opportunities

Companies that have recurring revenue business models often need to track and manage subscriptions for offerings that have one-time, recurring, and usage fees.

Unfortunately, Salesforce do not provide any native support for these requirements.

Unlike accounts and contact, there is no built-in subscription object in the Salesforce data model. Likewise, the support for products with recurring fees is limited. There is no support for metered usage-based pricing.

Nevertheless, Amity often encounters companies that have attempted to “bolt on” subscription management by making customizations to their Salesforce instance.

To help support these companies, Amity has developed a capability that can import Salesforce opportunity line items into Amity subscriptions. This reference implementation avoids introducing customizations. Instead, it uses existing Salesforce features.

Reference Implementation Details

When enabled, Amity will import and synchronize Salesforce opportunity line items as Amity Subscription objects.

Amity will only synchronize line items that belong to opportunities that are closed and won (commonly called the “Closed Won” stage). The opportunities must be associated with an account that Amity has synchronized.

Deleted Salesforce opportunities will not be synchronized. Likewise, deleted Salesforce opportunity line items will not be synchronized.

To distinguish one-time fee products from recurring fee products, Amity uses Salesforce’s revenue scheduling feature. Amity does not support custom revenue schedules that are unique to a opportunity line item.

If the Salesforce opportunity is deleted or the stages changes to something that is not closed and won, all of the associated Amity subscriptions will be deleted. Likewise, if a line item is removed from the opportunity, the corresponding Amity subscription will be deleted.

Limitations

The Reference Implementation does not support subscription cancellations, amendments or annulments. Specifically, the value of the Subscription disposition field indicates when a subscription has expired or is is cancelled, amended, or annulled. The Reference Implementation will only set the disposition field to expired. Without introducing Salesforce customizations, there is no way to inform the integration that a subscription has been cancelled, amended or annulled.

The Reference Implementation does not support usage-based pricing.

Custom Extensions

Custom extensions provide a mechanism allow Amity’s Salesforce integration to be customized for a client’s particular needs.

Object and Field Mapping

Accounts

Amity Account Salesforce Account
addresses

BillingCity, BillingCountry, BillingPostalCode, BillingState, BillingStreet

ShippingCity, ShippingCountry, ShippingPostalCode, ShippingState, ShippingStreet

crm_owner_email Owner.Email
crm_owner_full_name Owner.Name
description Description
email_domains Domain extracted from Website field
external_ids Id
name Name
telephones Fax, Phone
urls Website
   

 

People

Amity Participant Salesforce Contact
first_name FirstName
last_name LastName
salutation Salutation
title Title
department Department
notes Description
birthday Birthdate
external_ids Id
emails Email
telephones Fax, HomePhone, MobilePhone, OtherPhone, Phone
addresses

MailingStreet, MailingCity, MailingState, MailingPostalCode, MailingCountry

OtherStreet, OtherCity, OtherState, OtherPostalCode, OtherCountry

account

AccountId

 

Subscriptions

Amity Subscription Salesforce
external_id OpportunityLineItem.Id
name Product2.Name
start OpportunityLineItem.ServiceDate. If the service date is not specified, the Opportunity.CloseDate is used.
end

If the opportunity line item has a revenue schedule then the end data is a date offset from the start date that is calculated using the values of Product2.NumberOfRevenueInstallments and Product2.RevenueInstallmentPeriod

Otherwise, the value is not set.

disposition

The disposition is set to “expired” if the current date and time is after the subscription end.

Otherwise, the value is not set.

quantity OpportunityLineItem.Quantity
has_usage Always false
one_time_amount

If the Salesforce instance has revenue scheduling enabled and the opportunity line item does not have a revenue schedule, this attribute is be sourced from OpportunityLineItem.UnitPrice.

Otherwise, the value is always zero.

opportunity

Opportunity.Id

product_code

Product2.Id

recurring_amount

If the Salesforce instance has revenue scheduling enabled and the opportunity line item does not have a revenue schedule, the value is zero.

Otherwise, the value is sourced from OpportunityLineItem.UnitPrice.

Note: If there is a revenue schedule associated with the opportunity line item, the recurring amount is calculated by dividing OpportunityLineItem.UnitPrice by Product2.NumberOfRevenueInstallments.

billing_period

If revenue scheduling is not enabled in the Salesforce instance, the billing period value is determined by the Business Workspace account value metric. If the metric is “MRR”, the billing period is “month”. If the metric is “ACV”, the billing period is “year”.

If revenue scheduling is enabled and the opportunity line item has a revenue schedule, this attribute is sourced from OpportunityLineItem.RevenueInstallmentPeriod.

Otherwise, this value is not set.

 

Tickets

Amity Ticket Salesforce Case
channel Origin
created_at  CreatedAt
description Description
display_id CaseNumber
external_ids Id
external_url n/a
priority Priority
resolved_at ClosedDate
resolution_calendar_time Time difference between created_at and resolved_at
status

Status

subject

Subject

tags

n/a

type

Type

updated_at

LastModified

 

Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.
Powered by Zendesk