TABLE OF CONTENTS


Required ACME Configuration

Your CSM will complete these updates on your behalf during implementation.

  1. 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.

    1. Username: api-workato

    2. User ID: #####

    3. Category: Direct

    4. Usage info: Workato integration

  2. 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. 

  3. 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. 

  1. 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. 

  2. Configure the following NPSP Settings:

    1. People > Addresses

      1. Enable Organizational Account Addresses: "When selected, enables Address Management for non-Household Accounts such as Organizational Accounts."

    2. Affiliations

      1. 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."

    3. Relationships

      1. Enable Custom Field Sync: "Select this option to sync custom Relationships fields between the two Contacts in a relationship pair."

  3. 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.

    1. Event Ticket

    2. Event Add On

    3. Add On

    4. Donation

    5. Membership

    6. Combo Event Add On

    7. Combo Event Ticket

  4. 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.

  5. 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. 

  6. 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.

  7. 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.

  8. 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.

  9. 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

  1. 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:
    1. 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.
    2. Account Manager : This role is for users who just need to manage collaborator access.
    3. Recipe Viewer : This role is for users who need to see the recipes and their logs.
  2. 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.
  3. Set up your connections within each Workato environment.
    1. Projects > Common Assets > Connections > Create > ACME Connection
      1. Login using the ACME provided API Key and set the correct environment
    2. Projects > Salesforce Integration > Connections > Create > Salesforce Connection
      1. 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
      2. Click "Connect"
      3. Login using the integration user you created in "Salesforce Required Set Up" step 1
      4. 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). 
  4. 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.
  5. 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 LinkThe link to ACME environment that Workato is hooked up to. For example:

    Sandboxes: https://sand#-backoffice.acmeticketing.net
    Production: https://backoffice.acmeticketing.com 

    ACME 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 SizeUp to 200; but we recommend 50.
    Salesforce Integration User IDThe 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 IDThe Salesforce ID of the Price Book that you added the ACME items to in "Salesforce Required Set Up" step 3
    Salesforce Temp Org Contact

    The Salesforce ID of the Contact you created in Required Salesforce Set Up Step 8
    Salesforce Walk In Order Contact

    The 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 Orders
    Select 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

  1. ACME will set up your Workato Notification settings in Workspace Admin > Settings > Notifications and Project Notifications
    1. 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.
    2. 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.
  2. 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. 
    1. 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'.
  3. Configure the "ACME Organization Categories" Lookup Table (Tools > Lookup tables > ACME Organization Categories)
    1. 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. 
      1. 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'.
  4. 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.
    1. 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)

  1. 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.

  1. We recommend adding all the ACME custom fields to the appropriate layout(s) for the related objects. 
  2. On the "Account" object:

    1. Display "Affiliated Contacts" in the related list view. Set the Visible fields as First Name, Last Name, Email, Primary.

  3. On the "Contact" object:

    1. Display "ACME Memberships" in the related list view. Set "Latest Version" to display as one of the visible fields.

    2. Display "ACME Membership Cards" in the related list. Consider setting "Card Type" and/or "Card Standing" to display in the visible fields.

  4. On the "Opportunity" layout, add the following to display in the related list:

    1. ACME Memberships

    2. ACME Donations

    3. ACME Forms

    4. 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:

  1. Within Object Manager > ACME Membership > Buttons, Links, and Actions click “New Button or Link”

    1. Label: Create in ACME

    2. Type: Detail Page Button

    3. Content Source: URL

    4. Retrieve the webhook address from the recipe [SF] REC 106 | Webhook: Sync new Membership via ACME Checkout API 

    5. 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}

  2. 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:

  1. Within Object Manager > Account > Buttons, Links, and Actions click “New Button or Link”

    1. Label: Create in ACME

    2. Type: Detail Page Button

    3. Content Source: URL

    4. 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)

    5. 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}

  2. 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:

  1. Fill out the Workato Lookup Table called "Organizations Do Not Sync".
    1. 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. 
      1. 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.
    2. 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.

Resources

Workato: Field Map for ACME/Salesforce Integration Prebuilt Recipes

ACME Custom Objects & Fields for Workato SF Integration Prebuilt Recipes

ACME/Salesforce Workato Integration: Use Cases