Serverless data sync between Quickbooks Online and Salesforce using Kumologica
Most enterprises have an accounting platform for the finance team and a CRM platform for the sales department. Integration of an accounting platform with CRM will allow to share the financial data with the sales team. This allows the sales team to view customer information, track expenses, create customer reports, and gain insights for a better forecast.
In this article we will demonstrate the serverless data sync between a CRM platform (Salesforce)and an accounting platform (QuickBooks Online) using Kumologica. For those who are new to Kumologica I would recommend to go through our articles and youtube videos to get an insight.
Training & Certification
For a limited time, Kumologica offers free online certification for developers on https://training.kumologica.com/
Modern Integration types
Following are the modern integration models followed for realtime data sync.
- Serverless Integration — Serverless integration provides all the benefits of serverless computing with the flexibility to customise the integration according to your needs.
- App based integration — App based integration is an easy to configure point to point integration model. It provides minimal configurations with lesser flexibility to customise.
Use case
In this use case we will sync the customer contact information from Salesforce to Quickbooks Online. Whenever a new customer is on-boarded to Salesforce the same contact information will get updated on the Quickbooks Online contact module in realtime.
Prerequisite
- Salesforce account — For configuring the outbound message connecting contact module.
- Quickbooks Online account
- Kumologica Designer — Download the designer for building the flow.
- AWS account — For running the Kumologica flow as lambda.
Quickbooks node is part of Kumologica enterprise plan and are not available as free nodes in the designer palette. If you are interested please contact Kumologica sales through contact@kumologica.com
Implementation
We will be creating ContactInboundService flow in Kumologica designer. This flow will expose the endpoint on the resource path /sfdc.
ContactInboundService flow
Steps
- Open Kumologica Designer, click the Home button and choose Create New Kumologica Project.
- Enter name (for example ContactInboundService), select directory for project.
- press Create Button.
4. Drag and drop EventListener node to the canvas the provide the following configuration.
Display Name : POST /sfdc
Provider : AWS
Event Source : Amazon API gateway
Verb : POST
URL : /sfdc
5. Add a Logger node and wire with the EventListener node. Provide the following message. Wire the logger node to Eventlistener node.
'Request received - ' & msg.payload
6. Drag and drop the datamapper node and provide the following configuration. Wire the datamapper to logger.
{
"PrimaryEmailAddr": {
"Address": msg.payload.contact.emailAddress
},
"DisplayName": msg.payload.contact.first_name,
"Notes": msg.payload.contact.notes,
"FamilyName": "King",
"PrimaryPhone": {
"FreeFormNumber": msg.payload.contact.phonenumber
},
"CompanyName": msg.payload.contact.company,
"BillAddr": {
"City": msg.payload.contact.city,
"PostalCode": msg.payload.contact.po,
"Country": msg.payload.contact.country
},
"GivenName": msg.payload.contact.first_name
}
7. Add the Quickbooks node to the canvas and provide the following configurations.
Subdomain: <<your Quickbooks account subdomain>>
Token: <<You may fetch the token from Quickbooks playground>>
Version: v3
Operation: Customer
Actions: Create
Realm: <<Realm or companyID from your Quickbooks account>>
Payload: msg.payload
8. Add EventListener End node and wire with the SQS node. Provide the following configuration.
Display Name : Success
Status Code : 200
Content-Type : application/json
Payload : {"status": "completed"}
Deployment
- Select AWS icon on the right hand side vertical tab of Kumologica designer, select your AWS Profile.
Note: If you haven’t mapped the your local AWS profile with the designer then you may follow the below video to configure it.
Mapping the AWS profile to Kumologica designer
- Click Connect. If successfully connected will show the rest of the configuration options.
- Set the Memory to 512mb and Timeout as 20 seconds.
- Go to “Trigger” section under cloud tab and select the Amazon API Gateway trigger.
API trigger setting
4. Post successful deployment copy the endpoint url from the Kumologica terminal. We will need this endpoint for configuring the OutboundMessage in Salesforce.
Url eg: https://ii48n22.execute-api.ap-southeast-2.amazonaws.com/test
We have the Kumologica flow deployed and got the http endpoint. Lets now configure the endpoint as an OutboundMessage webhook in Salesforce.
Configuring OutboundMessage in Salesforce
For configuring the endpoint URL as an OutboundMessage webhook in Salesforce you can refer the following article.
https://kumologica.medium.com/serverless-integration-with-salesforce-using-kumologica-dd6b35b14598
Testing
- Go to the Salesforce contact module and create a new contact.
- Now go the Quickbook Online platform to see the new customer contact added.
Conclusion
This article has shown how easy to implement a real time data sync between Quickbooks online and Salesforce on a serverless infrastructure using Kumologica.
Remember Kumologica is totally free to download and use. Go ahead and give it a try, we would love to hear your feedback.