Integrating the Agile system with Salesforce will allow Agile to send Customer, Membership, and Transaction info to Salesforce when they are added or updated.
Originally, the integration was written to map Agile Customer and Membership data to the Salesforce Contact record, but any Salesforce object, including Custom objects, can now be used. Duplicate checks can be defined; for example, Salesforce can be first checked for a duplicate record against the Customer First name, Last name, and Agile ID, and if a matching Salesforce object is found it will be updated, otherwise a new one will be added.
The Agile Transaction data was originally written to be mapped to the Salesforce Opportunity record, but can now also be mapped to any Salesforce object. Junction objects can also be defined to link objects together within Salesforce, for example, an Opportunity can be linked to a Contact using the OpportunityContactRole junction object. More information on this can be found in our article Salesforce Mapping in the Object Relationships section.
Saleforce integration requires the setup of a Salesforce User with API permissions, setup of a Connected App in Salesforce, and the input of the Authentication Details for these two Salesforce components in the Agile system.
Salesforce Connected App setup:
1. Log into Salesforce as an administrator.
2. On the left-hand menu, under the Build menu -> Create drop-down, click Apps.
3. Scroll down to the Connected Apps section and click New.
4. Under the Basic Information section, fill out the required fields: Connected App Name, API Name, and Contact Email.
5. Under the API (Enable OAuth Settings) section, check the Enable OAuth Settings checkbox.
6. Enter a Callback URL in the field that is revealed. (This is not currently used by the Agile system and can be changed later if necessary, so something like the sample value of "https://login.salesforce.com/services/oauth2/callback" is all that is required.)
7. Beside the Selected OAuth Scopes selection, add the "Access and manage your data (api)" scope.
8. Save the connected app and hit Continue.
9. The app will likely need 2-10 minutes to process on Salesforce's end, but go ahead and make a note of the Consumer Key and Client Secret (which will need to be revealed). These are two of the values that will need to be added in Agile.
Salesforce User with API permissions setup:
While using an existing Salesforce user's authentication information could be done, the recommendation is to create a Salesforce user that will be used only for the integration (https://help.salesforce.com/articleView?id=000176281&type=1). This user will need to have a license with API permissions. To set up a new user to be used for the integration:
1. On the left-hand menu, under the Administer menu -> Manage Users drop-down, click Users.
2. Above the list of Users, click New User.
3. Under General Information, fill out the required fields. You will need to use an email address that is not already used in Salesforce and that you have access to.
4. The user will need a User License and Profile that has API access and can Add and Modify the major Salesforce objects (such as Salesforce: Standard User). Information on appropriate licenses can be found at https://help.salesforce.com/articleView?id=users_license_types_available.htm&type=5
5. Set this user's password and log in as the new user. Make a note of the user's email and password, as these are two more of the values that will need to be added in Agile.
6. After logging in as the new user, click My Settings under the profile drop-down in the top right of the page.
7. On the left-hand menu, under the Personal tab, click Reset My Security Token.
8. Click Reset Security Token. This will have Salesforce send a Security Token to the new user's email. This is the last value that will need to be added in Agile. Please note that if the user's password changes, the Security Token will need to be resent and updated in Agile.
This user will provide the Username, Password, and Security Token values in Agile
They will also need to add a custom "Agile ID" field to the SF Contact object
The authentication information that has been gathered will then need to be added into Agile.
Adding authentication details to Agile:
1. Under the Settings node for the Corp Org that the integration is being added for, select External Integration.
2. Select Salesforce from the Integration Type dropdown. This will reveal several more fields.
3. Add the Consumer Key and Client Secret from the Connected App setup steps and the User Email, Password, and Security Token from the User Setup section in the appropriate textboxes and hit Apply in the bottom-right.
If there is any problem with the authentication values, a message will appear. Note that a failure may simply be a result of the 2-10 minute setup of the Connected App required by Salesforce not yet being complete.
4. The Customer External ID Object dropdown sets which Salesforce Object's ID is saved in the Customer External ID field in Agile. For example, setting this to Contact will cause the Contact ID in Salesforce of any Agile customers synced with Salesforce to be saved in Agile in the customer's External ID field.
Next: Salesforce Mapping guide