1. Получите API-ключ CloseFlow
В CloseFlow откройте Настройки → API-ключи → «Создать ключ». Скопируйте полное значение (cf_live_…) - оно показывается один раз.
Лиды из 1С + события follow-up обратно
1С-коннектор CloseFlow принимает новые заявки, клиентов и заказы из любой конфигурации 1С (УНФ / УТ / CRM / custom) через HTTP-запрос, запускает follow-up автопилот в CloseFlow и возвращает события (ответ клиента, смена статуса, нарушение SLA, передача в CRM, остановка автоматизаций) обратно в 1С подписанными webhook'ами. Это не полная ERP-синхронизация - никакой бухгалтерии, склада, счётов и документов.
Webhook endpoint
https://closeflow.ru/api/v1/webhooks/leadsАутентификация: заголовок X-Api-Key или query-параметр ?api_key=. Получить ключ - в Настройках.
В CloseFlow откройте Настройки → API-ключи → «Создать ключ». Скопируйте полное значение (cf_live_…) - оно показывается один раз.
Из обработки документа (например, «Заказ покупателя» или «Заявка клиента») в 1С сделайте HTTPS POST на well-known endpoint CloseFlow. Передавайте externalId (GUID документа) - повторные отправки того же documents не создадут дубль.
POST https://closeflow.ru/api/v1/webhooks/1c/leads
X-Api-Key: cf_live_xxxxxxxxxxxxxxxx
X-Idempotency-Key: <GUID документа из 1С>
Content-Type: application/json
{
"externalId": "1c-doc-guid-123",
"source": "1C:УНФ",
"name": "Иван Петров",
"phone": "+7 999 000 00 00",
"email": "ivan@example.com",
"company": "ООО Ромашка",
"comment": "Заявка из 1С",
"status": "NEW",
"managerEmail": "manager@company.ru",
"amount": 150000,
"metadata": {
"configuration": "1C:UNF",
"documentType": "ЗаказПокупателя",
"documentNumber": "00000123"
}
}Минимальный скрипт: создаёт HTTPS-соединение, формирует JSON-тело и шлёт POST. Подставьте свой API-ключ.
// 1С (встроенный язык) - отправка лида в CloseFlow
HTTPСоединение = Новый HTTPСоединение(
"closeflow.ru", 443, , , , , Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("/api/v1/webhooks/1c/leads");
Запрос.Заголовки.Вставить("Content-Type", "application/json");
Запрос.Заголовки.Вставить("X-Api-Key", "cf_live_ВАШ_КЛЮЧ");
Запрос.Заголовки.Вставить("X-Idempotency-Key",
Строка(Ссылка.УникальныйИдентификатор()));
Тело = Новый Структура;
Тело.Вставить("externalId", Строка(Ссылка.УникальныйИдентификатор()));
Тело.Вставить("source", "1C:УНФ");
Тело.Вставить("name", Клиент.Наименование);
Тело.Вставить("phone", Телефон);
Тело.Вставить("email", Email);
Тело.Вставить("company", Компания);
Тело.Вставить("comment", Комментарий);
Тело.Вставить("amount", СуммаДокумента);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, Тело);
JSONСтрока = ЗаписьJSON.Закрыть();
Запрос.УстановитьТелоИзСтроки(JSONСтрока, КодировкаТекста.UTF8);
Ответ = HTTPСоединение.ВызватьHTTPМетод("POST", Запрос);
Если Ответ.КодСостояния = 201 Или Ответ.КодСостояния = 200 Тогда
Сообщить("Лид отправлен в CloseFlow");
Иначе
Сообщить("Ошибка: " + Ответ.КодСостояния + " - " + Ответ.ПолучитьТелоКакСтроку());
КонецЕсли;В CloseFlow откройте «Интеграции → 1С» и заполните Callback URL вашего 1С HTTP-сервиса. Нажмите «Сгенерировать секрет» - это HMAC-ключ, которым CloseFlow подписывает каждое исходящее событие. Сохраните секрет в 1С: показывается только один раз.
CloseFlow шлёт POST с заголовками X-CloseFlow-Event, X-CloseFlow-Timestamp, X-CloseFlow-Delivery-Id и X-CloseFlow-Signature: sha256=<hex>. База подписи: timestamp + '.' + raw_body. Проверка на стороне 1С - псевдокод:
// HTTP-сервис /hs/closeflow/events
// 1) прочитать заголовки X-CloseFlow-*
// 2) убедиться, что |now - timestamp| <= 300 (защита от replay)
// 3) вычислить HMAC-SHA256(secret, timestamp + "." + body)
// 4) сравнить в константном времени с подписью из заголовка
// 5) разбор события:
Если Event = "REPLY_RECEIVED" Тогда
// Клиент ответил - пометить документ в 1С: «лид ответил»
ИначеЕсли Event = "SLA_BREACHED" Тогда
// Нарушение SLA - задача менеджеру в 1С
ИначеЕсли Event = "HANDED_OFF" Тогда
// Лид передан в CRM - обновить статус документа
КонецЕсли;
// Ответьте HTTP 200 с пустым телом, чтобы CloseFlow зафиксировал доставкуЕсли вы 1С-интегратор и подключаете CloseFlow клиентам - у нас есть отдельная партнёрская программа с revenue-share. Подробности на странице для 1С-интеграторов.
Что делать, если 1С отдаёт поля под другими именами?
В CloseFlow → Интеграции → 1С → «Соответствие полей» опишите JSON-маппинг (ключ - каноническое поле, значение - путь в исходном JSON через точку). Пример: { "name": "Контрагент.Наименование" }.
Дублируются ли лиды при повторной отправке документа?
Нет. Передавайте X-Idempotency-Key (GUID документа) - повторные отправки вернут 200 с тем же leadId. Дополнительный dedupe по email тоже включён.
Что значит «Лид зарегистрирован, но менеджер не назначен»?
Поле managerEmail должно соответствовать email пользователя в этом workspace CloseFlow. Если такого пользователя нет, лид остаётся не назначенным.
Callback не приходит - что проверить?
Откройте Интеграции → 1С → «История доставок». Проверьте статус, ошибку и кнопку «Повторить». Самые частые причины - недоступный URL, неверный секрет, 4xx-ответ от 1С (он считается non-retryable).
На production callback URL должен быть https?
Да. И не должен указывать на localhost или private IP - CloseFlow заблокирует доставку как защита от SSRF. Для тестов из локальной 1С используйте ngrok / cloudflared / proxy с публичным доменом.
Другие интеграции