← Назад к заметкам

Заметки

Как привязать чат открытой линии к компании

Как связать чат открытой линии с компанией через CRM-активность, контакт, компанию и привязки таймлайна.

Для привязки чата открытой линии к компании мало добавить текстовое дело. Нужна CRM-активность с правильным владельцем, bindings и provider-данными сессии.

Задача

Нужно, чтобы переписка из открытой линии была видна не только в лиде или сделке, но и в карточке компании.

Это полезно, когда клиент общается как представитель компании, а история переписки должна оставаться доступной в карточке контрагента.

Связь обычно делается через CRM-активность с привязкой к компании. Если есть контакт, его тоже лучше привязать.

Активность на компании

Для карточки компании owner активности должен указывать на компанию, а bindings должны содержать компанию как связанную CRM-сущность.

BX24.callMethod(
    'crm.activity.add',
    {
        fields: {
            OWNER_TYPE_ID: 4,
            OWNER_ID: 321,
            SUBJECT: 'Диалог открытой линии',
            COMPLETED: 'Y',
            PROVIDER_ID: 'IMOPENLINES_SESSION',
            PROVIDER_TYPE_ID: 'IMOPENLINES_SESSION',
            PROVIDER_PARAMS: {
                SESSION_ID: 456,
                CHAT_ID: 789,
            },
            BINDINGS: [
                { OWNER_TYPE_ID: 4, OWNER_ID: 321 }
            ],
        },
    },
    function (result) {
        console.log(result.error() || result.data());
    }
);

Здесь OWNER_TYPE_ID и OWNER_ID относятся к компании. Provider-данные связывают активность с сессией открытой линии.

Контакт лучше не терять

Если клиент известен как физическое лицо, компанию и контакт лучше связать одной активностью.

BINDINGS: [
    { OWNER_TYPE_ID: 4, OWNER_ID: 321 },
    { OWNER_TYPE_ID: 3, OWNER_ID: 654 }
]

Так переписка будет видна и в компании, и в контакте. Это удобнее, чем создавать две независимые активности с одинаковым текстом.

Как проверить связанные чаты

Для CRM-сущности можно запросить чаты открытых линий, которые уже связаны с ней.

BX24.callMethod(
    'imopenlines.crm.chat.get',
    {
        CRM_ENTITY_TYPE: 'COMPANY',
        CRM_ENTITY: 321,
    },
    function (result) {
        console.log(result.error() || result.data());
    }
);

Если чат не находится по компании, но виден в контакте или сделке, значит проблема в CRM-привязке, а не в самой открытой линии.