Hi readers, my name is Rowan Van Tromp and I’m Operations Director of App Advisory Plus. We provide a system to search for apps, build app stacks and get support with App Advisory, including scoping, research, and implementation.
We’re also certified Zapier Experts and offer support with implementing Zaps in your accounting practice and for your clients.
Karbon is a platform for accounting firms to manage workflows, communicate with teams and deliver client work.
Karbon’s primary purpose is not managing leads, client segmentation, marketing, and communicating with clients in bulk. Therefore if you want to do this, you need to consider an additional CRM system such as HubSpot.
Using HubSpot will mean you have information about contacts and organisations in both Karbon and Hubspot. In this article we will consider
- How to think about what data you need in each system
- Workflows for data
- How you can integrate Karbon and HubSpot to sync relevant information on contacts and organisations
Where do I start?
First you need to consider your data requirements:
- What data do you need to store against contacts and organisations to do work (store in Karbon)?
- What data do you want to store against contacts and organisations to send segmented communications to clients in bulk (store in HubSpot)?
- What data do you want use for marketing your services to leads (store in HubSpot)
Once you have done this, where there is an overlap of data fields, decide which system will be the source of truth.
This spreadsheet will help with this process.
These are some typical segmentation fields you might want to consider storing:
- 1. Contractual status (i.e. Client / Lead)
- 2. Business structure (i.e. Ltd / LLP / Partnership / Sole Trader etc)
- 3. Client grade (i.e. A / B / C / D)
- 4. Services engaged to provide
- 5. Services a lead is interested in
- 7. Bookkeeping software & apps
- 8. Size
A. Turnover range
Some of this information is useful to be held in Karbon, because it gives staff information that may be relevant to the services (work items) to expect to see and how to provide them.
All of the segmented information relevant to communicating with clients would need to be in HubSpot.
What data fields should I sync?
Where there are common data field requirements, the aim should be to either sync automatically using Zapier (if the field is available via Karbon’s Zapier integration), or provide notifications to prompt a manual update of a field that is common to both systems but cannot be updated in Karbon through Zapier.
A key field to consider is the Karbon contact type. In Karbon you can only have 1 contact type per contact or organisation. However you could structure this in a way that covered various segments of information that do not have dedicated fields in Karbon – i.e. Contractual Status (Client / Lead / Supplier) – Client Grade. To do this you’d have to set up all of the integration-related variables as new Contact Types in Karbon.
If you are syncing from Karbon to HubSpot you can use Zapier’s split text formatter, to break these into separate fields for HubSpot.
If you are syncing from HubSpot to Karbon, then you can aggregate these fields together in Zapier for populating the Karbon client type. However it is critical that they exist in HubSpot for this to work, so they would need to be made ‘required’ fields in HubSpot.
What workflows should I have?
Contact data workflows can be complex, so it is incredibly important these are mapped out for all scenarios before you attempt to automate them.
The workflows you need will depend on two main variables:
a. Where you want the source of truth to come from for different data points.
b. When you want the data point to move (i.e. status change – prospect becomes client).
Origin sources of truth could include:
- An external source (such as a form / proposal software / accounting software)
You may also want to update the data point after initial sync, so need to consider which way they should sync. Bi-directional syncing is difficult to achieve without ending up in a perpetual syncing loop.
A key consideration for Karbon and HubSpot is whether you want to store emails in Karbon for prospects, as this will impact the workflows needed to sync contacts.
Practical Considerations for Automation
HubSpot & Karbon – Contacts & Organisations
Firstly let’s consider the different sorts of contacts you get in both systems.
In HubSpot you can have Contacts & Companies. In Karbon you get People and Organisations.
When HubSpot and Karbon are being integrated, treat HubSpot Companies as if they are Karbon Organisations, and HubSpot Contacts as if they are Karbon people.
Karbon Organisation = HubSpot Company
Karbon Person = HubSpot Contact
Karbon’s Zapier Integration
Karbon’s Zapier integration has the following Zapier Triggers & Actions:
- New person contact
- Updated person contact
- New organisation contact
- Updated organisation contact
- Find person contact
- Create person contact
- Update person contact
- Find organisation contact
- Create organisation contact
- Update organisation contact
The following data fields either pull through from a trigger, or are available to create or update with an action:
The Karbon fields available through Zapier are far fewer than the available fields within Karbon. For instance tax reference fields are present in Karbon, but are not available to connect to via Zapier.
Additional fields are not currently available via Karbon’s API, though this may change in the future.
HubSpot’s Zapier Integration
HubSpot’s Zapier integration is much more developed than Karbon’s, allowing you to sync to all data fields relating to a contact or company, as well as much more that will not be considered in this article, such as Deals.
How do I associate organisations or contacts in Karbon/HubSpot with their counterpart in HubSpot/Karbon?
A key step in contact workflows is to search one system to see if the contact already exists, because this will determine whether a new contact should be created, or an existing contact updated.
This is where ‘Find’ action steps are used. These will typically be the step after the Trigger step.
To find a person contact in Karbon you need to have an exact match on the contact name or email address.
To find an organisation contact in Karbon you need to have an exact match on the organisation name.
Because Karbon search setups are based on names, the names will always need to match in both systems.
This leaves room for errors because bi-directional syncing is harder.
A better option is to use a Zapier webhook to find the contact or organisation using the associated Karbon ID via the Karbon API. For this you need to request API access for your Karbon organisation and ask a specialist like App Advisory Plus to help you.
To find a company or contact in HubSpot you can use almost any field that is held on the record in HubSpot.
The most foolproof field to use is the HubSpot ‘ID’ which is unique to that company / contact record and will not ever change.
To find based on the HubSpot ID this needs to be held in a Zapier-integrated field in Karbon. The best field to use for this is the ‘Client Identifier’, but it is key that it does not get changed in Karbon.
Fortunately (unlike Karbon) HubSpot has fallback fields, so if your first option doesn’t work then you can try another two fields.
Storing the Karbon ID field in HubSpot is another great way to store a ‘safe’ search field to find a HubSpot contact or company. To do this you would need to set up a custom property in HubSpot called Karbon ID for the HubSpot objects Companies & Contacts. This can be used to store the related Karbon ID, which can be used to make the integration less likely to fail.
Another option could be to use the contact or organisation name.
HubSpot also allows you to create a contact / company if one is not found in the search, which is useful if you want Karbon to be your source of truth.
Bringing in services to HubSpot (prospects / clients)
There are no work (service) related triggers available from Karbon’s Zapier integration at this time, so to get Service related information into HubSpot you would need to connect up a proposal system like GoProposal or Practice Ignition to automate these being populated into HubSpot.
GoProposal users would need to use the ‘Proposal Won’ Zapier trigger, and use a split text formatter to break up services into individual lines (GoProposal presents them all together) and allocate them to HubSpot.
To bring in services that prospects are interested in but not yet signed off, the ‘Proposal Created’ trigger could be used. Similarly a split text formatter to break up services into individual lines (GoProposal presents them all together) and allocate them to fields HubSpot.
Practice Ignition users would need to use the ‘Service Accepted by Client’ Zapier trigger, which would fire for each service accepted and allow that service to be added to the Company in HubSpot.
To bring in services that prospects are interested in, for Practice Ignition users this is a manual process, since their Zapier triggers do not provide service specific information for non-accepted proposals.