To activate BrightSync (prebuilt CRM sync logic) for your CRM platform we need to add a new platform connector that will use your REST API. The CRM connector requires a number of API methods that we ask you to describe:

Authentication

The connector needs to connect to your API on behalf of your user. How does your API authenticate?

  • Using OAuth2 Bearer token
  • Using Basic auth with an API token
  • Using another auth method

CRM Users

A User object represents a user in your CRM system (OrgId, UserId, Name, Email, Timezone). The connector needs to be able to receive information about the current user and optionally be able to find other user records:

  • `getMe` - current user information (OrgId, UserId, Name, Email, Timezone)
  • `getUsersByEmail` (email or list of emails) - good to have

CRM Accounts

An account represents a Company, Department within a company. Accounts are usually associated with Contacts and Opportunities. The connector needs to be able to:

  • `createAccount` and get an account by id
  • `getMyAccounts` (all or updated since a timestamp) - get a list of accounts the current user owns. In the `updated since` mode include deleted accounts.

Contacts, calendar, email syncs need the following API methods to be able to find matching accounts for new contacts:

  • `getAccountsByName(name)`
  • `getAccountsByDomain(email domain)` - find accounts associated with an email domain. If such a method is not available the sync will try to derive accounts from contacts associated with the email domain.

CRM Contacts

A contact represents a person with whom you communicate in an organization, usually in pursuit of a business opportunity. The connector needs to be able to:

  • `createContact` and get/update/delete contact by id
  • `getMyContacts(all or updated since a timestamp)` - get a list of contacts the current user owns. In the `updated since` mode include deleted contacts.

Contacts, calendar, email syncs need the following API methods to be able to prevent duplications:

  • `getContactsByName(name)`
  • `getContactsByEmail(email or list of emails)` - find accounts by emails.
  • `getContactsByEmailDomain(email domain)` - to detect accounts associated with an email domain

CRM Activity/EmailMessage

How should emails be logged into your CRM? Some systems have a generic Activity object for logging tasks, calls, emails, other systems have a dedicated EmailMessage object.

  • `createEmail` and `updateEmail(id)`

CRM Opportunity

An opportunity represents a business deal with companies or people that generate real revenue for your organization. 

Calendar, email syncs may need the following API methods if logged email need to be associated with opportunities explicitly:
  • `getOpportunitiesForContacts(list of contact ids)`