Create a customer
- Step 1: Create a POST request
- Step 2: Configure authorization
- Step 3: Configure headers
- Step 4: Add JSON payload
- Step 5: Send your request
In this scenario we assume that the Company record we want to assign to the new customer already exists in Financials and we know the Company record ID.
To create a customer, we need to run several dependent requests in a single API call:
- Retrieve the Customer dimension ID. We’ll use it to classify the new record we are going to create as customer.
- Retrieve the existing Company record ID.
- Create a new Account record and retrieve its ID.
- Assign the Customer dimension ID, Company record ID, and Account record ID to the new customer.
To do so, we’ll use a composite request. For more information, see Using Composite Resources.
To try out the steps in this section, install Postman and open the Postman collection we have prepared for you. In the collection, open the Create a customer request and replace variables with actual values.
Download Postman Open Postman Collection
Step 1: Create a POST request
Configure your application to send the following composite request:
POST https://{your_Salesforce_domain}/services/data/v44.0/composite
where
- {your_Salesforce_domain} is your Salesforce sandbox or production domain, for example, my-domain-1234.cs89.my.salesforce.com.
- v44.0 is the Force.com REST API version you want to use.
Step 2: Configure authorization
Make sure your request uses OAuth 2.0. Authorization data must be included in the request URL.
Step 3: Configure headers
Configure the request headers to include the following key-value pairs:
Key | Value |
---|---|
Authorization | Bearer {access_token} Example: Bearer 00D0N000000h6Yq!AR0AQObORnk9lCldrMydk1Y3cuyqpscqcU.T1xvoM1uWkWrr8MLu2ehJLKp7Mz3Qeu.eQGI13qlH_HfGEEMxV_J8FdI1TwdR |
Content-Type | application/json |
Step 4: Add JSON payload
Add your JSON payload to the request body. For example:
{
"allOrNone" : true,
"compositeRequest" :
[
{
"method" : "GET",
"url" : "/services/data/v44.0/sobjects/s2cor__Sage_ACC_Dimension__c/s2cor__UID__c/Customer/?fields=Id",
"referenceId" : "CustomerDimension"
},
{
"method" : "GET",
"url" : "/services/data/v44.0/sobjects/s2cor__Sage_COR_Company__c/a1E0N000007Q2T5UAK?fields=Id",
"referenceId" : "Company"
},
{
"method" : "POST",
"url" : "/services/data/v44.0/sobjects/Account",
"referenceId" : "NewAccount",
"body" : {
"Name" : "Example account 1"
}
},
{
"method" : "POST",
"url" : "/services/data/v44.0/sobjects/s2cor__Sage_ACC_Tag__c",
"referenceId" : "NewCustomerTag",
"body" : {
"Name" : "Example customer tag 1",
"s2cor__Account__c": "@{NewAccount.id}",
"s2cor__Dimension__c": "@{CustomerDimension.Id}",
"s2cor__Company__c" : "@{Company.Id}"
}
}
]
}
In this example payload:
- GET /services/data/v44.0/sobjects/s2cor__Sage_ACC_Dimension__c/s2cor__UID__c/Customer/?fields=Id
Retrieves the ID of the Customer dimension and stores it in theCustomerDimension
variable. - GET /services/data/v44.0/sobjects/s2cor__Sage_COR_Company__c/a1E0N000007Q2T5UAK?fields=Id
Retrieves the ID of the Company record we want to assign to the new customer and stores the ID in theCompany
variable. - POST /services/data/v44.0/sobjects/Account
Creates a new Account record, names it Example account 1, and stores its details in theNewAccount
variable. - POST /services/data/v44.0/sobjects/s2cor__Sage_ACC_Tag__c
Creates a new Dimension Tag record (Example customer tag 1) that combines the Customer dimension ID, Company record ID, and Account record ID. Basically the Dimension Tag record defines the new customer.
NOTE: We use the referenceId
parameter in the fourth request just because it must be present in each request that’s part of a composite request.
Step 5: Send your request
Send your request to create the customer.