Integrate with Salesforce & Dynamics CRM

Overview of CRM activation in GrowthLoop

Here at GrowthLoop, we often say that our product is “built for marketers”. But did you know that GrowthLoop also has tremendous capabilities to perform list orchestration and data activation to CRM platforms as well? These CRM platforms, most often leveraged by sales teams, act as a downstream, pseudo-data warehouse where all of the information around Contacts, Accounts, Leads, etc. is stored to provide your sales team the latest & greatest information to aid in closing sales and driving revenue for your organization. CRM platforms, such as Salesforce and Microsoft Dynamics, are an integral part of almost all organizations today, and GrowthLoop wants to help increase the efficacy, while reducing the management headaches, of such systems.

One common issue we see with many CRM platforms today is that they are quick to become ‘out of control’ with manual data entry often leading to scores of duplicates, incorrect data transfer, and a massive time suck for your analytics and sales management teams to perform. What if, instead, we could leverage a data warehouse to source, clean, and compile data and seamlessly sync that to our favorite objects in CRM to ensure everything is up-to-date and abiding by precise business rules? What if we could also leverage a no-code Audience Builder to identify groups of high-value people and automate the creation of tasks so that our sales team always has a valuable opportunity to pursue? Well, with GrowthLoop, all of this is not only possible, but also driving incredible value for many of our clients today.

In this article, we want to highlight the three major tools we have built to empower GrowthLoop as a flexible solution for revenue & data teams, enabling data activation to (and from) CRM platforms with the data warehouse. These tools are: CRM Syncs, CRM Audiences, and CRM Ingest. As we dive further into each of these tools below, please keep in mind that the functionality is the same no matter which CRM platform your organization leverages today, be it Salesforce, Dynamics, HubSpot, or any others.

CRM Syncs

The first tool in GrowthLoop’s arsenal to empower CRM platforms is Syncs (formerly known as Signal Router).

Syncs are, to keep it short, GrowthLoop’s Reverse ETL solution. With Syncs, you can connect any table or view from your cloud data warehouse and sync all records with your desired object/entity of choice within CRM. This means that we can leverage the data warehouse for what it’s best at doing (modeling data) and ensure our CRM destination reflects the most accurate reality, as built in your warehouse. An organization can build out a ‘golden view’ of their contacts, accounts, leads, assets, opportunities, or any other CRM object within their data warehouse and seamlessly sync those clean, golden records to populate and update CRM for all downstream users to leverage. No longer will your sales team question if the phone number provided for a lead is the most up-to-date number to call!

When setting up a Sync in GrowthLoop, there are just a couple, quick configuration options to select before you are on your way to syncing any/everything you want to CRM!


From top to bottom:

  • Name: The name of this new Sync.
  • Sync Frequency: How often do you want to check for updates in the data warehouse and sync those updates into CRM.
  • Update Rule: What actions do you want to perform when syncing records into CRM, including:
    • Insert or Update: Insert any records we do not find already existing in CRM, or Update records we do find (aka ‘Upsert’). Our most commonly-used Update Rule.
    • Insert Only: Only insert records from the table that are not found in CRM, ignoring records that already exist. Great for backfilling objects.
    • Update Only: Only update records from the table that are found in CRM, ignoring records that do not exist in CRM at time of sync. Great for connecting large tables without the worry of creating ‘too much’ in CRM.
  • Source
    • Dataset/Table: The table or view in your data warehouse that you want to connect and use for this Sync. Please note that this dropdown will only populate with tables/views that have already been connected to GrowthLoop via the Datasets page.
    • Dataset Unique Field(s): The unique key on this table to indicate to GrowthLoop how to count how many records need to be tried in the sync. This should be pre-populated with the unique key value selected when connecting the table/view into GrowthLoop.
    • Match Field: The field on the table/view that GrowthLoop should use to lookup records in CRM to determine if a record already exists or not, and how to match on the record to send field-level updates.
  • Destination
    • Connection: The CRM Destination connection you want to leverage in this Sync. These connections could be to Sandbox or Production CRM environments.
    • Object Type: The CRM Object or Entity that we want to ‘point’ this Sync to. Common examples being: Contacts, Accounts, Leads, Opportunities, Campaigns, Assets, Events, Survey Responses, etc. Syncs also has the capability of pointing at both ‘out of the box’ CRM Objects and custom-built Objects.
    • Match Field: The field on the CRM Object records that GrowthLoop is ‘looking up’ to determine if a record from the connected table already exists or not as a record within the CRM Object. This field should match to the ‘Match Field’ selected just to the left under ‘Source’. If you are wanting to use exact CRM GUIDs for matching… this is doable, but does require some backend configuration to get working properly. Please reach out to your GrowthLoop representative for assistance if looking to use GUIDs (ex: Salesforce IDs) for matching or any field mapping.

Then, after saving the overall Sync, comes the final step - field mappings:


Mapping the fields from your underlying table or view to the fields in CRM that we want to update is the final step in setting up any Sync. This step allows you to decide which fields from the connected table we actually want to update on the CRM records and provides the flexibility to map a ton of different kinds of fields, so long as the data types line up. You can map the most up-to-date contact information for your Contacts, important flags for your sales team to know, linkages to other CRM Objects such as Accounts or Owners, or any other custom field you want to build within your Objects to house important data for end users to have access to!

Syncs were designed and built to be highly flexible depending on the use case. Each Sync can vary widely in scope, from syncing entire Contact objects with millions of records to syncing small, custom objects that help form linkages within CRM. There are no limits to the number of Syncs you can set up!

For all the reasons and capabilities listed above, we lovingly call Syncs our ‘Foundational Tool’ when it comes to CRM. With Syncs, you can ensure the ‘foundation’ of your CRM is as accurate and clean as a table in your data warehouse, democratizing data for your revenue teams and enabling greater automation to be built on top with tools such as… CRM Audiences.

CRM Audiences

The second tool in GrowthLoop’s arsenal to empower CRM platforms is, for lack of a better name, CRM Audiences.

CRM Audiences leverage the power of GrowthLoop’s Audience Builder to segment and identify key groups of people that you want to act upon using your CRM workflows. With CRM Audiences, you can easily export the same audiences leveraged by your marketing teams for advertising outreach, or brand new audiences specifically meant for sales outreach, to your CRM platform to automate the creation of ‘action records’, like Opportunities, Activities (Emails, Phone Calls, Tasks, Appointments), or Campaigns. You can even leverage CRM Audiences to selectively create new Contact/Account/Lead records within CRM that can then be constantly updated via CRM Syncs. Both CRM tools often are used in conjunction with each other for the most powerful CRM activation outcomes.

Let’s dive a bit deeper into how CRM Audiences work today:

Building your CRM Audience

The first step to leveraging CRM Audiences is to, well, build an audience! Using GrowthLoop’s no-code audience builder is easy to quickly identify key groups of people that you want to act upon within CRM. Examples of such groups could be: High Value Leads, Existing Customers at Risk of Churn or New Sign-Ups (warranting a friendly phone call).


Setting up your Export Configuration:

Once you have your audience all set and ready to export, next comes your CRM Audience export configuration (aka what do you want to do with this group of people in CRM).

With CRM Audiences today, you have over 145K permutations of options to choose when sending an audience to CRM. While this might sound overwhelming at first, we promise the selections are straightforward and easy to configure exactly how you hope your audience to perform when hitting CRM. These selection options have been designed and built in conjunction with many of our current clients to fit their desired outcomes, and thankfully cover a very wide set of use cases. The following are screenshots showing an example CRM Audience configuration, along with descriptions explaining how this works and what other options are available today:


When activating a newly-connected CRM destination for the first time, you will be given the option to ‘Activate’ your destination configuration options. After clicking ‘Activate’, you will see a new, fairly long pop-up that enables us to begin selecting our desired actions.


At the top of this Activation Modal you will find three, global settings that help inform how the rest of the CRM Audience actions take shape. These global settings are:

  • Matching Selection
    • Help GrowthLoop know your primary ‘people’ object of choice, namely Accounts or Contacts. We know organizations can think differently around what/whom constitutes an Account versus a Contact, so we want to provide the flexibility of being able to look up either and perform actions upon either object. Leads will always be part of the ‘lookup journey’, but can be ignored later on in the selections should your organization not leverage the Leads object.
    • As of today, CRM Audiences only operates in the ‘standard, out-of-the-box’ CRM Objects (Accounts, Contacts, Leads, Opportunities, etc.) and cannot support custom objects. This will likely change over the coming months as we invest further into our CRM suite of tools, but please do keep this in mind for your first CRM Audiences. If your organization heavily leverages custom objects only, then Syncs can likely cover many use cases when combined with clever data modeling techniques!
  • Dynamic Opportunity Owner Assignment
    • Should the desired outcome (and selections below) be to create Opportunities on matching records, should GrowthLoop lookup that entity’s (ie: Account’s / Contact’s / Lead’s) owner and add that owner as the owner of the newly created Opportunity?
    • If yes, GrowthLoop will dynamically add owners to new Opportunities to match the ownership of the underlying person record. If no, then you will be given the option further on in the selection criteria to assign all newly-created Opportunities to a single Owner instead. The latter can be helpful when a manager wants to manually reassign opportunities themself, or if you have a round-robin queue already setup in your CRM and assigning Opportunities to this queue is all that is needed to kick-off that reassignment workflow.
  • Dynamic Activity Owner Assignment
    • Exact same logic as the Dynamic Opportunity Owner Assignment above, but now leveraged should an Activity (email, phone call, task, or appointment) be the desired action to be created on an entity instead of an Opportunity.

At the bottom of the Activation modal, you will find the final global setting for your CRM Audience Destination before getting into the desired actions and lookup journey - Field Mapping for Matching / Look-Ups. This will look nearly identical to Field Matching in CRM Syncs, and the purpose it to tell GrowthLoop how to search for Accounts, Contacts, and/or Leads within your CRM platform to know if they exist and how to act should we find them (or not).

The top set of Field Matching input boxes allow you to select the field from your connected Users table (on the left) that should be used to lookup a specific field within CRM (on the right) for your Primary Entity (Contacts or Accounts, depending on the global selection at the top of the Activation Modal). The bottom set for Field Matching input boxes does the same, but is for your Leads object. Usually, the lookup criteria is the same for Accounts/Contacts as it is for Leads, but we do want to provide the flexibility should field availabilities or lookup logic be different between the two.

It is now time to begin our CRM Audience ‘Look-Up Journey’!

Now that we have selected all of our global settings, it’s time to begin a mini look-up journey to determine what actions GrowthLoop should perform should we find Audience members within any existing objects in CRM at time of export. The ‘Look-Up Journey’ detailed below was designed on purpose to start with as niche of a look-up as possible and then slowly expand our search radius as we go to ensure we a) act upon the most-established matching records in CRM first and b) do not accidentally create duplicates via desired actions of less-established matching records.

The first, most niche group we will search for are Accounts or Contacts with Existing Opportunities:


Let’s say we have an audience of 100 people that we are exporting to CRM and want to perform actions depending on how these 100 people already reside within CRM today. To begin our look-up journey, we are going to first look to see if any of these 100 people exist today in CRM as a Contact (or Account) with an existing Opportunity. The reason being that should we find anyone that matches this criteria (has an Opportunity), your action selection might be different knowing that this Contact/Account already has an open opportunity against them, or has had previous opportunities that were Closed Lost.

You have multiple look-up options within this Matching Group to get even more specific of the kinds of Opportunities these Contacts/Accounts might have, such as:

  • Opportunity Types
    • Look for Contacts/Accounts that have Opportunities of a specific type.
  • Opportunity Owners
    • Look for Contacts/Accounts that have Opportunities with a specific Owner.
  • Opportunity Stages
    • Look for Contacts/Accounts that have Opportunities of specific stages.

Then, should we find any Contacts/Accounts that have Opportunities of these specific selections and are in our Audience, what action should GrowthLoop perform? Here is a sample of the many actions that can be selected for this Matching Group:


Lastly, depending on your selected action, you have the ability to map desired record types, stages, or owners (depending on your global settings) as GrowthLoop creates and maps these actions to the found entity:


Great! Let’s say of our initial list of 100 audience members, we have found 5 matching Contacts with Existing Opportunities and have created a brand new Opportunity for our team to pursue on each of the Contacts… Those 5 audience members are now crossed-off our list, and we have 95 audience members remaining to figure out what to do with.

Next comes our second search, for Accounts or Contacts without Existing Opportunities:


Now that we have found all audience members that already have an Opportunity record associated with them, let’s search if any audience members exist today in CRM as an Account or Contact but does not have an associated Opportunity record. And if we find them, what action do we want to perform (similar to the previous Matching Group).

Let’s say that we find 30 audience members that fall into this bucket, and as a result, receive an Opportunity or Activity on their record for our Sales team to pursue. We have now found 35 audience members in total across the first two Matching Groups, and now we have 65 people remaining from our initial audience of 100 people to figure out what to do with.

Now that we have found all late-stage ‘people objects’, let’s check to see if any of the remaining 65 people exist as a Lead in CRM today! Onto our third Matching Group: Matching Leads


At this point, you might be thinking… “What if we match upon Lead records that have already been converted into Accounts or Contacts? I don’t want to create actions on old records that now have a later-stage record already built.” The answer to this thought is exactly why we have designed our mini ‘look-up journey’ the way we have - to ensure we find the latest stage records first and act upon those before looking at earlier stage records such as Leads.

When finding audience members within the Leads CRM Object, you are given options for adding Activities to the Lead or to bulk convert all Leads into later-stage records such as Accounts and/or Contacts. The decision on which selection to choose ultimately comes from how your Audience was built. Was this an Audience of super high-value customers that you want to ensure are late-stage records within CRM? Or was this merely an audience of prospects that you want your Sales team to call and hopefully convert into paying Contacts down the road? These are the questions we encourage you to ask yourself as you design your CRM Audience export configurations.

To continue on with our hypothetical audience export, let’s say that you found 40 audience members as Leads within CRM, meaning that, overall, you have now acted upon 75 out of 100 audience members, and only 25 remain. This leads us to our final Matching Group - Non-Matching Accounts/Contacts or Leads:


At this point, we have already searched for and found all audience members that already exist as late-stage or early-stage ‘people objects’ within CRM. Any audience members remaining must not exist in CRM today (per the matching logic defined in the global settings) and thus we need to determine what action we want to perform for those leftover.

This final Matching Group has the most options available for what action to perform should any audience members fall into this final bucket. From creating new Accounts, Contacts, Leads, and/or assigning Opportunities or Activities to these newly created records - this is all possible with CRM Audiences today. You can even selectively choose to ignore this final group and ‘Do Nothing’ should there be remaining people in your audience and you do not want any new records to be created in CRM if they do not already exist.

After making these final selection options for our look-up journey, you are now done configuring your CRM Audience destination for this audience export and all future audience exports! Congrats!

The final step to export your audience to this configured CRM Audience destination is to fill out the Export Modal with just a few, remaining inputs before your audience is now exporting and automating the creation of actions for all existing and new audience members over time.


The input boxes you see on this Export Modal will vary depending on actions you have selected to perform in the Activation Modal, but here is an example of all boxes that you could come across today:

  • Campaign Mapping & Naming Options
    • Would you like to map all matching, audience member records to a single campaign within CRM? If yes, do you want to create a brand new Campaign to house all records or map all records to an existing Campaign?
    • If the former, you will be presented with a free-text input box to enter the desired name of your new Campaign. If the latter, you will be presented a dropdown selection box allowing you to choose the existing Campaign from your CRM that you want to associate all audience members with.
  • Opportunity Naming Option
    • If you are creating new Opportunities as part of your action selections from the Activation Modal, what do you want the title of these new Opportunities to be?
  • Lead Source Naming Options
    • If you are creating new Opportunities, what do you want the Lead Source to be populated with?
    • If you are creating new Leads, what do you want the Lead Source to be populated with?
  • Activity Selection, Naming, and Assignment Options
    • If you are creating new Activities as part of your action selections from the Activation Modal, what kind of Activity do you want to create? Options today being: Email, Phone Call, Appointment, or Task
    • What do you want the title of the new Activity to be?
    • What comments do you want written into all newly-created Activity records?
    • When do you want all Activity records to be due by?

Once you have finished entering these final inputs, you are all set and ready to export! Future audiences going to the same, already-configured CRM Audience destination will NOT have to go through the entire Activation Modal selection again, and will instead just see the input boxes from the Export Modal for each subsequent audience you are looking to export, making this whole process much, much faster for all future audience exports.

Now that we have Syncs established, keeping the CRM ‘foundation’ in sync with the data warehouse, and CRM Audiences exporting to perform actions upon your CRM records, the final piece to the CRM Activation puzzle is how to ensure all downstream actions and changes within CRM are accounted for back in the data warehouse… This is where the third and final tool in GrowthLoop’s CRM Activation suite comes in - CRM Ingest.

CRM Ingest

GrowthLoop’s CRM Ingest tool is pretty much exactly what the name implies - A tool for ingesting CRM data back into the data warehouse to obtain full, end-to-end visibility and data continuity with your CRM environment.

Here at GrowthLoop, we are huge proponents of centralizing all of your data sources and modeling within a cloud data warehouse. This gives your team full control over how your data is modeled, updated, and ultimately used downstream for insights and activation. While GrowthLoop sits firmly on the ‘activation’ side of the equation, we know just how important it is to ensure changes made in your CRM environment are reflected across your not only reporting tools but also other downstream channels as well. This is why GrowthLoop has invested into building our own CRM Ingest tool that we are happy to help setup for your team to get all of your favorite / most important Objects from CRM piping back into your data warehouse. Not only does this greatly enhance data accuracy, but it also enables incredibly powerful data activation ‘loops’ to/from CRM using tools like Syncs and CRM Audiences!


GrowthLoop is not just a ‘tool for marketers’, but a full-service data activation platform that will enable all of your revenue teams to drive greater value for your organization while gaining tremendous efficiency and automations with tools such as CRM Syncs, CRM Audiences, and CRM Ingest. We are here to help with all of your data activation needs, to all of your downstream channels… CRM might just be one of the more important channels to start with ;)

Interested in learning more about HOW GrowthLoop connects with your CRM environment?

Check out the following links for the technical, integration details by CRM system:

How-To: Salesforce CRM Destination Connection

How-To: Microsoft Dynamics CRM Destination Connection

How-To: HubSpot CRM Destination Connection

Want to discuss further how GrowthLoop can help with your CRM Activation needs?

Reach out to [email protected] and we will be in-touch soon!