Close Destination
UpdatedAbout this integration
Close is the CRM platform of choice for startups and SMBs engaged in inside sales. This integration uses your source data to identify enrich leads in Close, helping you identify your prospects, better understand their needs, and close more sales.
Use cases
- Keep your CRM up to date automatically. When people sign up or update their profile in your app, send
identifycalls to create or update their contact and lead records in Close—no manual data entry required. - Enrich leads with product usage data. Pass traits like plan type, company size, or last login date to Close so your sales team can prioritize outreach based on real activity.
- Sync company information to leads. Map company traits from your
identifycalls—like company name, industry, or employee count—to lead records in Close, giving your reps context before they reach out. - Route prospects to the right pipeline stage. Use lead status IDs to automatically set the pipeline stage for new leads based on their behavior in your product.
Getting started
Go to Data & Integrations > Integrations and select the Close entry in the Directory tab.
(Optional) Select the data sources that you want to connect to your outbound integration. You can always connect data sources later. We’ll only show you data sources that work with your integration.
Configure your integration.
API key: Your Close API key.
Lead Custom Field ID for Company ID: Enter the ID of a Lead Custom Field that'll be used to store Company ID. You'll need to create this Lead Custom Field in Close first, and then the integration will use this field to store the Company ID when creating new contacts, and/or will be used as a lookup key when updating existing Lead. The Custom Field type must be a text. If this field is not filled out, it will only lookup and de-dupe based on Contact's email.
Contact Custom Field ID for User ID: Enter the ID of a Contact Custom Field that'll be used to store User ID. You'll need to create this Contact Custom Field in Close first, and then the integration will use this field to store the User ID when creating new contacts, and/or will be used as a lookup key when updating existing Contacts. The Custom Field type must be a text. If this field is not filled out, it will only look up and de-dupe based on email.
Click Enable Destination.
Actions
When you’re done setting things up, you can go to the Actions tab to see how we map incoming data to your integration.
You may need to add actions for this integration
While we often have default triggers for actions, we don't always add those actions as defaults. You may need to add actions to make sure that you're sending all the data that you want to send to your integration. See our actions page for help setting up actions.
| Action | Default Trigger | Description |
|---|---|---|
| Create or Update Contact and Lead |
| Create or Update Contact and/or Lead. At first, Close will try to find Lead via Lead Company ID. If Lead is not found, Close will try to find a Contact either via Contact User ID or via Contact Email. If Contact is not found, Close will create a new Lead and Contact. It will also create a new Lead and Contact if Contact is found but exists under a Lead with different Lead Company ID. If the Action does not specify Lead Company ID, Close will update the Contact and also the Contact’s Lead. It might happen that Close will find multiple Contacts with the same Contact User ID or Contact Email. In such case, Close will update up to 10 Contacts, ordered by creation date. |
Create or update contact and lead
This is the only action for the Close destination, and it fires on identify calls by default. It handles both contacts and leads in a single operation:
- Close searches for an existing lead using the Lead Company ID (if you set a Lead Custom Field ID in your integration settings).
- If Close doesn’t find a matching lead, it searches for an existing contact using Contact User ID or Contact Email.
- If Close doesn’t find a matching contact, it creates a new lead and contact.
- If Close finds a contact that belongs to a lead with a different Company ID, it creates a new lead and contact, duplicating the contact under the new lead.
You can control this behavior with the boolean fields in the action: Allow creating new Leads, Allow updating existing Leads, Allow creating new Contacts, Allow updating existing Contacts, and Allow creating duplicate Contacts under different Lead.
Custom field IDs for matching
To match contacts and leads reliably, set up custom fields in Close and provide their IDs in your integration settings:
- Lead Custom Field ID for Company ID—create a text-type custom field on leads in Close, then enter its ID (for example,
cf_xxxx) in the integration settings. Close uses this field to match incomingidentifycalls to existing leads. - Contact Custom Field ID for User ID—create a text-type custom field on contacts in Close, then enter its ID in the integration settings. Close uses this field to match contacts by your internal user ID.
If you don’t set these fields, Close falls back to matching contacts by email only. This works for basic setups, but can cause issues if people change their email address.
Default data mapping
The action maps your identify call traits to Close fields automatically:
| Close field | Default mapping | Notes |
|---|---|---|
| Lead Name | traits.company.name | Company name for the lead record |
| Lead Company ID | traits.company.id | Used for lead matching (requires custom field) |
| Contact Name | traits.name | Full name of the contact |
| Contact Email | traits.email | Primary lookup key if no User ID custom field is set |
| Lead Description | — | No default; optional description for the lead record |
| Lead Status ID | — | No default; sets the pipeline stage, in stat_xxxx format |
| Contact Phone | traits.phone | Appended if the contact already has a different number |
| Contact URL | traits.website | Appended if the contact already has a different URL |
| Contact Title | traits.title | Job title |
| Contact User ID | userId | Used for contact matching (requires custom field) |
Set custom fields
You can pass custom field values for both leads and contacts. Use the Lead Custom Fields and Contact Custom Fields objects, where each key is the custom field ID from Close (for example, cf_xxxx) and the value comes from your identify call.
For example, to store a person’s plan trait as a custom field on their contact:
{
"type": "identify",
"userId": "user-123",
"traits": {
"email": "jane@example.com",
"name": "Jane Smith",
"plan": "enterprise",
"company": {
"id": "company-456",
"name": "Acme Corp"
}
}
}
Then add a key/value pair in Contact Custom Fields: set the key to your custom field ID in Close (like cf_abc123) and the value to $.traits.plan.
Handle multiple matches
If Close finds multiple contacts with the same email or User ID, it updates up to 10 contacts, ordered by creation date. This can happen if you have duplicate contacts across different leads. Check your Close data for duplicates if you see unexpected behavior.
Things to know
- This integration only supports
identifycalls. You can’t sendtrackorgroupevents to Close. All contact and lead data flows throughidentify. - The matching custom fields must exist in Close first. Create the lead and contact custom fields you reference for matching (Company ID and User ID) in Close before you enter their IDs in your integration settings.
- New email, phone, and URL values append, not replace. If a contact already has a different email, phone number, or URL, Close adds the new value rather than overwriting the existing one.
- Lead status IDs follow the
stat_xxxxformat. Find your status IDs in Close under Settings > Statuses & Pipelines > Lead Statuses. You can use these to assign leads to specific pipeline stages automatically. - Custom field IDs follow the
cf_xxxxformat. Find these in Close under Settings > Customization > Custom Fields. Click a field to see its ID.
