Automate your referral program with Salesforce CRM


Salesforce is an email marketing, marketing automation, and CRM platform.

Connect Salesforce with Referral Rock to:



  • This integration is available on the following Salesforce plans: Enterprise Edition, Unlimited Edition, Developer Edition, Performance Edition. View Salesforce's help document on API access for further information.
  • Ensure that these permissions are enabled for the user who is setting up the integration
  • The user account that is being used must be a "Salesforce Platform" user license. We do not support the "Salesforce Integration" user license.


Your Salesforce account may only be connected to one Referral Rock at a time. You will receive an error message if attempting to connect a Salesforce account that is already connected to another Referral Rock account.

Required User Permissions for Set up

The following user permissions must be enabled for the integration to be properly set up:

  • API Enabled
  • API REST Services
  • Create and customize views
  • View Event Log Files
  • View Real-Time Event Monitoring Data
  • Read, Create, Edit, View all, Modify all for the following:
    • Accounts
    • Leads
    • Opportunities
    • Contacts
    • Push Topics

Referral Add to Salesforce

With our Referral Add to Salesforce integration, whenever a referral is added to Referral Rock, they are also added as a Lead or Contact in Salesforce.


The integration is program-specific. If you would like to set up the integration for multiple programs, you must repeat these steps for each program.

  1. Log in and navigate to Settings > Integrations and scroll down to External Service Integrations and select Manage Integration under Salesforce, or simply click here

  2. Under Sync Added Referrals, click Setup

  3. Select the Program you would like to integrate with Salesforce and select Next

  4. Connect a New Salesforce account or choose an existing connected Salesforce account


We have received reports that some browser extensions such as pop-up blockers may cause issues during set up in Referral Rock. Please disable your pop-up blocker or allow the pop-up when prompted.

  1. From the pop-up, log in and choose which Salesforce account to connect. Please ensure you are connecting Referral Rock to Salesforce by using a Salesforce System Admin profile.

  2. Choose your desired Configuration for when a Referral is added in Referral Rock and the email address already matches a record in Salesforce.


When using the Set Referral to Denied rule, if Referral Rock attempts to add a referral as a contact or lead in Salesforce and the contact/lead already exists but was added within the past 60 minutes, we will NOT set the referral to Denied in Referral Rock. This is to prevent conflicts with other integrations.

  1. Choose if you'd like Referrals to be added as Contacts or Leads in Salesforce



Referral Rock automatically adds First Name, Last Name, Email, Company, Referral ID, Referral Source, Referral Rock Source Note, as well as the Member and Referral URLs to Salesforce when adding a new Lead/Contact

  1. Determine if you would like to map custom referral fields from Referral Rock to Salesforce. If you choose Yes, select the desired Salesforce field you'd like to map the Referral Rock custom field to from the drop down menu.

  1. Determine if you would like Referral Rock to automatically add the referring Member's information to the Salesforce contact or lead

You may choose to add the following:

  • Referring Member Name
  • Referring Member Email
  • Referring Member External ID
  • Referring Member Phone
  • Referring Member Referral Code



Referral Rock automatically maps a source, source note and links to both the Referral and the referring Member in Referral Rock regardless of this setting.

  1. Determine if you would like to map custom member fields from Referral Rock to Salesforce. If you choose Yes, select the desired Salesforce field you'd like to map the Referral Rock custom field to from the drop down menu.

  1. Review your settings, toggle to Enabled if desired, and select Save

  2. Add a Referral to your program to test. You will see the referral come in as a Contact or Lead in Salesforce

Referral Update from Salesforce

Keeping Salesforce and Referral Rock in sync throughout your sales process is essential so Referral Rock can correctly update referrals.


In order for the referral update integration to work properly, the Referral information has to live in both accounts.  You need to ensure that the Referral is added to both Referral Rock and Salesforce at the same time and that Referral Rock knows who the Member that referred them is.

How the Sales Receiver Works

Understanding the process behind the Referral Rock and Salesforce integration is helpful when trying to decide and understand how your settings should be set within your accounts.

  1. Adding a Lead/Referral: When a new lead is captured, it needs to exist in both Referral Rock and Salesforce

  2. Close/Update Deal/Referral Processing: Update Referral Rock based on event triggers in Salesforce.

  • New/Updated Lead

  • New/Updated Contact

  • New/Updated Account

  • New/Updated Opportunity

  1. Action/Operation Response in Referral Rock
  • Event trigger notifies actions to send data into Referral Rock

  • When the event occurs, a call is made to Referral Rock to collect various available sales data points

  • Based on the configuration, data is sent to Referral Rock

  1. Sales Receiver: Referral Rock then processes the data sent and makes intelligent decisions in order to update/add the Referral record.


The Sales Receiver is smart enough to process information it has no questions about but will also save data that was sent in, both complete and incomplete.  For example, a new sale can be sent in with a referral code that doesn’t match.  It will fail, but save the record so a team member can manually edit and retry the information with the correct referral code.  This way, a log of all failed and successful updates is saved, so you won’t have to try to recreate a trigger or event to re-submit a record that needs correcting.

Setting Up Referral Update

  1. Navigate to Settings > Integrations, then scroll down to Salesforce and select Manage Integration, or click here.

  2. Under Receive Updates - Salesforce Integration, select Setup.

  3. Select Connect New Account

  4. A Salesforce oAuth window will pop up. If you are not already logged in to your Salesforce account, you will be prompted to do so. After your Salesforce account has been connected, the pop up window will disappear and the connection is now available for use with Referral Rock. Please ensure you are connecting Referral Rock to Salesforce by using a Salesforce System Admin profile.

  5. Configure Settings in Referral Rock: Based on how your workflow is setup within Salesforce, you can configure the various events you utilize and how it affects your Referral Rock data.  Please go through all of the steps on the page to configure the necessary settings.  We’re happy to help talk you through the correct configuration based on your use case.


If any of your Salesforce fields that you would like to map to Referral Rock are encrypted under Shield Platform Encryption, the integration will not be able to unencrypt the field and the integration will not be able to sync properly.

Required Setup Areas

  1. Referral Status Change Events

Choose which referral status you want to update to based on the Salesforce object, field name, and value match. The most common example is setting the "Approved Status" to use the "Opportunity" object with the "StageName" field name with the value match of "Closed Won".

You may also toggle the option to allow your Salesforce connection to override Denied Referrals in Referral Rock. This means that any update to another status that was triggered by Salesforce would change the Referral's status in Referral Rock.

  1. Referral Fields to Update

Once the status change event occurs, the fields are sent to Referral Rock. You then set the mapping of which fields in Referral Rock will be updated by which fields from Salesforce.

Recommended Setup Areas

  1. Referral Target Match

If the Referral already exists in both Referral Rock and Salesforce, you can assign the fields to ensure a direct match, so that the correct Referral record in Referral Rock is updated.

Optional Setup Areas

  1. Member Match

If the Referral does not exist in Referral Rock, you can assign the fields so that the Referral record gets added to the correct referring Member based on the Salesforce fields set to match.


You must use "Additional Matching" for mapping back Lead objects to Referral Rock. If you set up our Sync Added Referrals integration with Salesforce, then you can map the Referral Rock Referral ID field back to the Referral ID in Additional Mapping. Otherwise, for other forms of capture, please use our External ID

​2. Contact Matching and Updating Behavior

This is used to determine what contacts or leads to match and update in Salesforce. For example if you would like to include contacts linked to the account of the triggered object choose the last option.

  1. Process Rules

a. Automatically process direct matches (recommended): If a Lead is updated in Salesforce and it directly matches either a Referral ID or External ID.

b. Automatically process fuzzy matches (recommended): If a Lead is updated in Salesforce and it matches a Referral in Referral Rock using fuzzy matching (email address, name, etc). This is the most commonly used method.

c. I want to review a referral add where a member match was not found: If a Lead is updated in Salesforce, and they are not matched as a Referral in Referral Rock by either direct or fuzzy matching (if enabled), the Sales Entry will be set to Review.

d. I want to review where a referral with status "denied" is trying to be updated to qualified or approved: If the Referral is "Denied" in Referral Rock, and the associated Lead is in Salesforce, the Sales Entry will be set to Review if it is attempting to adjust the Referral to Qualified or Approved.

e. Review Notification Flag: Will send you a notification if a Sales Entry is set to Review.

Test the setup

Trigger one of the events you setup in the previous step.  You’ll be able to see the “Last Salesforce Connection” date update as well as “Last Entry Received” date under Connection Details if you have set everything up correctly.


You must use the proper API field names based off of how they are named for the API in Salesforce, not how they are displayed in the user interface.  A full list of field names, including those for custom fields, can be found within your Salesforce account under Setup > Customize > [Object Name] > Fields.  Check out this guide for the API field names for most standard fields.


I'm not sure this is workingView the "Last Salesforce Connection" timestamp on the main Salesforce integration page
I’m not getting any sales entries1. Check to ensure the correct account is set up
2. Ensure you are triggering a Trigger Event:
-New/Updated Lead
-New/Updated Contact
-New/Updated Account
-New/Updated Opportunity
3. Double check Contact Matching and Updating Behavior
4. Ensure your matching options are set up properly under Process Rules
5. Ensure your Salesforce Edition is one of the approved versions of Salesforce (see above)
6. Check your API version and ensure Push Topics are being sent.
7. Verify API version using steps from Salesforce here. Referral Rock requires version 22 or greater.
8. Ensure that your Streaming API is enabled
9. Run a query "select name from pushtopic" using the developer console
My fields aren’t being set correctlyCheck the details of the associated Sales Entry

Other Notes on Fields


Due to the nature of some fields in Salesforce, Referral Rock can only receive direct fields. Relational fields will send as null so use direct Object > Field relationships whenever possible. For example, instead of sending Contact > AccountName, send Account > Name to ensure an accurate Business Name is sent.

If the set fields are not available, Salesforce will send Referral Rock “null” records. If there is the possibility of many objects, then Salesforce will send us the fields if there is only one record matching (i.e. Account that Has Many Opportunities trying to send Object ‘Opportunity’ with the field name ‘Name’).

TriggerLooking forRelationshipLogic
LeadLeadSelfSame object, no problem
ContactContactSelfSame object, no problem
ContactAccount1 to 1If exists, else null
ContactOpportunity1 to manySend record if only one associated record exists, else null
AccountContact1 to manySend record if only one associated record exists, else null
AccountAccountSelfSame object, no problem
AccountOpportunity1 to manySend record if only one associated record exists, else null
AccountAccountSelfSame object, no problem
AccountOpportunity1 to manySend record if only one associated record exists, else null
OpportunityContact1 to manySend record if only one associated record exists, else null
OpportunityAccount1 to 1If exists, else null
OpportunityOpportunitySelfSame object, no problem