After adding the Salesforce Authentication details to Agile, mappings must be added:
1. On the External Integration node, click Field Mappings.
On this tab, mappings from Agile to Salesforce can be defined.
2. Select a Salesforce object to map to from the drop-down in the top-right corner.
Note: Currently, mappable Salesforce objects are limited to Contact and Opportunity. The ability to map to other standard Salesforce objects and Custom Salesforce objects will be added in a future update.
3. To add a mapping field, double-click the box containing "Add mapping...". This will add a mapping row from which to select value.
4. Select a Field Type from the drop-down on the left. This will change which types of fields are displayed in the Agile Field section in the middle.
5. Select an Agile Field from the middle drop-down. This is the description for the field that will be sent to Salesforce.
Note: To add a 'static field' that will be the same for every object sent to Salesforce, type in the box after clicking it instead of selecting a value from the drop-down.
6. Finally, select a field from those available on the selected Salesforce object to have the Agile field mapped to.
7. To add another mapping, continue from step 2. Note that each mapping row can be mapped to a different Salesforce object.
8. Hit Apply in the bottom right to save all mappings. Any mappings with nothing selected in the far-right column, such as the one within the blue box below, will be deleted.
Currently, it is recommended to use the Salesforce "Contact" record to store Agile Customer and Membership information, and the Salesforce "Opportunity" record to store Agile Transaction information. This will allow the system to check the Agile Customer data against Salesforce Contacts to avoid creating duplicate records, and for these Contacts to be tied to the Opportunity records using an OpportunityContactRole so that they will be listed with the Contact in Salesforce.
Be aware that in order for the integration to work out-of-the box, a custom field "Agile_ID" must be added to the Salesforce Contact object. Instruction on adding custom fields like "Agile_ID" can be found at https://help.salesforce.com/articleView?id=adding_fields.htm&type=5. This is one of the fields used to prevent adding duplicate contacts. By default, a duplicate is found if there is an existing Contact that matches:
Last names with the new Contact, and matches either Agile_ID or Email with the new Contact
If a duplicate is found, Agile will update the existing Salesforce Contact record instead of adding a new one. If use of a different field for Agile_ID or a custom duplicate definition is desired, it will need to be manually changed by Agile.
Selecting different Field Types for a mapping row will cause the list of Agile Fields for that row to change. The data contained under each field type is as follows:
- Customer Property - General customer information, such as name, address, and email
- Phone Type - Customer phone numbers for each phone type
- Membership Property - Membership information such as Member Number, Expiration Date, and Membership level name. Values for each active membership for the organization can be selected, or values for "Last Expiring Membership", which will find and map values for whichever membership in the organization has the furthest expiration date for the customer
- Customer Question - allows the mapping of the customer's answers for the selected question
- Order Question - allows mapping of the customer's answer to the selected order question
- Transaction Property - allows mappings of transaction data, such as Transaction ID, price, quantity, close date time, and event time, if any.
- There are 5 fields that can be selected, "Price External Field 1-5". These will send a user-definable value from the price for the transaction's items