TABLE OF CONTENTS |
Required ACME Configuration
Your CSM will complete these updates on your behalf during implementation.
Create an API user that will be used to connect ACME to Workato. Send the following details into api-help@acmeticketing.com to get an API key issued.
Username: api-workato
User ID: #####
Category: Direct
Usage info: Workato integration
Update the Integration setting in Backoffice > Administration > Integrations. This must be set to "External CRM". This setting is required because when turned to "External CRM", customers are made for Organization Contacts, which is critical for when Orders are placed for these Org Contacts.
- In addition to creating the API key, ACME will create standard Workato reports in your ACME environment, which are used to provide in the integration recipes. The report IDs will be provided with the API key, for you to enter when setting up the connection to ACME within Workato.
Our prebuilt recipes assume that ACME is the primary source for your data. Therefore, the recipes are designed to send data one way from ACME to SF in most cases, except for on demand syncing of updates from SF Contacts, SF Accounts, and SF Account Contacts to existing ACME customers/contacts.
If you are currently using a different integration with ACME, we recommend completing step 1 and 3 in both production and your sandbox environments, but not completing step 2 in your production environment until you have completed testing and you are ready to activate the integration there.
Required Salesforce Set Up
While NPSP is not required for the integration, our prebuilt recipes are optimized to work with NPSP. If you are not using NPSP, there will be a significant amount of reconfiguring to work with a non-NPSP model.
Create a new User for the integration.
We recommend creating a separate System Admin user in Salesforce that will be used to establish the connection between Workato and Salesforce. This username and password will be used when setting up the connection to Salesforce in Workato.
Configure the following NPSP Settings:
People > Addresses
Enable Organizational Account Addresses: "When selected, enables Address Management for non-Household Accounts such as Organizational Accounts."
Affiliations
Enable Automatic Affiliation Management: "When selected, this option tells Salesforce to create or update Affiliations for Contacts connected to Organization Accounts whenever the Contact's Account field or Primary Affiliation field changes. Organizations Accounts include all Record Types except those defined as Household or One-to-One Account Record Types."
Relationships
Enable Custom Field Sync: "Select this option to sync custom Relationships fields between the two Contacts in a relationship pair."
Update or add a Price Book in Salesforce. Add the following Entries to the same price book with a list price of $0. Note the ID of the price book, as you will be needed when setting up the initial Workato configuration.
Event Ticket
Event Add On
Add On
Donation
Membership
Combo Event Add On
Combo Event Ticket
Install this unmanaged package: https://login.salesforce.com/packaging/installPackage.apexp?p0=04tHr000001eivq(updated 3/25/24)to create new custom objects and custom fields used in the prebuilt recipes.
The package contents are documented in the ACME Custom Objects & Fields for Workato SF Integration Prebuilt Recipes. Alternatively, manually create the custom objects and fields as outlined by that document. The unmanaged package does not include any prebuilt layouts (see the Optional Salesforce Set Up section).
Update the URL to use the test.salesforce.com domain to download it for your test environment.
The field level security for all fields used in the integration should be set to at least System Admin, to ensure that data is not blocked from being written to SF when the integration runs.
Configure the ACME Organization Categories in Salesforce
Add an entry for every Organization Category you have configured in ACME Backoffice (Organizations > Organization Categories). The Name should closely match what you have configured in both ACME and for the restricted picklist on the “ACME Org Category” field on the Account Object. The Salesforce ID of this picklist items will be needed when setting up the initial Workato configuration.
Select Salesforce Opportunity Record Type
Create or choose the Opportunity Record Type that will be used for all Opportunities that are created by the integration. The Salesforce ID of this Record Type will be needed when setting up the initial Workato configuration.
Create a placeholder Org Contact record (optional)
If Organizations are able to have ACME Orders placed with deferred payment, then we recommend training users to always enter in a Billing Contact on the Order, even if no payment is made when the Order is created. Doing so will ensure that a Contact is created on the order in ACME and in Salesforce when the recipe runs. For cases when a billing contact is forgotten, we recommend creating a Salesforce Contact called “Temporary Org Contact” (or whatever you wish to call it) that will be assigned to the Order when it is created in SF. Then your team can filter by these and update the Contact with the correct data. The Salesforce ID of this record will be needed when setting up the initial Workato configuration.
Create a placeholder Contact to use on walk in orders (optional)
If you would like to sync walk in ACME orders to Salesforce (defined as an ACME order that does not have a customer attached), then a placeholder Salesforce contact is required because Salesforce requires a Contact on all Opportunities. The Salesforce ID of this record will be needed when setting up the initial Workato configuration.
Required Workato Set Up
Part 1 - to be completed by the client
- ACME will provision separate Workato sandbox and production environments for you with the ACME prebuilt recipes. Once they are ready, we will invite client users to have access. Once your account is set up, then you will be able to invite your internal users and any SI or other consultants you are working with (see Workato's Invite and manage workspace collaboratorsguide for step by step instructions). Each collaborator you invite will be assigned one role, which controls their access:
- Account Admin : This role has the highest level of access. The user will be able to view recipes and logs as well as manage collaborator access.
- Account Manager : This role is for users who just need to manage collaborator access.
- Recipe Viewer : This role is for users who need to see the recipes and their logs.
- Once you accept the invitation to Workato, you will initially see only your own personal account space. Once you log in, select the round icon with your initial, and you'll see a menu open with the other team spaces you have access to. When you select the team for your ACME project, as listed in the invitation email, you'll be able to continue with the set up steps.
- Set up your connections within each Workato environment.
- Projects > Common Assets > Connections > Create > ACME Connection
- Login using the ACME provided API Key and set the correct environment
- Projects > Salesforce Integration > Connections > Create > Salesforce Connection
- If you have a custom Salesforce URL, click 'Show' under the Advanced Settings section and input your custom URL in the "Organization/community custom domain URL" field
- Click "Connect"
- Login using the integration user you created in "Salesforce Required Set Up" step 1
- Note: If using a custom domain URL to sign in via OAuth2.0, ensure the custom domain is "my.salesforce.com" (lightning.force.com will not work).
- Projects > Common Assets > Connections > Create > ACME Connection
- Provide ACME with the email address you would like Workato to send notifications to regarding error messages from a recipe, Workato status updates, and notifications that new users have been added. We highly recommend setting up a distribution list that you can manage access to within your own email provider.
- Set Up Environment Properties in Workato (Tools > Environment Properties)
Create the following properties in your Workato environment(s) and insert the appropriate values, as outlined below:Property Name
Value
ACME API User ID
The ID in the URL when viewing the ACME User associated with the API key requested in Step 1 of the ACME Configuration steps; this ID will be provided with the ACME API keys
ACME Donation Report ID
The ID in the URL when viewing the report in ACME; this ID will be provided with the ACME API keys
ACME Environment Link The link to ACME environment that Workato is hooked up to. For example:
Sandboxes: https://sand#-backoffice.acmeticketing.net
Production: https://backoffice.acmeticketing.comACME Form Report ID
The ID in the URL when viewing the report in ACME; this ID will be provided with the ACME API keys
ACME Membership Conversion Report ID
The ID in the URL when viewing the report in ACME; this ID will be provided with the ACME API keys
ACME Membership Report ID
The ID in the URL when viewing the report in ACME; this ID will be provided with the ACME API keys
ACME Organization Payment Policy
Enter the preferred default value you want used:
{deferredPayment, fullPayment}ACME Organization Ticket Delivery
Enter the preferred default value you want used:
{print, willCall}ACME Organization Unique Voucher Numbers
Enter the preferred default value you want used:
{true, false}ACME Subscription Report ID
The ID in the URL when viewing the report in ACME; this ID will be provided with the ACME API keys
(Optional; leave blank if not using Membership Auto Renew feature in ACME)ACME Ticket Analytics Report ID
The ID in the URL when viewing the report in ACME; this ID will be provided with the ACME API keys
ACME Transaction Report ID
The ID in the URL when viewing the report in ACME; this ID will be provided with the ACME API keys
Salesforce Batch Size Up to 200; but we recommend 50. Salesforce Integration User ID The Salesforce ID of the user configured as the Workato Integration User Salesforce Opportunity Record Type ID
The Salesforce ID of the Opportunity Record Type that you wish to assign to all Opportunities that are created in SF for ACME Orders
Salesforce Price Book ID The Salesforce ID of the Price Book that you added the ACME items to in "Salesforce Required Set Up" step 3 Salesforce Temp Org ContactThe Salesforce ID of the Contact you created in Required Salesforce Set Up Step 8 Salesforce Walk In Order ContactThe Salesforce ID of the Contact you created in Required Salesforce Set Up Step 9
(Optional; leave blank if "Sync Walk In Orders" is set to false)Sync Walk In OrdersSelect the preferred default value you want used:
{true, false}Timezone
Enter your timezone name as listed below, not in quotes; accepts timezone names from the IANA time zone database
Examples:
Eastern- "America/New_York"
Central- "America/Chicago"
Pacific- "America/Los_Angeles"
Part 2 - to be completed by ACME
- ACME will set up your Workato Notification settings in Workspace Admin > Settings > Notifications and Project Notifications
- Fill in the Recipient(s) email address(es): This setting determines who at your venue will receive error messages from a recipe, Workato status updates, and notifications that new users have been added. We highly recommend setting up a distribution list that you can manage access to within your own email provider.
- We recommend turning on "Limit error emails to one per hour for each recipe" so that you receive only one email per hour per recipe.
- Run the recipe [SF] ONB 001 | Populate Lookup Table: Timestamps. This recipe will populate the Lookup Table with data that will be used when running the main recipes.
- To run, open the recipe in Workato (Salesforce Integration > Onboarding), click on the 1st step and copy the Workato webhook address. Then paste this into a new tab and click 'Enter'.
- To run, open the recipe in Workato (Salesforce Integration > Onboarding), click on the 1st step and copy the Workato webhook address. Then paste this into a new tab and click 'Enter'.
- Configure the "ACME Organization Categories" Lookup Table (Tools > Lookup tables > ACME Organization Categories)
- First run the recipe [SF] ONB 002 | Populate Lookup Table: ACME Organization Categories (Salesforce Integration > Onboarding). This recipe will call ACME and populate the Lookup table with the name and ID of all the ACME Organization Categories you have set up in ACME.
- To run, open the recipe in Workato, click on the 1st step and copy the Workato webhook address. Then paste this into a new tab and click 'Enter'.
- First run the recipe [SF] ONB 002 | Populate Lookup Table: ACME Organization Categories (Salesforce Integration > Onboarding). This recipe will call ACME and populate the Lookup table with the name and ID of all the ACME Organization Categories you have set up in ACME.
- Run the recipe [SF] ONB 003 | Populate Lookup Table: Salesforce Price Book Entries (Salesforce Integration > Onboarding).This recipe will populate a lookup table within Workato that will be used in recipes to correctly assign the Price Book Entry ID when creating Opportunity Products.
- To run, open the recipe in Workato, click on the 1st step and copy the Workato webhook address. Then paste this into a new tab and click 'Enter'.
- To run, open the recipe in Workato, click on the 1st step and copy the Workato webhook address. Then paste this into a new tab and click 'Enter'.
5. ACME will fill in the data for the "ACME Memberships" Lookup table
Part 3 - to be completed by the client
This cannot be completed until parts 1 and 2 are done in Workato
1. Fill in the "ACME Organization Categories" Lookup Table (Tools > Lookup tables > ACME Organization Categories)
- Fill in the Salesforce Record Type ID that each Organization Category applies to. You can find this by going to Setup > Object Manager > Account > Record Types > Open the Record Type and pull out the ID in the URL.
You can now inform ACME that you are ready to have the recipe and recipe functions in Workato started. Once that happens, you are ready to begin testing. We recommend doing this in the sandbox environment first, before activating anything in your production environment.
Optional Salesforce Set Up
Helpful Layout Modifications
While the below updates are not required, we find having this data visible is helpful to users.
- We recommend adding all the ACME custom fields to the appropriate layout(s) for the related objects.
On the "Account" object:
Display "Affiliated Contacts" in the related list view. Set the Visible fields as First Name, Last Name, Email, Primary.
On the "Contact" object:
Display "ACME Memberships" in the related list view. Set "Latest Version" to display as one of the visible fields.
Display "ACME Membership Cards" in the related list. Consider setting "Card Type" and/or "Card Standing" to display in the visible fields.
On the "Opportunity" layout, add the following to display in the related list:
ACME Memberships
ACME Donations
ACME Forms
Payments (NPSP)
ACME Membership Object Custom Button
If you would like your Salesforce users to have the ability to create a new ACME Membership record in Salesforce and send it to ACME where it will create an Order, Customer(s), Membership, and Membership Card(s), then we recommend that you add a Custom button to the ACME Membership layout(s). To do so:
Within Object Manager > ACME Membership > Buttons, Links, and Actions click “New Button or Link”
Label: Create in ACME
Type: Detail Page Button
Content Source: URL
Retrieve the webhook address from the recipe [SF] REC 106 | Webhook: Sync new Membership via ACME Checkout API
Append the following to the end of the link from step 4 when configuring the button: ?SalesforceMembershipId={!ACME_Membership__c.Id}
Full link: {webhook address from the recipe [SF] REC 106 | Webhook: Sync new Membership via ACME Checkout API}?SalesforceMembershipId={!ACME_Membership__c.Id}
Add the button to the appropriate layout(s)
Example (note, you will have a distinct Webhook address so you need to copy the one from the recipe in your environment, not the one in this screenshot):
Account Sync on Demand Custom Button
If you would like your Salesforce users to have the ability to sync a new Account with affiliated contacts in Salesforce and send it to ACME where it will create an Organization with Organization contacts, then we recommend that you add a Custom button to the Account layout(s). To do so:
Within Object Manager > Account > Buttons, Links, and Actions click “New Button or Link”
Label: Create in ACME
Type: Detail Page Button
Content Source: URL
Retrieve the webhook address from the recipe [SF] REC 100 | Webhook: Sync SF Account to ACME Org (in the folder Salesforce Integration/SF to ACME Recipes)
Append the following to the end of the link from step 4 when configuring the button: ?ID={!Account.Id}&Category={!Account.ACME_Org_Category__c}&PrimaryID={!Account.npe01__One2OneContactId__c}
Full link: {webhook address from the recipe [SF] REC 100 | Webhook: Sync SF Account to ACME Org}?ID={!Account.Id}&Category={!Account.ACME_Org_Category__c}&PrimaryID={!Account.npe01__One2OneContactId__c}
Add the button to the appropriate layout(s) for the Account object
Optional Configuration: Organizations that Should Not Sync
If you have Organizations in either ACME or Salesforce that you do NOT wish to sync via the Workato Integration, then complete this optional configuration:
- Fill out the Workato Lookup Table called "Organizations Do Not Sync".
- If an Organization exists in ACME which should not sync to Salesforce, then input the Organization Name in the "Organization/Account Name" column and the Organization ID (ID from the ACME URL) into the "ACME Organization ID" column.
- Let ACME know the Organization ID that should not sync and we will update the Workato Transactions Report to exclude all Orders placed by this Organization from syncing.
- If an Account exists in Salesforce which should not sync to ACME, then input the Account Name in the "Organization/Account Name" column and the Account's Salesforce ID (ID from the Salesforce URL) into the "SF Account ID" column. NOTE: We require the 15 character ID for this to work. The ID in the URL is 18 characters, so simply remove the last 3 characters.
- If an Organization exists in ACME which should not sync to Salesforce, then input the Organization Name in the "Organization/Account Name" column and the Organization ID (ID from the ACME URL) into the "ACME Organization ID" column.
Resources
Workato: Field Map for ACME/Salesforce Integration Prebuilt Recipes
ACME Custom Objects & Fields for Workato SF Integration Prebuilt Recipes