Каждый раз, когда менеджер вручную открывает карточку лида в amoCRM и идёт на сайт ФНС копировать реквизиты — это 5 минут работы. На 100 лидах в неделю — это 8 часов SDR-времени, которое можно автоматизировать одним webhook'ом.
Этот гайд — как настроить интеграцию 2BASE с amoCRM за час. После настройки — каждый новый контакт с ИНН автоматически обогащается реквизитами + телефонами + email.
Что даст интеграция
Когда менеджер вручную создаёт контакт в amoCRM или контакт приходит из формы на сайте, и в карточке указан ИНН — webhook автоматически:
- Дёргает 2BASE API по ИНН
- Получает все реквизиты + контакты + ОКВЭД + статус
- Заполняет соответствующие поля в карточке amoCRM
- Уведомляет менеджера, что карточка обогащена
Менеджер видит в карточке: название, юр.адрес, ОКВЭД, телефон, email, директор. Без ручного перепечатывания.
Шаг 1: получение API-токена 2BASE
Войдите в личный кабинет 2base.ru → раздел «API» → «Создать токен». Токен бесплатный, лимит 30 запросов/минуту.
На больших объёмах (≥ 1 000 запросов/день) — обращайтесь в поддержку, расширим лимит.
Шаг 2: получение API-доступа amoCRM
В amoCRM:
- Настройки → Интеграции → Создать интеграцию
- Тип: «Внутренняя»
- Получите Client ID, Client Secret, Redirect URI
- Запросите OAuth2 access_token через API endpoint /oauth2/access_token
Документация amoCRM: www.amocrm.ru/developers
Шаг 3: настройка webhook в amoCRM
Нужно настроить два webhook'а:
Webhook 1: при создании контакта
В amoCRM → Настройки → Webhooks → создать.
Trigger: «Контакт добавлен».
URL: ваш middleware-сервер (Node.js / Python / Go), который будет дёргать 2BASE API.
Webhook 2: при обновлении ИНН
Trigger: «Изменение поля ИНН».
URL: тот же middleware.
Это нужно, чтобы при ручном обновлении ИНН в карточке также сработала автоматизация.
Шаг 4: middleware (минимальный код)
Простейший middleware на Python (Flask):
from flask import Flask, request, jsonify
import requests
app = Flask(__name__)
BASE2_TOKEN = "YOUR_2BASE_TOKEN"
AMOCRM_TOKEN = "YOUR_AMOCRM_TOKEN"
AMOCRM_DOMAIN = "your-account.amocrm.ru"
@app.route('/webhook/contact', methods=['POST'])
def contact_added():
data = request.json
contact_id = data['contacts'][0]['id']
inn = data['contacts'][0].get('custom_fields', {}).get('inn')
if not inn:
return jsonify({"status": "no_inn"})
# Дёргаем 2BASE API
r = requests.get(
f"https://2base.ru/api/v1/companies/{inn}",
headers={"Authorization": f"Bearer {BASE2_TOKEN}"},
timeout=10
)
if r.status_code != 200:
return jsonify({"status": "not_found"})
company = r.json()
# Обновляем карточку amoCRM
requests.patch(
f"https://{AMOCRM_DOMAIN}/api/v4/contacts/{contact_id}",
headers={"Authorization": f"Bearer {AMOCRM_TOKEN}"},
json={
"custom_fields_values": [
{"field_code": "COMPANY", "values": [{"value": company['name']}]},
{"field_code": "PHONE", "values": [{"value": company['phone']}]},
{"field_code": "EMAIL", "values": [{"value": company['email']}]},
{"field_code": "ADDRESS", "values": [{"value": company['address']}]},
]
}
)
return jsonify({"status": "enriched"})
if __name__ == '__main__':
app.run(port=8080)
~ 50 строк кода. Сервер хостится где угодно — Railway, Heroku, своей VPS. Стоимость инфры — 0-500 ₽/мес.
Шаг 5: настройка кастомных полей в amoCRM
Для того чтобы обогащение работало, в amoCRM должны быть кастомные поля для:
- ИНН (custom field code: INN или ваш)
- Название компании (COMPANY)
- Телефон (PHONE — обычно стандартное поле)
- Email (EMAIL — стандартное)
- Адрес (ADDRESS)
- ОКВЭД (OKVED — кастомное, добавьте)
- Директор (DIRECTOR — кастомное)
Создайте через amoCRM → Настройки → Контакты → Кастомные поля.
Шаг 6: тестирование
В amoCRM создайте тестовый контакт с заполненным ИНН. Через 5-10 секунд webhook сработает, middleware обогатит, поля заполнятся.
Если что-то не работает — смотрите логи middleware. Чаще всего проблема в:
- Неправильном API-токене 2BASE
- Несовпадении ИНН-формата (10/12 цифр)
- Отсутствии нужных кастомных полей в amoCRM
Альтернатива: через Albato или Make
Если не хочется писать middleware с нуля:
- Albato: российский no-code сервис интеграций. 2BASE и amoCRM в каталоге коннекторов. Цена — от 1 500 ₽/мес.
- Make.com (бывший Integromat): международный, дешевле для небольших объёмов. ~ $9/мес стартовый план.
- Zapier: $20+/мес, не очень хорошо знает специфику российских сервисов.
Через Albato настройка через UI занимает 30 минут, без программирования. Минус — вы платите подписку каждый месяц, а собственный middleware — единоразовая настройка.
Что ещё можно автоматизировать
После базовой интеграции легко добавить:
1. Проверка контрагента перед сделкой
При движении сделки в стадию «На согласование» — webhook проверяет ИНН в /bulk-inn и в реестре недобросовестных поставщиков. Если красный флаг — уведомление менеджеру.
2. Свежие лиды из 2BASE → amoCRM
Раз в неделю cron-скрипт: «Дать всех новых ИП Москвы за неделю по ОКВЭД X» → массовый импорт в amoCRM как лиды.
3. Обновление статуса сделки при изменении статуса контрагента
Если контрагент в карточке стал «Ликвидирована» (выпал из ЕГРЮЛ) — webhook автоматически переводит сделку в стадию «Потеряно — контрагент ликвидирован».
FAQ
Сколько стоит интеграция?
2BASE API — бесплатно (лимит 30 RPS). amoCRM API — встроено в подписку. Middleware — собственная разработка (1-2 часа) или Albato (от 1 500 ₽/мес).
Что если у контакта в amoCRM нет ИНН?
Webhook не сработает (или сработает и сразу выйдет с no_inn). Никакой ошибки, просто ничего не происходит. Менеджер вручную вписывает ИНН → следующий webhook на изменение поля сработает.
Сколько данных получу через API по одному ИНН?
Все 24 поля, как в XLSX-выгрузке: реквизиты, контакты, ОКВЭД, регион, директор, отзывы, размер компании. Подробнее в документации API.
А если у меня Bitrix24, не amoCRM?
Логика та же. Bitrix24 имеет API + webhooks. Аналогичный middleware на 50 строк работает с Bitrix24 API endpoint /rest/crm.contact.update.
Можно ли обогащать контакты SalesForce / HubSpot?
Да, по тому же принципу. Главное — webhook от вашей CRM, middleware дёргает 2BASE API, обновляет CRM по их API.
Связанные: API 2BASE · Bulk-проверка ИНН · B2B SaaS воронка