CRM Integrations
Connect your CRM to Pigeon Perch to keep your contact lists synchronized. When a contact is added or updated in your CRM, the changes flow into Pigeon Perch automatically, and vice versa.
Supported CRMs
| Provider | Auth Method | Status |
|---|---|---|
| HubSpot | Private App Token | Available |
| Salesforce | OAuth 2.0 | Coming soon |
| Zoho CRM | OAuth 2.0 / API Key | Coming soon |
| Pipedrive | API Token | Coming soon |
Connecting HubSpot
- Go to Integrations in the dashboard sidebar
- Click Connect on the HubSpot card
- Create a Private App in your HubSpot account (Settings > Integrations > Private Apps)
- Grant the scopes:
crm.objects.contacts.readandcrm.objects.contacts.write - Copy the access token and paste it into Pigeon Perch
- Choose your sync direction and click Connect
Sync Directions
- Both ways: Changes in either system sync to the other
- CRM to Pigeon Perch: Contacts flow from HubSpot into Pigeon Perch only
- Pigeon Perch to CRM: Contacts flow from Pigeon Perch to HubSpot only
Field Mapping
By default, these fields are mapped between systems:
| Pigeon Perch | HubSpot |
|---|---|
| First Name | firstname |
| Last Name | lastname |
| Phone | phone |
| Company | company |
| City | city |
| State | state |
| Country | country |
| Postal Code | zip |
Conflict Resolution
When the same contact is modified in both systems between syncs, the configured conflict resolution strategy determines which version wins:
- Last write wins (default): The most recently updated version takes priority
- CRM wins: HubSpot data always overwrites Pigeon Perch data
- Pigeon Perch wins: Pigeon Perch data always overwrites HubSpot data
Disconnecting
You can disconnect a CRM integration at any time from the Integrations page. Contacts already synced remain in Pigeon Perch. Sync state is preserved in case you reconnect later.
API Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /crm | List all CRM integrations |
| POST | /crm/connect | Connect a CRM provider |
| GET | /crm/:id | Get integration details |
| GET | /crm/:id/stats | Get sync stats |
| PATCH | /crm/:id | Update settings |
| DELETE | /crm/:id | Disconnect |