Import Groweo® contacts into Pipedrive via API
Groweo’s GET API lets you import contacts stored in Groweo® Contacts into Pipedrive without transferring data manually.
The integration retrieves contacts from Groweo using an API token and creates or updates the corresponding Persons in Pipedrive.
The Groweo API is read-only. It cannot be used to create, edit or delete contacts in Groweo. Groweo does not automatically push contact data to Pipedrive either, so the integration retrieves the data from Groweo and writes it to Pipedrive.
This guide uses an external integration to connect the Groweo GET API to the Pipedrive REST API.
Please note: Groweo does not design or implement integrations. We provide the API and API key needed to plan and implement contact retrieval.
Before you start
You will need:
- a Groweo API token
- a Pipedrive API token or OAuth connection
- permission to create custom Person fields in Pipedrive
- a field mapping between Groweo and Pipedrive
- an environment in which the integration can run on a schedule.
1. Get your Groweo API token
Ask your Groweo contact person or Groweo Customer Support for your API token.
The contacts endpoint is:
GET https://engine.groweo.com/engine/api/client-api/contacts
For example:
?page=1&limit=50&populateModuleData=true
Pass the token in the HTTP header:
x-client-api-token: <API_TOKEN>
Test the request first and inspect the JSON returned by your Groweo environment before building the Pipedrive mapping.
2. Choose how to authenticate with Pipedrive
Pipedrive supports API-token and OAuth 2.0 authentication.
For a company’s own integration, a Pipedrive API token can be used. The token is passed in the:
x-api-token: <PIPEDRIVE_API_TOKEN>
header.
Store both credentials securely:
GROWEO_API_TOKEN
PIPEDRIVE_API_TOKEN
Do not include them directly in source code.
If you are building an application for multiple Pipedrive customers, use OAuth 2.0 instead.
3. Create a Groweo ID custom field
Contacts are stored as Person records in Pipedrive.
Create a Person custom field called, for example:
Groweo ID
A text field uses the API field type:
varchar
If the Groweo API provides a stable unique contact identifier, store it in this field.
This gives the integration a persistent way to match a Groweo contact with a Pipedrive Person even if other information, such as the email address, changes.
4. Find the custom field code
Pipedrive custom fields have their own API field codes.
Retrieve Person fields with:
GET /api/v2/personFields
and use the field_code returned for your Groweo ID field.
Do not build the integration around the field’s display name.
5. Retrieve contacts from Groweo
For example:
const response = await fetch(
'https://engine.groweo.com/engine/api/client-api/contacts' +
'?page=1&limit=50&populateModuleData=true',
{
method: 'GET',
headers: {
'x-client-api-token': process.env.GROWEO_API_TOKEN
}
}
);
if (!response.ok) {
throw new Error(`Groweo API returned ${response.status}`);
}
const data = await response.json();
Inspect the actual response before implementing the Pipedrive mapping.
6. Define the field mapping
A possible mapping is:
| Groweo data | Pipedrive Person |
|---|---|
| unique contact identifier | Groweo ID |
| name | Name |
| email address | |
| phone number | Phone |
| company name | Organization |
| other Groweo data | custom Person fields |
This is an example, not documentation of the Groweo API response schema.
7. Check whether the Person already exists
Pipedrive does not provide a direct Person upsert endpoint for this workflow.
First search for a Person using the Groweo ID:
GET /api/v2/persons/search
For example:
term=<GROWEO_ID>
fields=custom_fields
exact_match=true
The integration logic is:
Groweo contact
↓
search by Groweo ID
↓
found?
↙ ↘
yes no
↓ ↓
PATCH POST
Person Person
Verify that the returned Person actually contains the expected Groweo ID before updating it.
8. Create a new Person
If no matching Person exists, use:
POST /api/v2/persons
A conceptual request could look like:
{
"name": "Example Contact",
"emails": [
{
"value": "example@example.com",
"primary": true
}
],
"phones": [
{
"value": "+358401234567",
"primary": true
}
],
"custom_fields": {
"GROWEO_ID_FIELD_CODE": "groweo-contact-id"
}
}
Replace GROWEO_ID_FIELD_CODE with the field code from your own Pipedrive environment.
9. Update an existing Person
If a matching Person is found, use its Pipedrive ID with:
PATCH /api/v2/persons/{id}
Send only the fields that the integration should update.
10. Handle Organisations separately
Pipedrive stores companies as separate Organization records.
If you want to synchronise company information as well, define separate matching logic for Organizations.
Do not automatically use the company name as a permanent integration identifier, as different organisations can have the same name.
If company synchronisation is not required, you can leave this logic out.
11. Handle Groweo pagination
The Groweo API uses:
?page=1&limit=50
Retrieve subsequent pages until all relevant contacts have been processed.
Determine the stopping condition from the actual Groweo API response.
12. Schedule the synchronisation
Because Groweo does not push changes to Pipedrive, run the integration on a schedule based on your business needs.
The flow is:
Schedule
↓
Groweo GET API
↓
contact processing
↓
Pipedrive Persons API
↓
create / update
13. Consider Pipedrive API limits
Pipedrive uses token-based API limits. Calls consume the company’s daily token budget and are also subject to short-term rate limits.
Use API v2 endpoints where available and handle 429 Too Many Requests responses according to the rate-limit information returned by Pipedrive.
Avoid updating unchanged records unnecessarily.
14. Add error handling
A production integration should handle at least:
- Groweo API errors
- Pipedrive API errors
- rate-limit responses
- invalid or missing data
- failures affecting individual contacts.
One failed contact should not stop the entire synchronisation.
15. API token or OAuth?
For a single company’s own Pipedrive integration, an API token can be used.
For an application that multiple customers connect to their own Pipedrive accounts, use OAuth 2.0.
In short:
One company's own integration
→ API token possible
Application for multiple customers
→ OAuth 2.0
How the integration works
GROWEO®
│
│ GET
▼
Contacts API
│
x-client-api-token
│
▼
Integration
│
field mapping
│
Groweo ID search
▼
Pipedrive Persons API
↙ ↘
POST PATCH
│ │
└──────┬───────┘
▼
PIPEDRIVE
Metadata
SEO title: Import Groweo contacts into Pipedrive via API
Meta description: Learn how to import contacts from Groweo Contacts into Pipedrive via API and set up automated contact synchronisation.
Schema description: This guide explains how to import contacts from Groweo Contacts into Pipedrive using the Groweo GET API. It covers API tokens and OAuth, the Groweo ID custom field, field mapping, finding, creating and updating Pipedrive Persons, pagination, scheduling and API limits.