Synchronize Self-Service Orders
This article explains how to create the account in Salesforce and link it to the CRM Account ID field in the Zuora customer account. Because self-service websites and infrastructure to support those website vary, it is beyond the scope of this article to provide source-code.
Merchants often have a self-service website where customers make product selections, and upon checkout, a subscription is created in Zuora via the Zuora API. In these situations, if the merchant deployed Zuora CPQ to connect Zuora and their Salesforce instance, there is an extra step that must be performed before subscriptions created in Zuora are synced to Salesforce. This extra step is the creation of an account in Salesforce and linking it to the CRM ID field in the customer account in Zuora. The Zuora 360 sync is one-way, from Zuora to Salesforce, and works only if the Salesforce account already exists and the CRM Account ID exists in the Zuora account.
Custom programming is required to create the account in Salesforce. There are also checks and validations if the account already exists in Salesforce.
- From the self-service user interface, create a call to Salesforce that creates the account and subscription in Zuora.
- Query Salesforce to verify whether account/contact already exists using the email address or domain as a unique key.
- If it exists: Pull the account ID to populate CRM account ID in Zuora in a Create order call.
- If it does not exist: Create a new account (you must specify the Account Name) and pull the account ID to populate CRM account ID in Zuora in a Create order call.
- Once the Zuora account is created with the Salesforce/CRM Account ID, the sync will use this field to map the two accounts and push over all of the account information
This should take place immediately before the Create order call is invoked from the website to Zuora. This ensures that the Salesforce account is not created unnecessarily if the customer cancels the checkout process at the last minute.