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:
Not supported by Membership Import but can be performed at ACME’s Point of Sale
|
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.