Implementing your CRM connector
The developer framework is currently in BETA
This framework is in beta. Please submit a Github issue if you encounter any problems or have a question.
App Connect's developer framework comes with everything you need to build an connector for virtually any target CRM platform. While the sample connector that is provided through this framework is implemented in Javascript, you are free to implement your server in whatever language you prefer -- provided that it implements the interface properly. However, we recommend most developers utilize this framework directly, as it will dramatically decrease your time to market.
Every connector contains two key files or elements:
- A manifest file that defines and governs app behaviors
- A server that the Unfied Chrome extension interfaces with to communicate with the target CRM
How the Chrome extension interfaces with an connector to talk to a CRM
One can think of an connector as nothing more than an intermediary service that is responsible for translating actions performed by a user of the Chrome extension, into API calls made to a target CRM that fulfill a user's intent. Take for example when a user logs a call:
- A user clicks "Log call" from the call history page.
- The user fills out a form in which they enter notes and other data related to the call.
- The user clicks "Save."
- The Chrome extension then packages up the user's input, and sends it to the connector.
- The connector's server receives a request stating, "a user wants to log a call."
- The connector's server then calls the target CRM's API to log a call.
This basic pattern is repeated for every action the framework enables. For those who want to nerd-out on this pattern, the following sequence diagram will describe the process more thoroughly.
Sequence diagram

Working examples
The framework currently contains a total of five natively supported CRMs. These connectors are useful reference implementations for developers to learn from. The following table lists these connectors and what sets them apart from one another technically:
| CRM | Auth type | Contact type | Note |
|---|---|---|---|
| Clio | OAuth | Contact | Clio API only supports exact match for contact match by phone number, so users need to use overriding formats |
| Pipedrive | OAuth | Contact | Pipedrive has unique auth process behind OAuth, it's not recommended to be used as OAuth reference |
| Insightly | api key | Lead and Contact | Insightly API only supports exact match for contact match by phone number, so users need to use overriding formats |
| Bullhorn | OAuth | Lead, Candidate and Contact | Bullhorn has unique auth process behind OAuth, it's not recommended to be used as OAuth reference |
| Redtail | api key (username & password) | Contact | None |
| NetSuite | OAuth | Contact and Customer | None |
Development process
This guide will walk you through the process of creating an connector step-by-step. At a high-level however, developers will be expected to do the following:
- Create a manifest file
- Implement each of the required connector interfaces:
- Deploy your server
- Configure the App Connect Chrome extension to load your custom connector
Let's get started.