Интеграции

Готовые модули и рецепты: подключение за часы, а не недели. Для работы нужен ключ — пилотный выдаём в течение дня, он же даёт бесплатный тест на 1 000 адресов: запросить ключ.

1. JS-виджет автодополнения (любой сайт, 2 строки)

<input id="addr" placeholder="Введите адрес">
<script src="https://adresto.uz/widget/adresto-suggest.js"></script>
<script>
  Adresto.attach('#addr', {
    token: 'ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ',
    count: 6,
    onSelect: function (item) { console.log(item.value, item.data); }
  });
</script>

Публичный ключ безопасен в браузере — он открывает только подсказки. Живой пример: adresto.uz/embed. Стилизуется CSS-классами uzd-*.

2. 1С (Предприятие 8)

  1. В конфигураторе создайте Общий модуль AdrestoКлиент (флаги «Сервер», «Вызов сервера»).
  2. Вставьте код из скачанного модуля.
  3. Заведите Константу AdrestoСекрет (строка) и запишите секретный ключ. Хост уже прописан: https://adresto.uz.
// Стандартизация одного адреса
Рез = AdrestoКлиент.СтандартизоватьАдрес("Ташкент, Амир Темур 107");
Сообщить(Рез.value);            // город Ташкент, улица Amir Temur, д. 107
Сообщить(Рез.data.qc);          // 0 — разобрано до дома

// Пакет — быстрее и дешевле по квоте
Массив = Новый Массив;
Массив.Добавить("Самарканд, Регистан 5");
Результаты = AdrestoКлиент.СтандартизоватьПакет(Массив);
Скачать модуль AdrestoКлиент.bsl

Секрет — только на сервере 1С: не кладите его в клиентские обработки. Типовые сценарии: нормализация адресов доставки в документах, дедупликация справочника контрагентов через match/address.

3. Битрикс24 — три способа, от простого к глубокому

Способ А. Без кода, через Make / Albato (облачный Битрикс24, ~15 минут)

Подходит, когда нет своего сервера. Коннектор сам заберёт новый лид, почистит адрес и запишет результат обратно.

  1. В Битрикс24: Разработчикам → Другое → Входящий вебхук → права CRM → скопируйте URL вебхука (он понадобится коннектору).
  2. В Make (или Albato) создайте сценарий из трёх шагов:
    1. Bitrix24 → Watch Leads (триггер «новый/изменённый лид»).
    2. HTTP → Make a request:
      URL: https://adresto.uz/api/v1/clean/address · Method: POST
      Headers: Authorization: Token ВАШ_КЛЮЧ, X-Secret: ВАШ_СЕКРЕТ, Content-Type: application/json
      Body: {"addresses":["{{адрес лида}}"]} · Parse response: Yes.
    3. Bitrix24 → Update a Lead: в поле «Адрес» подставьте results[1].value, в свои поля — results[1].data.region, results[1].data.district, results[1].data.qc.
  3. Между шагами 2 и 3 поставьте фильтр: results[1].data.qc ≤ 1 — сомнительные разборы не перезаписывают адрес.

Способ Б. Подсказки в форме на вашем сайте

Виджет нельзя вставить во встроенную CRM-форму Битрикса (она в iframe). Ставьте его на СВОЮ форму на сайте, а лид отправляйте в Битрикс24 стандартным способом (CRM-форма рядом, метод crm.lead.add через входящий вебхук, или ваш backend).

<input id="addr" name="address" placeholder="Адрес доставки">
<script src="https://adresto.uz/widget/adresto-suggest.js"></script>
<script>
  Adresto.attach('#addr', { token: 'ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ' });
</script>

Способ В. Свой сервер: исходящий вебхук + полный обработчик (PHP)

  1. В Битрикс24 создайте Входящий вебхук (права CRM) — его URL впишите в $B24_HOOK.
  2. Создайте Исходящий вебхук: событие ONCRMLEADADD (при желании — и ONCRMLEADUPDATE), URL — адрес этого скрипта на вашем хостинге.
  3. Заведите поля лида (CRM → Настройки → Поля): «Adresto: регион», «Adresto: район», «Adresto: qc» — их коды (UF_CRM_...) подставьте в скрипт.
<?php
// adresto_bitrix.php — приёмник исходящего вебхука Битрикс24.
$B24_HOOK       = 'https://ВАШПОРТАЛ.bitrix24.ru/rest/1/XXXXXXXX/'; // входящий вебхук
$ADRESTO_TOKEN  = 'ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ';
$ADRESTO_SECRET = 'ВАШ_СЕКРЕТНЫЙ_КЛЮЧ';

$leadId = $_POST['data']['FIELDS']['ID'] ?? null;
if (!$leadId) exit;

// 1) читаем лид
$lead  = json_decode(file_get_contents($B24_HOOK.'crm.lead.get.json?id='.$leadId), true)['result'] ?? null;
$dirty = trim($lead['ADDRESS'] ?? '');
if ($dirty === '') exit;

// 2) чистим адрес
$ch = curl_init('https://adresto.uz/api/v1/clean/address');
curl_setopt_array($ch, [
  CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 20,
  CURLOPT_HTTPHEADER => ['Content-Type: application/json',
    'Authorization: Token '.$ADRESTO_TOKEN, 'X-Secret: '.$ADRESTO_SECRET],
  CURLOPT_POSTFIELDS => json_encode(['addresses' => [$dirty]]),
]);
$r = json_decode(curl_exec($ch), true)['results'][0] ?? null;
curl_close($ch);
if (!$r || ($r['data']['qc'] ?? 3) > 1) exit;   // сомнительное не перезаписываем

// 3) пишем результат обратно в лид
$fields = [
  'ADDRESS'                  => $r['value'],
  'UF_CRM_ADRESTO_REGION'    => $r['data']['region']   ?? '',
  'UF_CRM_ADRESTO_DISTRICT'  => $r['data']['district'] ?? '',
  'UF_CRM_ADRESTO_QC'        => (string)($r['data']['qc'] ?? ''),
];
file_get_contents($B24_HOOK.'crm.lead.update.json?id='.$leadId.'&'.http_build_query(['fields' => $fields]));

Секретный ключ Adresto и URL входящего вебхука Битрикса — только на вашем сервере. Для сделок/контактов замените lead на deal/contact в методах REST.

Не получается? Напишите на info@adresto.uz — поможем подключить (для пилотов — бесплатно).

4. amoCRM

  1. Скачайте пакет виджета (хост уже прописан).
  2. Добавьте свои иконки: images/logo.png (84×84) и images/logo_min.png (34×34) — в корень архива.
  3. amoCRM → Настройки → Интеграции → + → загрузите zip.
  4. В настройках виджета укажите публичный ключ Adresto.
Скачать пакет adresto-amocrm.zip

Виджет вешает автодополнение на поля адреса в карточках контактов и сделок; при выборе подсказки подставляет чистый адрес.

5. Прямой REST API

curl -X POST https://adresto.uz/api/v1/clean/address \
  -H "Authorization: Token ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ" -H "X-Secret: ВАШ_СЕКРЕТНЫЙ_КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{"addresses":["каримова 32 яккасарай"]}'

Полная спецификация со схемами: adresto.uz/docs (OpenAPI). Методы: подсказки, стандартизация (батч до 500), обратный геокод, сравнение адресов, справочник АТЕ.

Нужна помощь с внедрением или партнёрская программа для интеграторов (20% реферальных)? info@adresto.uz · Telegram @viz_help