KeyCRM
Renta loads a KeyCRM account into your data warehouse as eight report types: orders, buyers, companies, products, offers, sales pipelines, account users, and custom field definitions.
An order arrives with its money broken out: product total, shipping and wrap price, discounts, taxes, expenses, margin, payments, and grand total. Products and offers add stock and reserve quantities to their prices, barcodes, and dimensions.
Authentication
Renta connects to KeyCRM with the account's Open API key. KeyCRM issues one key for the whole CRM account rather than one per user, so a pipeline reaches everything the account holds.
To get the key, open Settings > General in KeyCRM, find the API key row, and click Generate API key.
Only the account owner can regenerate the key. A new value replaces the old one immediately, and every integration still holding the old value stops working until you paste the new one into its connection.
Connect KeyCRM source
- Navigate to the Connections > Catalog section in the left sidebar.
- Open the CRM category and click the KeyCRM card.

In the API key field, paste the Open API key of your KeyCRM account.
To find it, open Settings > General in KeyCRM and copy the value from the API key row.

- In the Source name field, specify a name for this data source. It is used exclusively in the Renta interface.
- Click Save.
Renta checks the key with KeyCRM before saving the connection, so a mistyped or already replaced key fails right on this step.

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

Create a KeyCRM pipeline
Once the source is connected, create a pipeline to sync your KeyCRM data into your destination.
In the left sidebar, click New pipeline. On the Source step, select KeyCRM under Already connected and click Next step.

Choose the KeyCRM connection you created earlier and click Next step. The card shows the name of the connection and the date it was added.

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. The card shows the dataset and project the data will land in.

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

| Report type | Description |
|---|---|
| Buyers | Customers with their full name, birthday, email addresses and phone numbers, the manager and company assigned to them, currency and personal discount, the number and total sum of their orders, and a duplicate flag. |
| Companies | Companies attached to buyers: name, title, address, account details, assigned manager, and notes. |
| Custom Fields | Definitions of the custom fields configured in the account: name, type, the model the field belongs to, its position, and whether it is required or accepts several values. |
| Offers | The individual variants a product splits into: price and purchase price, stock and reserved quantity, barcode and SKU, weight and dimensions, the properties that tell one variant from another, and the archived and default flags. |
| Orders | Orders with their buyer, status and status group, the source they came from, promo code, payment and fiscal status, product total, shipping and wrap price, discounts, taxes, expenses, margin, payments and grand total, buyer, client and manager comments, gift flags, and the times the order was placed, closed, and last changed status. |
| Pipelines | Sales pipelines: title, lead type, position in the list, and whether the pipeline uses payments and products. |
| Products | The product catalog: name, category, description, price range and purchase price, currency, stock and reserved quantity, barcode and SKU, unit type, weight and dimensions, image links, the sales channels the product is listed in, and the archived flag. |
| Users | Account users with their email, username, first, last and full name, phone, role, status, and the time they last logged in. |
Parameters
Select the KeyCRM fields to include in the destination table.

| Name | API name | Description |
|---|---|---|
ID int | id | ID of the pipeline. |
Title text | title | Title of the pipeline. |
Lead Type text | lead_type | Type of the lead in the pipeline. |
Position int | position | Position of the pipeline. |
Target ID int | target_id | ID of the target associated with the pipeline. Can be null. |
Target Type text | target_type | Type of the target associated with the pipeline. Can be null. |
Created At datetime | created_at | Date and time when the pipeline was created in ISO format. |
Updated At datetime | updated_at | Date and time when the pipeline was last updated in ISO format. |
Deleted At datetime | deleted_at | Date and time when the pipeline was deleted in ISO format. Can be null if not deleted. |
Use Payments bool | use_payments | Whether the pipeline uses payments. |
Use Products bool | use_products | Whether the pipeline uses products. |
| Name | API name | Description |
|---|---|---|
ID int | id | ID of the buyer. |
Full Name text | full_name | Full name of the buyer. |
Birthday text | birthday | Birthday of the buyer in ISO format. Can be null if not specified. |
Company ID int | company_id | ID of the company associated with the buyer. Can be null. |
Manager ID int | manager_id | ID of the manager assigned to the buyer. |
Currency text | currency | Currency code used by the buyer (e.g., UAH, USD, EUR). |
Discount int | discount | Discount percentage applied to the buyer. |
Email array_string | email | Array of email addresses of the buyer. |
Phone array_string | phone | Array of phone numbers of the buyer. |
Note text | note | Note or comment about the buyer. Can be null. |
Orders Count float | orders_count | Total number of orders made by the buyer. |
Orders Sum float | orders_sum | Total sum of all orders made by the buyer. |
Has Duplicates int | has_duplicates | Indicates whether the buyer has duplicate records. |
Image text | image | URL to the buyer's image. Can be null. |
Picture text | picture | URL to the buyer's picture. |
Created At datetime | created_at | Date and time when the buyer was created in ISO format. |
Updated At datetime | updated_at | Date and time when the buyer was last updated in ISO format. |
Deleted At datetime | deleted_at | Date and time when the buyer was deleted in ISO format. Can be null if not deleted. |
| Name | API name | Description |
|---|---|---|
ID int | id | ID of the company. |
Name text | name | Name of the company. |
Title text | title | Title of the company. |
Address text | address | Address of the company. |
Account text | account | Account information of the company. Can be null. |
Manager ID int | manager_id | ID of the manager assigned to the company. Can be null. |
Notes text | notes | Notes or comments about the company. Can be null. |
Created At datetime | created_at | Date and time when the company was created in ISO format. |
Updated At datetime | updated_at | Date and time when the company was last updated in ISO format. |
| Name | API name | Description |
|---|---|---|
ID int | id | ID of the custom field. |
Name text | name | Name of the custom field. |
Type text | type | Type of the custom field (e.g., select, text, number, etc.). |
Model text | model | Model to which the custom field belongs (e.g., lead, buyer, order, etc.). |
Position int | position | Position/order of the custom field. |
Is Multiple bool | is_multiple | Whether the custom field allows multiple values. |
Required bool | required | Whether the custom field is required. |
UUID text | uuid | Unique identifier (UUID) of the custom field. |
| Name | API name | Description |
|---|---|---|
ID int | id | ID of the offer. |
Product ID int | product_id | ID of the product associated with the offer. |
Price float | price | Price of the offer. |
Purchased Price float | purchased_price | Price at which the product was purchased. |
Quantity int | quantity | Available quantity of the offer. |
In Reserve int | in_reserve | Quantity of items in reserve. |
Barcode text | barcode | Barcode of the offer. |
SKU text | sku | Stock Keeping Unit (SKU) of the offer. Can be null. |
Weight int | weight | Weight of the offer. Can be null. |
Width int | width | Width of the offer. Can be null. |
Height int | height | Height of the offer. Can be null. |
Length int | length | Length of the offer. Can be null. |
Thumbnail URL text | thumbnail_url | URL to the thumbnail image of the offer. Can be null. |
Is Archived bool | is_archived | Whether the offer is archived. |
Is Default bool | is_default | Whether this is the default offer. |
Properties array_string | properties | Array of properties of the offer. |
Created At datetime | created_at | Date and time when the offer was created in ISO format. |
Updated At datetime | updated_at | Date and time when the offer was last updated in ISO format. |
| Name | API name | Description |
|---|---|---|
ID int | id | ID of the order. |
Client ID int | client_id | ID of the client/buyer associated with the order. |
Parent ID int | parent_id | ID of the parent order. Can be null. |
Status ID int | status_id | ID of the order status. |
Status Group ID int | status_group_id | ID of the status group. |
Status On Source text | status_on_source | Status of the order on the source system. |
Source ID int | source_id | ID of the source where the order was created. |
Source UUID text | source_uuid | UUID of the order on the source system. |
Global Source UUID text | global_source_uuid | Global UUID of the order on the source system. |
Register ID int | register_id | ID of the cash register. Can be null. |
Shipping Type ID int | shipping_type_id | ID of the shipping type. Can be null. |
Promocode text | promocode | Promocode applied to the order. |
Payment Status text | payment_status | Payment status of the order (e.g., not_paid, paid, partially_paid). |
Fiscal Status text | fiscal_status | Fiscal status of the order. Can be null. |
Products Total float | products_total | Total amount of products in the order. |
Shipping Price float | shipping_price | Price of shipping. Can be null. |
Wrap Price float | wrap_price | Price of gift wrap. Can be null. |
Discount Amount int | discount_amount | Amount of discount applied. |
Discount Percent int | discount_percent | Percentage of discount applied. Can be null. |
Total Discount float | total_discount | Total discount amount. |
Taxes text | taxes | Tax amount as string. |
Expenses Sum float | expenses_sum | Total sum of expenses. |
Margin Sum float | margin_sum | Total margin amount. |
Payments Total float | payments_total | Total amount of payments. |
Grand Total float | grand_total | Grand total amount of the order. |
Discount Data text | discount_data | Additional discount data. Can be null. |
Buyer Comment text | buyer_comment | Comment from the buyer. |
Client Comment text | client_comment | Comment from the client. |
Manager Comment text | manager_comment | Comment from the manager. Can be null. |
Gift Message text | gift_message | Gift message for the order. Can be null. |
Is Gift bool | is_gift | Whether the order is a gift. |
Gift Wrap bool | gift_wrap | Whether gift wrap is applied. |
Has Reserves bool | has_reserves | Whether the order has reserves. |
Is Expired bool | is_expired | Whether the order status is expired. |
Fiscal Result array_string | fiscal_result | Array of fiscal results. |
Ordered At datetime | ordered_at | Date and time when the order was placed in ISO format. |
Closed At datetime | closed_at | Date and time when the order was closed. |
Closed From int | closed_from | Source from which the order was closed. |
Status Changed At datetime | status_changed_at | Date and time when the order status was changed in ISO format. |
Status Expired At datetime | status_expired_at | Date and time when the order status expires in ISO format. Can be null. |
Source Updated At datetime | source_updated_at | Date and time when the order was last updated on the source in ISO format. |
Last Synced At datetime | last_synced_at | Date and time when the order was last synced. |
Created At datetime | created_at | Date and time when the order was created in ISO format. |
Updated At datetime | updated_at | Date and time when the order was last updated in ISO format. |
Deleted At datetime | deleted_at | Date and time when the order was deleted in ISO format. Can be null if not deleted. |
| Name | API name | Description |
|---|---|---|
ID int | id | ID of the product. |
Name text | name | Name of the product. |
Category ID int | category_id | ID of the product category. |
Description text | description | Description of the product. Can be null. |
Price float | price | Price of the product. |
Min Price float | min_price | Minimum price of the product. |
Max Price float | max_price | Maximum price of the product. |
Purchased Price float | purchased_price | Price at which the product was purchased. |
Currency Code text | currency_code | Currency code (e.g., UAH, USD, EUR). |
Quantity int | quantity | Available quantity of the product. |
In Reserve int | in_reserve | Quantity of items in reserve. |
Barcode text | barcode | Barcode of the product. |
SKU text | sku | Stock Keeping Unit (SKU) of the product. Can be null. |
Unit Type text | unit_type | Unit type of the product. Can be null. |
Weight int | weight | Weight of the product. Can be null. |
Width int | width | Width of the product. Can be null. |
Height int | height | Height of the product. Can be null. |
Length int | length | Length of the product. Can be null. |
Thumbnail URL text | thumbnail_url | URL to the thumbnail image of the product. |
Attachments Data array_string | attachments_data | Array of URLs to product attachments/images. |
Sources array_string | sources | Array of sources associated with the product. |
Has Offers bool | has_offers | Whether the product has offers. |
Is Archived bool | is_archived | Whether the product is archived. |
Created At datetime | created_at | Date and time when the product was created in ISO format. |
Updated At datetime | updated_at | Date and time when the product was last updated in ISO format. |
| Name | API name | Description |
|---|---|---|
ID int | id | ID of the user. |
Email text | email | Email address of the user. |
Username text | username | Username of the user. Can be null. |
First Name text | first_name | First name of the user. |
Last Name text | last_name | Last name of the user. |
Full Name text | full_name | Full name of the user. |
Phone text | phone | Phone number of the user. |
Role ID int | role_id | ID of the user's role. |
Status text | status | Status of the user (e.g., active, blocked, inactive). |
Created At datetime | created_at | Date and time when the user was created in ISO format. |
Updated At datetime | updated_at | Date and time when the user was last updated in ISO format. |
Last Logged At datetime | last_logged_at | Date and time when the user last logged in in ISO format. |
The KeyCRM fields tab lists each field with its future column name underneath. Select All takes the entire list.
The set of available fields depends on the report type, and no field is picked for you.
KeyCRM returns related records as identifiers rather than as names. Load the matching report type to resolve them.
| Identifier | Report type that resolves it |
|---|---|
| Client ID in Orders | Buyers |
| Company ID in Buyers | Companies |
| Manager ID in Buyers and Companies | Users |
| Product ID in Offers | Products |
Fields that hold several values at once load as list columns rather than as extra rows.
| Report type | Fields that load as list columns |
|---|---|
| Buyers | Email, Phone |
| Offers | Properties |
| Orders | Fiscal Result |
| Products | Attachments Data, Sources |
The Custom Fields report type describes the custom fields set up in the account: their name, type, and the model they belong to, such as an order or a buyer. Values stored on individual records are not among the parameters of the object report types.
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.

KeyCRM allows 60 requests per minute for the whole account, and Renta stays inside that limit. A long order history or a large catalog takes noticeably longer to load because of it, and pipelines scheduled at the same hour draw from the same budget.
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
Renta synchronizes every KeyCRM report type the same way.
| Strategy | Supported report types | Description |
|---|---|---|
| Full reload | Buyers, Companies, Custom Fields, Offers, Orders, Pipelines, Products, Users | Renta reads the object in full on every run and replaces the contents of the destination table. The table repeats the KeyCRM account at the time of the run, and a record that KeyCRM stops returning leaves the table on the next run. |
Because every run reads the object in full, the pipeline has no date range or overwrite period settings. KeyCRM report types also carry no date parameter to partition by, so destination tables stay unpartitioned.
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.