Daily Learnings: Tue, Feb 27, 2024
Mountains cannot be surmounted except by winding paths. — Johann Wolfgang von Goethe
Integrating with QuickBooks Desktop
Today I met with a client that wants to develop an integration between Salesforce and QuickBooks Desktop (QBD). In preparation for this meeting, I had to do some research, as I’ve integrated these two. I’ve built many integrations during my time at SOLVD, including several between Salesforce and QBO (QuickBooks Online), but given that QBD runs on a given computer on-prem, there are some things to consider.
High-level Steps - Custom
These are the really high-level steps to approach this integration:
- Understand where their QBD instance is hosted, the OS, hardware specs, etc…
- In a cloud-based desktop environment?
- Locally on one person’s computer?
- Create a desktop application that your customer can install on their machine, bundled with the QBD SDK
- Generate and send an XML integration object to the QBD’s XML processor or SDK
- Create an API to/from which your custom-built desktop application can push/pull data
- In the case of a Salesforce<>QBD integration, this part could be essentially completed for us by leveraging one of the many SFDC APIs
Alternative Services/Design - Informatica
After talking with the client, we discovered that they already had an Informatica agent running locally on their on-prem server. This local agent connects to the Informatica cloud service, and allows for pushing / pulling data to/from on-prem servers or databases. Informatica functions similar to other iPaaS solutions, but it appears to be more limited in scope with regards to the OOTB connectors (though it does have a Salesforce connector). That said, the addition of a local, on-prem agent does make it quite an interesting solution.
Final Design
So, after discussing it further with the client and weighing our options, the high-level design we came up with was the following:
- Some configuration, automation, and custom UI to allow people to record payments in Salesforce
- Informatica configuration to register these updates and push them to the local agent running in their on-prem server, which stores the updated records on their SQL Server instance
- A small application (likely written in python or Node) that will run nightly, taking the records from the database and then recording them in QBD
There’s still a lot of work to do, as the devil is ALWAYS in the details, especially in integration projects involving ERP systems. However, it should turn out to be a fun project.
Resources
LangChain Agents
Some quick learnings based on a product that we’re building for SOLVD in the AI space.
- LangChain Agents
- Allows an AI application to reference different knowledge-bases for different sorts of queries
- E.g., A prompt or query from a user references a known topic, so the agent will query a prepared vector DB with the right information stored there.
- If a query doesn’t include that, you could have an agent fall back to a different “knowledge base”