ProductCRMIntegrationRead
Binds a product to a company CRM integration, with the mapping configuration used to import and sync that product's leads. Identified by the (product_id, crm_integration_id) pair. Tracks the last import and last sync times.
ID of the product (workspace) that owns this record. Most endpoints scope access by product.
ID of the company CRM integration this binding connects the product to.
Creation time (UTC, ISO 8601).
last_import_at objectrequired
When leads were last imported from the CRM for this product (UTC).
- date-time
- null
last_sync_at objectrequired
When this product's data was last synced to the CRM (UTC).
- date-time
- null
config objectrequired
Per-product CRM mapping configuration (stage mapping, field mapping, sync options).
Whether the scheduled importer sweeps this CRM's import stages for new leads. It governs that bulk sweep only — a chat channel that answers inbound conversations imports the lead it is answering on demand, whether or not this is enabled.
trueimport_to_stage_id object
- integer
- null
86400When enabled for amoCRM or Kommo, the CRM note created after a lead import is pinned on the deal. Other CRM vendors ignore this option.
falsecontacts_from_custom_fields object
property name* ProductCRMIntegrationContactFromCustomFieldConfig
Defines how one CRM custom field is imported as a contact.
truecontact_type object
- ContactType
- null
Possible values: [phone, username, chat_id, email]
channel_type object
- string
- null
Possible values: [telegram, whatsapp, waba, max, viber, instagram, fasttrack, usedesk, salebot, avito, vk, yandex_messenger, email, sms, pinbox, linkedin, amocrm_salesbot, bitrix24_openlines, sip, webrtc, bothelp]
ext_channel_id object
- string
- null
channel_vendor object
- string
- null
Possible values: [wazzup24, self_wz, self_tg_bot, chatpush, greenapi, wappi, chatapp, yandex_messenger, salebot, bothelp, radist, fasttrack, usedesk, amocrm_salesbot, bitrix24_openlines, twilio, mail.ru, gmail, pinbox, unipile, voice]
channel_alias object
Optional exact name of another CRM field whose value selects the product channel for this chat-id contact. Supported only for chat_id contacts and mutually exclusive with ext_channel_id.
- string
- null
enum_fields object
property name* ProductCRMIntegrationEnumFieldConfig
Possible values: [select, multiselect]
crm_fields object
property name* ProductCRMIntegrationFieldConfig
crm_code object
- string
- null
textPossible values: [custom, system]
customfalsefalsefalseoptions object[]
The option as a person reads it.
The option as it is stored and compared.
ext_id object
The CRM's own id for this option, where it exposes one. It is what the option is written back to the CRM as, so a renamed option keeps resolving. Set by the platform.
- string
- null
falseWhen contact_duplicates_allowed is true, permits the same external CRM contact ID to be imported on contacts belonging to different local leads during initial import and subsequent contact synchronization. Defaults to false and has no effect while contact_duplicates_allowed is false.
falsecrm_fields_conditions object
Optional filter applied when importing: a CRM lead whose fields fail these conditions is not imported. Nothing records the skip, so relaxing the conditions imports the lead on a later run, as long as it still sits on an import stage. Only fields with import_enabled reach the check, so a condition naming any other field matches nothing and skips every lead.
- CRMFieldsConditionsConfig
- null
Possible values: [AND, OR]
ANDconditions object[]
Possible values: [EQUALS, NOT_EQUALS, IN, NOT_IN, STARTS_WITH, ENDS_WITH, CONTAINS, EXISTS, NOT_EXISTS, IS_EMPTY, IS_NOT_EMPTY]
trueamoCRM only. Which connected chat sources may open a conversation with the agent, by amoCRM source id. Leave empty to accept any source. Only consulted for a lead that has never been imported: once a lead exists, its conversation is already established and this cannot stop the agent replying.
amoCRM only. How recently a lead must have been created in amoCRM for the agent to start answering its chat. Without a limit, enabling inbound would put the agent into every long-running conversation on the source, one at a time as each customer next wrote. Set to 0 to remove the limit. Like the source list, this applies only to a lead that has never been imported.
Possible values: >= 0
3600false86400falsemerged_lead_stage_id object
Stage that leads are moved to when their CRM deal is merged into another one (see POST /leads/crm-merge). The stage must belong to this product. Leave unset to deactivate and mute merged-away leads without changing their stage. The move is local only and is never pushed back to the CRM.
- integer
- null
classification_fields_resync_requested_at object
- date-time
- null
classification_fields_last_resynced_at object
- date-time
- null
classification_fields_last_resync_failed_at object
- date-time
- null
0truetrueEnables automatic creation of a Bitrix24 deal or lead for an eligible new inbound lead that has no CRM record yet. The created entity follows the integration's lead_mode and lands in inbound_crm_lead_pipeline_id / inbound_crm_lead_stage_id; disabled by default.
falseinbound_crm_lead_pipeline_id object
Pipeline the record created by create_crm_lead_for_new_inbound is placed in, and the pipeline the platform lead records as its origin. Must be one of the pipelines mapped in pipelines, otherwise nothing is created: a lead whose origin pipeline is unmapped can never sync its stage movements. Defaults to "0" — the CRM's default deal funnel, and the single pipeline reported when the integration works on leads rather than deals.
- string
- null
inbound_crm_lead_stage_id object
CRM stage the record created by create_crm_lead_for_new_inbound starts on. Leave unset to use the first stage of that pipeline.
- string
- null
When a lead is converted into a deal, summarise the conversation and post it as a comment on the new deal. The summary is generated at conversion time rather than reused from storage, so it reflects the exchange that won the deal.
falsesummary_on_conversion_additional_instructions object
Extra instructions for that summary — what the sales team picking the deal up needs to read. Summaries are cached per instruction set, so setting this means the conversion summary is always generated separately from the agent's own.
- string
- null
pipelines object[]
truestages object
property name* ProductCRMIntegrationStageConfig
Maps one platform stage onto a CRM stage, and declares what else happens when a lead reaches it.
Identifier of the CRM stage this platform stage maps to.
Whether leads sitting on this CRM stage are imported into the platform.
falseWhen a lead moves onto this stage, also create the deal it converts into. Bitrix24 working on leads only — elsewhere the lead already is the deal. Per stage, so different stages can convert into different funnels. The stage must still map to the CRM status the lead should end on: conversion creates the deal, it never moves the lead by itself.
falseconverted_deal_category_id object
Funnel the converted deal is created in. Unset uses the CRM default.
- string
- null
converted_deal_stage_id object
Stage the converted deal starts on. Unset uses the funnel's first stage.
- string
- null
false{
"product_id": 0,
"crm_integration_id": 0,
"created_at": "2024-07-29T15:51:28.071Z",
"last_import_at": "2024-07-29T15:51:28.071Z",
"last_sync_at": "2024-07-29T15:51:28.071Z",
"config": {
"import_enabled": true,
"import_to_stage_id": 0,
"import_interval_seconds": 86400,
"pin_import_note_enabled": false,
"contacts_from_custom_fields": {},
"enum_fields": {},
"crm_fields": {},
"contact_duplicates_allowed": false,
"contact_crm_id_duplicates_allowed": false,
"crm_fields_conditions": {
"operator": "AND",
"conditions": [
{
"field": "string",
"operator": "EQUALS"
}
]
},
"derive_phone_number_from_lead_title": true,
"amocrm_allowed_inbound_source_ids": [
"string"
],
"amocrm_inbound_max_lead_age_seconds": 3600,
"sync_enabled": false,
"sync_interval_seconds": 86400,
"deactivate_on_external_move": false,
"merged_lead_stage_id": 0,
"classification_fields_resync_requested_at": "2024-07-29T15:51:28.071Z",
"classification_fields_last_resynced_at": "2024-07-29T15:51:28.071Z",
"classification_fields_last_resync_failed_at": "2024-07-29T15:51:28.071Z",
"classification_fields_last_resync_failures_count": 0,
"dump_message_enabled": true,
"dump_manager_messages_enabled": true,
"create_crm_lead_for_new_inbound": false,
"inbound_crm_lead_pipeline_id": "string",
"inbound_crm_lead_stage_id": "string",
"generate_summary_on_conversion": false,
"summary_on_conversion_additional_instructions": "string",
"pipelines": [
{
"is_active": true,
"pipeline_id": "",
"stages": {}
}
]
}
}