ACME/Salesforce Membership Import Process

TABLE OF CONTENTS


Purpose

This document intends to clearly define the business process workflow of sending new and updated membership data from Salesforce to ACME.


Role

Responsibility

Salesforce Admin

Creation and/or review for accuracy and completeness of the files to be imported

Salesforce Admin

Executes the import process

Salesforce User

Data entry and accuracy

Membership Department

Consumes the data which was imported 


Additional areas of the Membership Import process are documented in the following guides:

Membership Import: New Memberships and Other Lifecycle Actions

Membership Import: Editing Records

Membership Import: Merging and Deleting Records


Overview of Membership Import Process

The Membership Import API enables mass creating or updating of membership data in Salesforce, through the Data Loader or other Salesforce data tools, to sync to ACME, bypassing ACME’s Visualforce sales flows. This is useful for organizations who use caging facilities or other external sources to process membership transactions. Orders are not created in ACME for Memberships uploaded in this way, but you may upload associated Opportunity data to Salesforce.


#

Step

Description

1

Upload Memberships 

Adds memberships to existing contacts in Salesforce.

2

Upload Membership Cards

Adds membership cards to existing memberships in Salesforce.

3

Update Status of Memberships and Membership Cards

Prepares selected records to be synced to ACME.

4

Sync Salesforce and ACME

Automated process syncs records between Salesforce and ACME.


Prerequisites

  • Contact Records with an ACME External Customer ID must already exist prior to uploading Membership and Membership Card data. They can be created manually or imported into Salesforce through the Data Loader or other Salesforce data tools. 

  • Contact records must have the following required fields to generate a Customer in ACME and receive an ACME External Customer ID:

    • First Name

    • Last Name

    • Email or Phone or Address

  • Only Contacts with an ACME External Customer ID can be associated with a Membership and a Primary Membership Card.


Membership and Membership Card Status Values

Status

Definition

Preparing

Use this Status while preparing your data for the bulk sync.

Pending

Set the Membership and Membership Cards to "Pending" when you are ready for your data to sync to ACME, and they will be picked up by the Membership Import process. All Cards on a Membership must be set to Pending as well, even if you have not made any edits to them.

In Progress

Not currently used.

Completed

Completed records have successfully been sent from Salesforce to ACME.

Synced to ACME

Indicates that ACME has accepted the Membership Import data, and the process has been fully successful.

Error

This Status is set if the required fields are not present or if the API endpoint is not available (i.e. ACME is down).

Not Applicable

Not currently used.


Limits

Limit

Description

Membership Cancellations

Membership Cancellations are not imported as new records. A cancelled membership is an update to the existing active membership and membership card(s).

Unsupported Use Cases

The following use cases are not supported by this process flow:

  • Changing the contact listed on a card

  • Changing a membership number

  • Changing a membership or card Import ID

  • Removing a cardholder from a membership outside of a lifecycle change

Not supported by Membership Import but can be performed at ACME’s Point of Sale

  • Ticket Conversion to membership

Validation Errors - in development

ACME is currently in development of a validation user interface in ACME’s Back Office product, which will show the end user validation errors which occurred and prevented the records from syncing to ACME or Salesforce. (i.e. missing required fields)


In the period before this feature is available, please reach out to Product Support if you see records that do not have the status value of Synced to ACME, and are stuck in Completed for more than 2 hours.


Update in ACME Button

Edits made through the UI can be sent via the "Update in ACME" button from the Membership detail page in Salesforce. This button will correctly set the membership and membership cards with the right settings so it will be picked up and synced to ACME in the next import run. It sets the membership and all associated cards to "Is Bulk" = true and "Status" = Pending. Those updates can also be made manually on records to add them to the Membership Import queue.


In order to use this button, your Salesforce Admin will need to update your membership layout to include the "Update in ACME" button.


#

Task

1

Upload memberships file

2

Upload membership cards file

3

Verify edits in Salesforce

4

Use the "Update in ACME button" to mark the records that are ready to be picked up by the integration

5

Verify Status has changed to “Synced to ACME”


Membership Required Fields

Use in Step 1

File Header name

Requirement

Required field for the following actions:

ID

Salesforce ID for the membership you are editing

All Edits

IsBulk

Must be TRUE

All Edits

Status

Can be “Preparing" or “Pending”. ACME recommends setting it to “Preparing" until all uploads have completed and spot checked, and then updating to “Pending".

All Edits

Variable

Include any fields you are editing. Level ID and Offering ID, ACME External ID, External Import ID, Primary Member, and Opportunity cannot be edited in ACME.

All Edits


Membership Card Required Fields

Use in Step 2

File Header name

Requirement

Required field for the following actions:

ID

Salesforce ID for the membership card you are editing

All Edits

IsBulk

Must be TRUE

All Edits

Status

Can be “Preparing" or “Pending". ACME recommends setting it to “Preparing" until all uploads have completed and spot checked, and then updating to “Pending".

All Edits

Variable

Include any fields you are editing. External Barcode, External Import ID, and an already-populated Contact field cannot be edited in ACME.

All Edits


Inputs

  • Membership records in Salesforce

  • Membership Card records in Salesforce


Outputs

  • Edited values appear in Salesforce

  • Membership and Membership Cards are marked “IsBulk”

  • Membership and Membership Cards have “Pending” status


Exceptions

  • If the user is only making edits to the Membership, a membership card edit is not needed and the only required update to the Membership Cards is to set Status to “Pending” and marked “IsBulk”.

  • If the user is only making edits to the Membership Card(s), a membership edit is not needed and the only required update to the Membership is to set Status to “Pending” and marked “IsBulk”.


Controls

  • ACME recommends setting Memberships and Cards to “Preparing" status until all uploads have completed and been spot checked. Using this status allows the user to start data entry and then pause until they are ready to finish the process.


Verification Process

  • Field edits are visible on the Membership and/or Membership Card in Salesforce and ACME.

  • Edited records update to a “Synced to ACME” status.


Membership Import Sync Process

Membership data added or edited through the Membership Import feature will sync to ACME in an automated process that is scheduled to run at :00, :15, :30, and :45. 


The integration will segment all records in the queue into batches of 20 records, and it will send all batches when it runs. Any records that do not meet the requirements will not be sent, and will remain in the queue. The queue is ordered by SFDC Updated Date, with the oldest at the beginning.  


#

Task

1

Integration looks at the records in the queue, and performs validation. Valid records are segmented into batches of 20.

2

All batches of valid records are sent to ACME, and the status changes to “Completed”.

3

ACME accepts or rejects the data.

4

Successful records are updated to “Synced to ACME” and the process is complete. 


Inputs

  • Membership and Membership Cards have “Pending” status

  • Membership and Membership Cards are marked “IsBulk”


Validations

Example validations:

  • All required fields must be present.

  • One membership number cannot be assigned to multiple import IDs.

  • Multiple import IDs cannot be assigned to the same membership number.

  • Memberships and Cards must have an Import ID.

  • Contacts must have an ACME External Customer ID.

  • If the membership is set to “Pending”, but the card(s) are not, the membership will stay in “Pending” Status and will not get picked up by the integration.


Outputs

  • Memberships and/or Cards created or updated in ACME.

  • Membership and Membership Card Status updated to “Synced to ACME” in Salesforce.

  • You may find it useful to create a report of bulk Memberships grouped by Status.


Exceptions

  • Records that cannot be sent via the integration will keep their “Pending” status and stay in the queue until resolved or changed to a new status like “Preparing”.

  • Records that cannot be updated in ACME will stay in a “Completed” until invalid data is repaired and resent.

  • Records that do get updated in ACME but remain in a “Completed” status may need more time for the status update to flow back from ACME. If the data is visible in ACME and the status has not changed for over two hours, please contact Product Support.


Controls

  • ACME sets the batch size; as of 06/2019 it is set to segment all records in the queue into batches of 20 records, and it will send all batches when it runs. Any records that do not meet the requirements will not be sent, and will remain in the queue. The queue is ordered by SFDC Updated Date, with the oldest at the beginning.

  • ACME sets the frequency; as of 05/2019 it runs every 15 minutes.


Verification Process

  • Memberships have a Status of “Synced to ACME”.

  • Membership Cards have a Status of “Synced to ACME”.

  • You may find it useful to create a report of bulk Memberships grouped by Status.


Appendix A: Recommendations

ACME recommends restricting edit rights on the following fields, as changes to these fields may impact data integrity or cause integration failures.

Field

Definition

ACME External ID

Located on Membership and Membership Card. Unique database ID of the record in ACME.

External Import ID

Located on Membership and Membership Card. Used to link the membership or card to the overall membership or card history.

External Barcode

Located on Membership Card. Used for scanning membership cards at PoS and Access Control.

Level ID

Located on the Membership. System ID of the membership level may not be changed outside of a lifecycle action.

Offering ID

Located on the Membership. System ID of the membership offering, may not be changed outside of a lifecycle action.

Opportunity

Located on the Membership. If the Membership has been sold through an ACME sales channel, the Membership may not be assigned to a different Opportunity. However, Memberships sold outside of ACME (e.g. a caging facility or legacy imports) may have an Opportunity manually assigned, as there is no corresponding ACME Order.

Primary Member

Located on the Membership. May not be changed outside of a lifecycle action.

Contact

Located on the Membership Card. If the Contact field is not populated (Name on Card only), then a Contact may be added, but it cannot be changed to a different Contact.


Appendix B: Attachments

ACME/SF Membership Import Requirements Template

  • Attached below.


The content of this document is owned by ACME Technologies, Inc. and is strictly confidential. Unauthorized use, disclosure, or copying of this information is prohibited.