TABLE OF CONTENTS |
Additional areas of the Membership Import process are documented in the following guides:
ACME/Salesforce Membership Import Process
Membership Import: New Memberships and Other Lifecycle Actions
Membership Import: Editing Records
Merging Data in Salesforce
In Salesforce, you can use the native merge functionality to merge two accounts or contacts at a time. This action will send the resulting data via the ACME APIs and update the data inside ACME as well. After merging Accounts or Contacts, the entity that is going to remain after the merge will inherit any orders that were associated to the prior Account or Contact. Both Accounts/Contacts need to exist in ACME and in Salesforce for it to be considered a merge. There is not yet a membership merge API.
Supported scenarios:
- When the contacts/customers exist in SF and ACME - you can merge without issues.
- ACME will merge the customers and the winning customer ID in ACME will match the winning contact in Salesforce.
- Contact/customer A exists in SF and ACME and Contact B only exists in SF, and you want Contact A to remain.
- This is supported; B can be merged into A, and Contact A keeps the existing customer ID. (Technically, ACME doesn't consider this a merge because Contact B was not ever in ACME’s database. This is considered just an “Edit” of customer A on the ACME side.)
In either of the above cases when there are memberships associated with the merged/removed contact, after you merge the contacts or accounts, update the membership and card records and set the records to pending so they get picked up by the Import process and are associated to the correct customer/contact in both systems.
Unsupported scenario:
- Contact/customer A exists in SF and ACME and Contact B only exists in SF, and you want Contact B to remain.
- This is not supported. There is no process to move an ACME ID to a new SF record; if only one SF contact has an ACME customer ID, then that contact must win.
Note: Objects that do not sync back to Acme when updated (ie Opportunities) can be managed as needed in Salesforce, and there will not be any sync back to ACME, therefore no impact on the data in ACME. Our recommendation is to only delete/update orders that you are confident will not change, and are closed/historical orders, because if someone edits an order in ACME that was deleted from Salesforce, the edit will cause the updated information to get pushed to Salesforce and recreate the opportunity but with only the changed information. This would result in a data mis-match between the systems.
Updating Contacts and Households
In Salesforce, you can move a contact into a new household, which will automatically update the household ID in ACME to match. In ACME, memberships are associated to the customer not to the household, so if the moved contact is associated to a membership, you will not see the new household reflected on the membership immediately. You can update the account on the membership in Salesforce to match, or it will get updated the next time the membership is triggered to go to SF via the integration.
Deleting Memberships from Salesforce and ACME
In Salesforce, you can delete a membership version and that membership will also be deleted out of ACME. This will help you ensure your systems are in sync. When a membership record is deleted in Salesforce, the real time sync will immediately delete the membership and all its cards out of ACME. This should mostly be used in cases where there was an accidental membership version created in Salesforce, which propagated into ACME. If the membership was created as a result of an order and needs to be cancelled, you can cancel the membership as before via ACME or Visualforce. If you need to refund a membership but do not wish to cancel the membership, please reach out to ACME support with the details, as a data adjustment may be needed on the order.
If the membership was deleted in Salesforce by accident and the user restores it on the Salesforce side, you can use the Membership Import (beta) process to send the membership version back to ACME. First, delete the ACME External ID from both the membership and the membership cards, then simply click the "Update in ACME" button on the membership record and all of the correct fields will be set to have the membership get picked back up in the next batch and go to ACME. This will recreate the previously deleted version in ACME, but it will have a new ACME External ID (version number).
Note: Deleting a membership version does not cause any automatic updates to prior membership versions. If the most recent membership version is deleted, an earlier version of the membership will need to be restored to allow the member to use their membership. This will require a data fix request to be submitted to ACME Product Support to update the older version to be flagged as the "latest" version in ACME, and be updated to an Active status. The "latest" flag is what controls a membership record appearing in search in Back Office and the POS, as well as allowing members to verify online. In order to avoid a data fix in the case of a duplicate record, you can delete the previously created version which is no longer the latest, and keep the "latest" version and make any needed adjustments to that record.
Deleting a membership record that was used to place orders in ACME will lock those orders from any further edits, including manual refunds or data fixes performed by Product Support.
User Guide
Merging contacts with associated memberships
How to use the NPSP contact merge in SF to Merge Contact A and B so that contact A remains post-merge:
Use NPSP contact merge, found by clicking the App Launcher icon and searching for "Contact Merge".
You can merge two contacts at a time.
Select the "winning" contact (i.e. all the information from the winning contact will be maintained) or select field by field which one should "win".
Complete the merge.
After the merge is complete, delete the extra household in Salesforce on the merged contact.
At this point, any memberships in Salesforce which used to have Contact B's info will now show Contact A's info.
Finally, send any memberships that moved to the winning contact to ACME via the Membership Import Sync process: Use the "Update in ACME" button to mark the records to be picked up by the integration. When the Status changes to Synced to ACME, the process is complete.
When the records finish syncing, ACME will update and show the new (aka Contact A's) details.
Supported scenarios:
- When the contacts/customers exist in SF and ACME - you can merge without issues.
- ACME will merge the customers and the winning customer ID in ACME will match the winning contact in Salesforce.
- Contact/customer A exists in SF and ACME and Contact B only exists in SF, and you want Contact A to remain.
- This is supported; B can be merged into A, and Contact A keeps the existing customer ID. (Technically, ACME doesn't consider this a merge because Contact B was not ever in ACME’s database. This is considered just an “Edit” of customer A on the ACME side.)
In either of the above cases when there are memberships associated with the merged/removed contact, after you merge the contacts or accounts, follow the process above starting at step 6 to ensure that both systems reflect the correct information on the memberships.
Unsupported scenario:
- Contact/customer A exists in SF and ACME and Contact B only exists in SF, and you want Contact B to remain.
- This is not supported. There is no process to move an ACME ID to a new SF record; if only one SF contact has an ACME customer ID, then that contact must win.