amoCRM
Renta exports seven amoCRM objects to your data warehouse: leads, contacts, companies, recurring customers, pipelines with their stages, account users, and the Events change log, which records who changed a field and what its value was before and after.
You choose the fields for each object yourself. Renta loads them together with custom fields, tags, and the IDs of linked entities, and keeps leads, contacts, and events up to date incrementally on Google BigQuery and ClickHouse.
Authentication
Renta connects to amoCRM through OAuth. You log in, choose which amoCRM account to connect, and allow access. You do not need to copy any API keys from the amoCRM settings.
Connect amoCRM source
- Navigate to the Connections > Catalog section in the left sidebar.
- Open the CRM category and click the AmoCRM card.

Click Log in to your amoCRM account. Renta redirects you to the amoCRM consent page.

- If you manage several amoCRM accounts, pick the one to connect in the account dropdown.
- Click Allow.
amoCRM installs the Renta widget in the selected account. You can revoke the granted access at any time in the integration settings on the amoCRM side.

- In the Source name field, specify a name for this data source. It is used exclusively in the Renta interface.
- Click Save.
The Access granted card shows the connected account. The Re-authorize button next to it repeats the OAuth flow if you later need to switch the account.

The new source appears in the Sources list with the Active status. You can now use it in pipelines.

Create an amoCRM pipeline
Once the source is connected, link it to a destination and configure the pipeline.
In the left sidebar, click New pipeline. On the Source step, select AmoCRM under Already connected and click Next step.

Choose the amoCRM connection you created earlier and click Next step. The card shows the subdomain of the connected account.

On the Destination step, select your destination (for example, Google BigQuery) and click Next step.

Choose the destination connection you want to load data into and click Next step.

Pipeline configuration
On the final step, choose the report, pick its fields, and set the schedule.
Report type
Select which amoCRM object the pipeline exports. One pipeline loads one report type.

| Report type | Description |
|---|---|
| Leads | Deal records: budget, status and pipeline IDs, creation, update, and close dates, loss reason, custom fields, tags, and the IDs of linked contacts and companies. |
| Contacts | Contact records: full name split into first and last name, custom fields, tags, and the IDs of linked leads, companies, and customers. |
| Companies | Company records: attributes, custom fields, tags, and the IDs of linked contacts and leads. |
| Customers | Recurring customer records: expected date and amount of the next purchase, LTV, purchase count, average check, and periodicity. |
| Pipelines | The account's lead pipelines together with their stages: stage IDs, names, order, and type. |
| Users | Account users: name, email, interface language, and access rights to leads, contacts, companies, and tasks. |
| Events | The change log of the account: the entity the event belongs to, the event type, the user who caused it, and the value before and after the change. |
Parameters
Select the amoCRM fields to include in the destination table.

| Name | API name | Description |
|---|---|---|
ID int | id | ID of the company. |
Name text | name | Name of the company. |
Responsible User ID int | responsible_user_id | ID of the user responsible for the company. |
Group ID int | group_id | ID of the group to which the responsible user belongs. |
Created By int | created_by | ID of the user who created the company. |
Updated By int | updated_by | ID of the user who last updated the company. |
Created At int | created_at | Date of creation of the company, passed in Unix Timestamp. |
Updated At int | updated_at | Date of update of the company, passed in Unix Timestamp. |
Closest Task At int | closest_task_at | Date of the nearest task to be performed, passed in Unix Timestamp. |
Custom fields values structure | custom_fields_values | Array of custom fields with additional information. |
Tags structure | tags | Array of tags with additional information. |
Contacts structure | contacts | Array of contact with additional information. |
Leads structure | leads | Array of company additional information. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | ID of the contact. |
Name text | name | Name of the contact. |
First Name text | first_name | First name of the contact. |
Last Name text | last_name | Last name of the contact. |
Responsible User ID int | responsible_user_id | ID of the user responsible for the contact. |
Group ID int | group_id | ID of the group to which the responsible user belongs. |
Created By int | created_by | ID of the user who created the contact. |
Updated By int | updated_by | ID of the user who last updated the contact. |
Created At int | created_at | Date of creation of the contact, passed in Unix Timestamp. |
Created Date At date | created_date_at | Creation date of the event, passed in Date format. |
Updated At · Required int | updated_at | Date of update of the contact, passed in Unix Timestamp. |
Is Deleted bool | is_deleted | Whether the contact is deleted or not. |
Closest Task At int | closest_task_at | Date of the nearest task to be performed, passed in Unix Timestamp. |
Account ID int | account_id | ID of the account in which the contact is located. |
Custom fields values structure | custom_fields_values | Array of custom fields with additional information. |
Tags structure | tags | Array of tags with additional information. |
Companies structure | companies | Array of contact with additional information. |
Leads structure | leads | Array of company additional information. |
Customers structure | customers | Array of customers additional information. |
| Name | API name | Description |
|---|---|---|
ID · Required int | id | ID of the lead. |
Name text | name | Name of the lead. |
Price int | price | Budget of the lead. |
Responsible User ID int | responsible_user_id | ID of the user responsible for the lead. |
Group ID int | group_id | ID of the group which the responsible user belongs to. |
Status ID int | status_id | ID of the status the lead is added to, by default – the first stage of the main pipeline. |
Pipeline ID int | pipeline_id | ID of the pipeline the lead is added to. |
Loss Reason ID int | loss_reason_id | ID of the reason for lead rejection. |
Source ID int | source_id | Required GET parameter with. ID of the lead source. |
Created By int | created_by | ID of the user who created the lead. |
Updated By int | updated_by | ID of the user who last updated the lead. |
Closed At int | closed_at | Closure date of the lead, passed in Unix Timestamp. |
Created At int | created_at | Creation date of the lead, passed in Unix Timestamp. |
Created Date At date | created_date_at | Creation date of the event, passed in Date format. |
Updated At · Required int | updated_at | Update date of the lead, passed in Unix Timestamp. |
Closest Task At int | closest_task_at | Date of the nearest task to be performed, passed in Unix Timestamp. |
Is Deleted bool | is_deleted | Whether the lead is deleted or not. |
Score int | score | Scoring of the lead. |
Account ID int | account_id | ID of the account in which the lead is located. |
Labor Cost int | labor_cost | Labor cost field type shows how much time was spent working on the lead. Time measured in seconds. |
Is Price Modified by Robot bool | is_price_modified_by_robot | Required GET parameter with. Whether the lead's budget was last modified by a robot. |
Custom fields values structure | custom_fields_values | Array of custom fields with additional information. |
Tags structure | tags | Array of tags with additional information. |
Contacts structure | contacts | Array of contact with additional information. |
Companies structure | companies | Array of company additional information. |
| Name | API name | Description |
|---|---|---|
ID int | id | ID of the pipeline. |
Name text | name | Name of the pipeline. |
Sort int | sort | Sort order of the pipeline. |
Is Main bool | is_main | Whether the pipeline is the main one. |
Is Unsorted On bool | is_unsorted_on | Whether the unsorted feature is enabled in the pipeline. |
Is Archive bool | is_archive | Whether the pipeline is archived. |
Account ID int | account_id | ID of the account in which the pipeline is located. |
Statuses structure | statuses | Array of custom statuses fields with additional information. |
| Name | API name | Description |
|---|---|---|
ID int | id | ID of the customer. |
Name text | name | Name of the customer. |
Next Price int | next_price | Expected purchase amount. |
Next Date int | next_date | Expected date of the next purchase. Data in Unix Timestamp. |
Responsible User ID int | responsible_user_id | ID of the user responsible for the customer. |
Status ID int | status_id | ID of the customer's status in the account. |
Periodicity int | periodicity | Periodicity (data required for customers with enabled periodicity functionality). |
Created By int | created_by | ID of the user who created the customer. |
Updated By int | updated_by | ID of the user who last updated the customer. |
Created At int | created_at | Date of creation of the customer, passed in Unix Timestamp. |
Updated At int | updated_at | Date of update of the customer, passed in Unix Timestamp. |
Closest Task At int | closest_task_at | Date of the nearest task to be performed, passed in Unix Timestamp. |
Is Deleted bool | is_deleted | Whether the customer is deleted or not. |
LTV int | ltv | Total purchase amount. |
Purchases Count int | purchases_count | Number of purchases. |
Average Check int | average_check | Average purchase size. |
Account ID int | account_id | ID of the account in which the customer is located. |
Custom fields values structure | custom_fields_values | Array of custom fields with additional information. |
Tags structure | tags | Array of tags with additional information. |
Contacts structure | contacts | Array of contact with additional information. |
Companies structure | companies | Array of company additional information. |
| Name | API name | Description |
|---|---|---|
ID int | id | ID of the user. |
Name text | name | Full name of the user. |
Email text | email | Email address of the user. |
Language text | lang | Language of the user. One of the options: ru, en, es. |
Leads Access Rights [Object] structure | leads | Object containing user's access rights to leads. |
Contacts Access Rights [Object] structure | contacts | Object containing user's access rights to contacts. |
Companies Access Rights [Object] structure | companies | Object containing user's access rights to companies. |
Tasks Access Rights [Object] structure | tasks | Object containing user's access rights to tasks. |
User Rights [Object] structure | rights | Object containing user's system-wide rights and permissions. |
| Name | API name | Description |
|---|---|---|
ID · Required text | id | Unique ID of the event (string format). |
Entity ID int | entity_id | ID of the entity (lead, contact, company, customer) to which the event is attached. |
Entity Type text | entity_type | Type of the entity (lead, contact, company, customer). |
Type text | type | Type of the event (e.g., outgoing_chat_message, custom_field_value_changed, etc.). |
Created By int | created_by | ID of the user who created the event. |
Created At · Required int | created_at | Creation date of the event, passed in Unix Timestamp. |
Created Date At date | created_date_at | Creation date of the event, passed in Date format. |
Account ID int | account_id | ID of the account in which the event is located. |
Responsible User ID int | responsible_user_id | ID of the user responsible for the event. |
Group ID int | group_id | ID of the group to which the responsible user belongs. |
Value After json | value_after | Array of values after the event change. |
Value Before json | value_before | Array of values before the event change. |
Tick the fields one by one, or take the whole set with Select All. The Selected tab keeps your current choice.
Each report has a couple of fields the pipeline cannot work without. In the Leads and Contacts reports these are ID and Updated At, in the Events report ID and Created At. They come pre-selected and greyed out in the picker.
Structured parameters load as nested records. Custom fields values keeps one record per custom field with its ID, name, code, type, and value. Tags, Statuses, the lists of linked entities (Contacts, Companies, Leads, Customers), and the access-rights objects of the Users report work the same way. In the Events report, Value Before and Value After arrive as JSON, because their shape depends on the event type.
Date parameters such as Created At, Updated At, Closed At, and Next Date arrive as Unix timestamps. Created Date At is the same moment as Created At written as a calendar date.
If a custom field holds several values, the field_value column keeps the first one.
Table name
Name the pipeline and the destination table.

- Integration name.
The name of the pipeline. It is used exclusively in the Renta interface. - Table name.
The destination table name. You can keep the auto-generated name or enter your own.
Schedule
Choose how often the pipeline runs.

| Schedule type | Description |
|---|---|
| Manual | The pipeline runs only when triggered manually through the interface or via API. |
| Daily | The pipeline runs once a day at the specified update time. |
| Interval | The pipeline runs at specified time intervals. |
| Cron Expression | The pipeline runs on a schedule defined by a cron expression. |
For Daily schedules, set the Update time, the exact time each run starts, then click Create pipeline.

Renta also supports API triggers and integration with external orchestrators such as Apache Airflow, Dagster, and Prefect. See the full scheduling documentation for details.
The new pipeline appears in the Pipelines section under the ETL tab, where you can track its runs, progress, and the destination table name.

Sync strategy
How Renta synchronizes an amoCRM report depends on the report type and on whether the destination supports merge.
| Strategy | Supported report types | Description |
|---|---|---|
| Incremental (merge) | Leads, Contacts, Events (on Google BigQuery and ClickHouse) | Renta requests only the records changed since the previous run, filtering Leads and Contacts by their update date and Events by their creation date. Every run re-reads a three-day overlap, so Renta still picks up a change that reached amoCRM late. Records are upserted into the destination table by their id. For Leads and Contacts, Renta additionally collects the records deleted in amoCRM within the same window. |
| Full reload | Companies, Customers, Pipelines, Users (on any destination), and Leads, Contacts, Events (on the remaining destinations) | Renta downloads the complete list of records on every run and replaces the contents of the destination table, so the table mirrors the amoCRM account at the time of the run. |
Selecting the Created Date At parameter partitions the destination table by the day the record was created. For Leads and Contacts it also stops the collection of deleted records, so deletions no longer reach the table.
Renta decides the sync window itself for every report type, which is why the pipeline has no date range or overwrite period settings.
Ready to get started?
Build your data pipeline today or get a personalized demo. Start free!
Need help?
Get expert support to ensure your project succeeds. We're here to help!
Feature requests?
Help shape our product! Share your ideas for new features and integrations.