Bullhorn Customer and Primary Contact to Sage Intacct
First published on: 05/14/2025/5:19 pm
Workflow Summary
- This workflow is executed by the “Import Bullhorn AR Invoice Statement to Sage Intacct AR Invoice” workflow to ensure customer and contact records are synchronized whenever a new invoice is processed.
- It ensures the Contact record in Sage Intacct is created or updated based on data from Bullhorn One.
- It ensures the Customer (Company) record in Sage Intacct is created or updated accordingly.
Workflow Description
This workflow is triggered by the “Import Bullhorn AR Invoice Statement to Sage Intacct AR Invoice” process and is responsible for ensuring that the customer and primary contact information from Bullhorn One is accurately synchronized with Sage Intacct.
Process Logic
- Retrieve Bullhorn One Customer Details: The workflow begins by retrieving the full set of customer and primary contact details from Bullhorn One, which are required for record creation or updates in Sage Intacct.
- Primary Contact Synchronization: The workflow checks whether the primary contact from the Bullhorn Company exists in Sage Intacct:
- If the contact exists, it is updated with the latest information.
- If the contact does not exist, a new contact record is created.
This process utilizes Sage Intacct’s unique control ID functionality, which allows the system to identify existing records without additional API lookups, improving performance and reducing unnecessary calls.
- Customer (Company) Synchronization: The workflow checks whether the Company record from Bullhorn exists in Sage Intacct:
- If the customer exists, it is updated.
- If the customer does not exist, a new record is created.
- During this process, synchronized contact is also linked to the customer record.
As with contacts, the workflow leverages unique control ID matching to optimize performance and avoid redundant validation calls to the Intacct API.
Workflow Diagram
This workflow is modular and can be reused by other custom workflows that require customer and contact synchronization between Bullhorn One and Sage Intacct.
Mapping
Create / Update Sage Intacct Contact
Create Contact
Bullhorn (ClientContact) | Sage Intacct (CONTACT) | Hardcoded Values / Comments |
---|---|---|
id |
CONTACTNAME |
|
companyName |
COMPANYNAME |
|
firstname |
FIRSTNAME |
|
lastname |
LASTNAME |
|
|
PRINTAS |
id + “-” + lastname + “,” + firstname |
mobile |
PHONE1 |
|
mobile |
CELLPHONE |
|
|
EMAIL1 |
|
address |
MAILADDRESS |
|
address1 |
ADDRESS1 |
|
address2 |
ADDRESS2 |
|
city |
CITY |
|
state | STATE | |
zip | ZIP | |
countryCode | ISOCOUNTRYCODE |
Update Contact
Bullhorn (ClientContact) | Sage Intacct (CONTACT) | Hardcoded Values / Comments |
---|---|---|
id |
CONTACTNAME |
|
companyName |
COMPANYNAME |
|
firstname |
FIRSTNAME |
|
lastname |
LASTNAME |
|
|
PRINTAS |
id + “-” + lastname + “,” + firstname |
mobile |
PHONE1 |
|
mobile |
CELLPHONE |
|
|
EMAIL1 |
|
address |
MAILADDRESS |
|
address1 |
ADDRESS1 |
|
address2 |
ADDRESS2 |
|
city |
CITY |
|
state | STATE | |
zip | ZIP | |
countryCode | ISOCOUNTRYCODE |
Create Customer
Bullhorn (ClientCorporation) | Sage Intacct (CUSTOMER) | Hardcoded Values/Comments |
---|---|---|
id |
CUSTOMERID |
|
companyName |
NAME |
|
|
STATUS |
|
|
DISPLAYCONTACT |
|
companyName |
COMPANYNAME |
|
|
TAXABLE |
"true" |
clientContacts[0].firstName |
FIRSTNAME |
|
clientContacts[0].lastName |
LASTNAME |
|
phone |
PHONE1 |
|
|
EMAIL1 |
|
address |
DISPLAYCONTACT.MAILADDRESS |
|
address1 | ADDRESS1 | |
address2 | ADDRESS2 | |
city |
CITY |
|
state | STATE | |
zip | ZIP | |
countryCode | ISOCOUNTRYCODE | |
[Sage Created/Updated Contact] | CUSTOMERCONTACTS.CUSTOMERENTITYCONTACTS | |
CATEGORYNAME | "Billing" | |
CONTACTNAME | CONTACT.NAME |
Update Customer
Bullhorn (ClientCorporation) | Sage Intacct (CUSTOMER) | Hardcoded Values/Comments |
---|---|---|
name |
NAME |
|
|
STATUS |
"active" |
|
DISPLAYCONTACT |
|
billingAddress |
DISPLAYCONTACT.MAILADDRESS |
|
address1 | ADDRESS1 | |
address2 | ADDRESS2 | |
city |
CITY |
|
state | STATE | |
zip | ZIP | |
countryCode | COUNTRY | |
[Sage Created/Updated Contact] | CUSTOMERCONTACTS.CUSTOMERENTITYCONTACTS | |
CATEGORYNAME | "Billing" | |
CONTACTNAME | CONTACT.NAME |
Assumptions
- The Bullhorn Company ID is used as the Customer ID in Sage Intacct for synchronizing customer records via the API.
- The Bullhorn Company Contact ID is used as the Contact ID in Sage Intacct for synchronizing contact records.
Last modified: 05/14/2025/5:45 pm |