Introduction to the Salesforce integration
Integrating Salesforce CRM with Azavista will enable seamless syncing of contacts and their organizations, and events and their participants. The integration helps users streamline operations between Azavista and Salesforce, allowing users to manage their event data more efficiently and maintain up-to-date records across both systems.
The following document contains the step-by-step instruction on how to successfully integrate Salesforce into the Azavista platform. All of the steps are mandatory for both inbound (Salesforce to Azavista) and outbound (Azavista to Salesforce) connections.
The steps to implement the Salesforce integration into your Azavista account are separated in 3 main categories:
I. Creating the OAuth app in Salesforce
II. Configuring the integration in Azavista
III. Installing the Azavista package inside Salesforce
I. Creating the OAuth app in Salesforce
About the OAuth app
The first step is creating an OAuth app in salesforce.
An OAuth app is a connector which allows Azavista to communicate with Salesforce. It needs to be available prior to creating the integration in Azavista. After creation, it will take some time to be available (usually around 30 minutes)
Step 1: Create the App
1. Go to Setup
2. Go to App Manager and click "New connected app"
Step 2: Configure the new App
- “Connected App Name” - Can be set as desired, eg. “Azavista OAuth”
- “API Name” - this field will be populated automatically after the “Connected App Name” field is filled, but can be changed if desired
- “Contact Email” - the person responsible for the integration
- “Enable OAuth Settings” - checked
-
“Callback URL” - the link to the integrations module of the assigned Azavista environment. Replace only the “CLIENT_NAME” part if a private cluster has been assigned, or use “3.0.app”. Alternatively it’s possible to simply copy the link directly, but everything after “details” must be removed, as shown below:
-
-
- https://staging.azavista.com/global-processes/integrations/details
- https://3.0.app.azavista.com/global-processes/integrations/details
- https://CLIENT_NAME.azavista.com/global-processes/integrations/details
-
-
-
“Selected OAuth Scopes”
-
- In the left box labeled “Available OAuth Scopes” select the following (one at a time):
- “Full access (full)”
- “Perform requests at any time (refresh_token, offline_access)”
- And move both of them to the right box labeled “Selected OAuth Scopes” by clicking the “Add” Button between the boxes
- In the left box labeled “Available OAuth Scopes” select the following (one at a time):
-
- “Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows”: unchecked
- Scroll to the bottom and click Save
Step 3: Edit policies
After saving in the previous step you will be redirected to the App that you just created.
1. Once there click on the “Manage” button
2. Next click “Edit Policies”
Step 4: Configure the policies
1. “Permitted Users” - All users may self-authorize
2. “IP Relaxation” - Relax IP Restrictions
3. “Refresh Token Policy:” Refresh token is valid until revoked
4. Save
Step 5 : Copy the consumer key and secret
1. You will be redirected to the Manage page of the App, navigate back by clicking on the “App Manager” on the left hand side
2. Find the App in the lis, click on the “options” dropdown, and select “View”
3. Click on “Manage Consumer Details”
4. A new tab will be opened that will likely request you to re-authenticate with 2FA
5. Once the page loads you will see the “Consumer Key” and “Consumer Secret”. You will need both of these to complete Part 2 of this tutorial.
II. Configuring the integration in Azavista
Step 1: Create the Integration
1. Go to the Integrations module
2. Click on the “Add Integration” button
3. Select
- “Type” - External CRM
- “Sub-Type” - Salesforce
- “Integration name” - Can be set as desired, eg. “Salesforce”
4. Click “Create”
Step 2: Configure the Integration
1. “Implementation” - production
2. “Client id” - the “Consumer Key” obtained in Part 1
3. “Client secret” - the “Consumer Secret” obtained in Part 1
4. Click “Save”
Step 3: Authorize
1. Click on the “Authorize” button
2. A Salesforce page will load briefly, after which you will be taken back to the Integration page and the field “Code” will be filled
3. Click on “Save”
4. Copy the content of the “Webhook” field and store it for Part 3 of the tutorial
5. You can verify that this part of the integration was successful by going to any of the “mapping” tabs and trying to map any field:
Step 4 : Field Mapping
1. Go to integrations
2. Go to the created integration
3. Switch to the desired “mapping” tab
4. To add a new field click on the “Add” button
5. Select the field in Azavista on the left side
6. Select the field in your Salesforce on the right side
Important: do not map multiple fields on one side to a single field on the other side. This will cause the integration to not function correctly. Both systems must have one field each corresponding to each other.
7. After your field is added you MUST configure the Sync Direction. In order to do so click on the three dots next to the desired field
8. Click on Sync Direction
9. Configure the desired sync direction
10. Refresh the page and you will see the Sync Direction in your fields
Step 5: Mapping for participants/members
The information below is important to take into account, when mapping participants/members
When mapping Members (Salesforce Campaign Members which are equivalent to Azavista’s Event Participants) do NOT map the fields “First Name”, “Last Name” and “Email” as due to how Salesforce is constructed those fields are not to be mapped directly.
It’s highly recommended to create a salesforce equivalent and map the field “CRM Status” in order to ensure that data is synchronized and current in your Salesforce.
1. This can be done by creating a new field in the “Campaign Members” Object in your Salesforce.
2. Go to the Fields Manager module in your Azavista account, find the “CRM Status” field and view it’s details
3. Go to the “Validation” tab and take note of all the values listed
4. Next go to your Salesforce account and enter Setup
5. Go to Object Manager and find the Campaign Members object
6. Once there go to Fields & Relationships and click New to add a field
7. Choose Picklist as the field type
8. Configure the field as follows:
- “Field Label” - as desired
- “Values” - “Enter values, with each value separated by a new line”
- In the text box that appeared, enter all the values of CRM Status obtained in: iii, separated by new lines (press the Enter key)
9. Set field-level security to “Visible” and “Read Only” as desired
10. Add the new field to Layouts as desired and Save
11. Go back to your Salesforce account and enter the Member tab of the Integration settings and add the field mapping for CRM Status. Remember to click Save after Adding the field mapping
12. Remember to configure the “Sync Direction” as described in points 7, 8, 9, and 10 above
Step 6: Global Processes
In order to enable the functionality of syncing changes made in Azavista into your Salesforce platform, a Global Process needs to be created inside of each Azavista Object that you want synced to Salesforce. This is completely independent from Part 3 Step 2.
1. Go to the Global Processes Module and create a new Process in the desired Object:
2. Once created set open the “object changed” trigger settings:
3. Select all three types of triggers, unless a more specific configuration is desired (Warning: not selecting any of the checkboxes can lead to desync of the information between the two platforms if not carefully understood and planned out):
4. Save the changes to triggers and open the newly configured process by clicking on its name.
5. Enable Edit Mode and add a new Action Block:
6. Configure the Action Block to: “Contact” and “Send to external CRM”:
7. Once added, click on the gray Action Block and set the Integration field to the name of your Integration created in Step 1 of Part 2 of this tutorial. Repeat this for all the Objects that are supposed to be synchronized to Salesforce.
III. Installing the Azavista package inside Salesforce
Step 1: Install the package from the provided link
1. Use the following link to install the package: https://login.salesforce.com/packaging/installPackage.apexp?p0=04t7R000000AgO5
2. Select the “Install for All Users” option
3. Check the “I acknowledge that I’m installing a Non-Salesforce Application that is not authorized for distribution as part of Salesforce’s AppExchange Partner Program.” checkbox
Step 2: Configure the Azavista Package Settings
1. From anywhere in Salesforce click on the “9 dots” button in the upper left corner
2. Search for Azavista
3. Click the “Azavista Admin” option
4. In the “Azavista Endpoint” field insert the following two things one after another - The link to your assigned Azavista environment that should follow this format:
- https://staging.azavista.com
- https://3.0.app.azavista.com
- https://CLIENT_NAME.azavista.com
5. After the text that you added add the “Webhook” value that you obtained in Part two of the tutorial. The final result should look like this:
- https://CLIENT_NAME.azavista.com/3.0/external_crm/xxxxxxxxxxxxxxxxxxxxxxxx/webhook?h=1234567890000.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
6. Configure the “Sync Status” for synchronization of the available objects as desired. The options are:
- No Sync - self explanatory
- Sync all - Syncs all records to Azavista as soon as the record is created or updated
-
Sync selected records - Only syncs records when their “sync to azavista” field is updated. This requires the existence of a Salesforce Flow to facilitate the update when desired:
7. You can verify that the entire integration process was successful by selecting the appropriate “Sync Status” and performing the steps required for that type to occur. If the integration was successful you should see the contacts in the CRM module of your Azavista account.