VIBE CODINGБлок 04 · Интеграции и безопасность4.4

Воркшоп 4.4

Воркшоп 4 — Интеграции, API и Webhooks

Практический разбор интеграций, API и Webhooks — от запроса до работающего процесса.

Данила Гурачевский tg @dgurachevskii

КУРС ХЕКСЛЕ ТА · ЗАНЯТИЕ 4

Интеграции, API и Webhooks Как сервисы общаются друг с другом — без программиста

ЗАНЯТИЕ 4

О чём сегодня поговорим Три части. От «что такое API» — до живого сценария, где заявка с сайта сама летит в Telegram и таблицу.

01 Интеграции и API 02 Webhooks 03 Собираем с Claude Как один сервис просит данные у другого Когда сервис сам сообщает вам о Всё вместе — задачей словами событии

🔌 Что такое интеграция и API 📞 «Вам сами звонят» 🧩 Коннекторы (MCP) key Ключи, авторизация, JSON ⇄ API против Webhook 🗝️ Правила работы с ключами 200 Коды ответов и лимиты 💳 Оплата прошла → уведомление 🛠️ Практика: бот с заявками 💬 Кейсы: Telegram, Таблицы, CRM 🔒 Безопасность и отладка

Э Т О Н Е С Т РА Ш Н О

Вы уже пользуетесь этим каждый день Просто не называете это «интеграциями». За каждым таким удобством — два сервиса, которые договорились обмениваться данными.

🔑 «Войти через Google» 📦 «Посылка в пути» 🌤️ Погода в телефоне Сайт спрашивает у Google, кто вы — вместо Пункт выдачи сам шлёт СМС, когда заказ Приложение не считает погоду само — берёт нового пароля. приехал и готов к выдаче. у сервиса погоды.

💳 СМС после оплаты 🚕 Такси на карте 🧩 Это всё — интеграции Банк сообщил магазину, что деньги пришли Машинка едет по карте, которую рисует Сегодня научимся видеть их устройство и — тот прислал чек. отдельный картографический сервис. собирать свои.

01 ЧАСТЬ 01

Интеграции и API Как один сервис просит данные у другого — и получает их в ответ.

ОПРЕДЕЛЕНИЕ ПРОСТЫМИ СЛОВАМИ

Интеграция — это мостик между сервисами Канал, по которому сервисы общаются напрямую. Событие в одном становится действием в другом.

🏝️ 🔗 Б Е З И НТ Е Г РА Ц И И · О СТ Р О В А С И НТ Е Г РА Ц И Е Й · С В Я З А Н Ы

Сервисы порознь Сервисы общаются

✓ Сайт сообщает CRM: «новый заказ» • Заказ на сайте — CRM о нём не знает ➜ • У каждого сервиса свои данные, взаперти ✓ Данные текут между сервисами напрямую • Данные переносят вручную — мостика нет ✓ Событие в одном → действие в другом • Сервисы не умеют разговаривать ✓ У сервисов появился общий язык

API · НА ПАЛЬЦАХ

API — это ресепшн сервиса Вы не бродите по служебным помещениям сами. Подходите к стойке, говорите, что нужно — вам это оформляют и приносят. Что происходит за стойкой, знать не обязательно.

🙋 Вы (ваш сайт) 🛎️ API — стойка ресепшн 🏨 Отель — сервис Принимает запрос, оформляет, отдаёт ответ. За Google, банк, погода, CRM. Как всё Обращаетесь с просьбой стойку вас не пускает. устроено внутри — их дело

ЗАПОМНИТЬ API (эй-пи-ай) — это «стойка» сервиса: понятный список того, что можно попросить, и в каком виде.

У ВСЕХ ЕСТЬ МЕНЮ

У каждого сервиса — свой API И все они устроены похоже. Научитесь читать один — поймёте почти любой.

💬 Telegram API «Отправь это сообщение в такой-то чат» 📊 Google Sheets API «Допиши строчку в эту таблицу»

🏢 API CRM (amoCRM, Bitrix) «Заведи новую сделку с этим клиентом» ✉️ API рассылок (Unisender) «Отправь письмо на этот адрес»

🌤️ API погоды «Какая погода в Москве сейчас?» 🗺️ …и тысячи других Карты, оплаты, доставка, ИИ — почти у всего есть API

В С Е ГО Т Р И Ч АСТ И

Из чего состоит обращение к API Тот же запрос-ответ, что при открытии сайта. Только в ответ приходит не страница, а данные.

Endpoint · адрес Метод Заголовки Куда стучимся — как адрес на конверте. Что делаем — как глагол в поручении. Приписки на конверте: кто вы и что внутри.

🏙️ api.telegram.org город — какой сервис 👀 GET «покажи» — прочитать 🪪 Authorization ваш пропуск — ключ

✍️ POST 🏠 🏷️ «создай» — новое

/…/sendMessage ♻️ PUT Content-Type улица и дом — что именно нужно «замени» — целиком в каком виде данные

✏️ PATCH «поправь» — часть

🗑️ DELETE «удали»

Authorization: Bearer sk_live_… На старте хватает GET и POST — остальные встретите https://api.telegram.org/…/sendMessage Content-Type: application/json редко.

H T T P - ГЛ А Г О Л Ы

Пять HTTP-методов Главные — GET (узнать) и POST (сделать). На старте хватает их; остальные три встретите реже.

GET POST PUT PATCH DELETE Читает данные Создаёт новое Заменяет целиком Правит часть Удаляет Ничего не меняет. Данные — в теле запроса Перезаписывает весь Меняет только отдельные Убирает ресурс с сервера. Параметры — в URL. (JSON). Заявка, сделка, ресурс новыми данными. поля, не весь ресурс. сообщение.

GET /orders/42 POST /orders PUT /orders/42 PATCH /orders/42 DELETE /orders/42

ПРАВИЛО Узнаёте что-то — GET. В результате что-то происходит — POST. Остальные три — вариации «изменить/удалить».

Н Е М Н О ГО И СТО Р И И

До JSON был XML Те же данные, но многословно: каждое поле — в паре тегов. Работало, но тяжело читалось и весило больше.

XML 2000-е · многословно JSON сегодня · коротко

<order> { <id>1043</id> "id": 1043, <customer> "customer": { <name>Anna</name> "name": "Anna", <phone>+79000000000</phone> ➜ "phone": "+79000000000" переход </customer> }, <total>1840</total> "total": 1840, <paid>true</paid></order> "paid": true }

Каждое поле — открывающий и закрывающий тег. 9 строк. Те же данные — без закрывающих тегов, короче и понятнее.

🪶 Легче и короче — меньше символов, быстрее 🌐 Родной для браузеров и приложений 🏛️ XML жив в банках и старых системах

Есть ещё YAML — те же данные, без скобок и кавычек, с отступами. Используют для конфигов; в ответах API встречается редко.

Я З Ы К ОТ В Е ТО В

JSON — данные в виде «поле: значение» Не нужно писать его руками. Достаточно узнавать в лицо — ответы API выглядят так.

ТА К В Ы ГЛ Я Д ИТ J S O N { } объект · [ ] массив (список) { "id": 1043, "key" : value — через двоеточие "customer": { "name": "Anna", Строка "в кавычках", число и true/false — без "phone": "+79000000000" }, Объекты вкладываются друг в друга "items": ["ethiopia", "kenya"], "total": 1840, "paid": true }

📌 Ключи API — по-английски. Регистр важен:chat_id ≠ chatId

П Р И М Е Р Ц Е Л И КО М · П О ГОД А

Спросили — получили данные Слева — что мы отправили. Справа — что вернул сервис. Дальше эти данные можно показать на сайте или в боте.

ЗАПРОС · HT TP ОТВЕ Т · HT TP

GET /v1/weather?city=Moscow HTTP/1.1 200 OK Host: api.weather.com Content-Type: application/json Authorization: Bearer sk_live_a1b2c3 Accept: application/json { "city": "Moscow", "temp_c": 12, ➜ "condition": "clear" }

Строка запроса + заголовки. Тела у GET нет. Код 200 = успех, дальше — данные в JSON.

ВАШ ПРОПУСК

API-ключ — именной пропуск в сервис Длинная строка символов, которую сервис выдаёт лично вам. Показываете её при каждом обращении — и вас узнают.

Ф О Р М АТ З А В И С ИТ ОТ С Е Р В И С А 🪪 Идентифицирует — сервер знает, чей запрос

# Stripe sk_live_51H8xQ2eZvKY… # Telegram bot 🚪 Ограничивает права (scopes) — только разрешённое

7712345678:AAHbYd-kJ0pQ… # OpenAI 🧾 Учитывает лимиты и биллинг по ключу

sk-proj-a1B2c3D4… 🧪 Часто есть пара: test и live

Authorization: Bearer sk_live_…

БЕЗОПАСНОСТЬ · ВАЖНО

Ключ = пароль. Берегите его Кто получил ваш ключ — может действовать от вашего имени и потратить ваши деньги. Три простых правила.

🚫 ♻️ ⚙️ Не публикуйте Засветился — меняйте Где взять Не вставляйте ключ в сам сайт, в чаты, на Перевыпустите новый ключ, старый В настройках сервиса — раздел «API», скриншоты, в открытый код на GitHub. отключите. Это одна кнопка в настройках. «Ключи» или «Developers». Кнопка «Создать ключ».

Settings → API keys ✗ в HTML/JS страницы 1 Revoke — отозвать старый Developers → API ✗ в публичном репозитории 2 Regenerate — выпустить новый

✗ в скриншотах и переписке 3 Заменить в .env + Create secret key

🛡️ Технически: ключ живёт в .env (в .gitignore), а на хостинге — в переменных окружения (Vercel, Netlify, Reg.ru, Selectel). В код страницы ключ не попадает. Claude настроит это сам.

«ДОКАЖИ, ЧТО ТЕБЕ МОЖНО»

Три способа авторизации Слов много, идея одна: подтвердить «это я», не раздавая свой пароль всем подряд.

🔑 API-ключ ⏳ Токен · JWT 🔓 OAuth 2.0 Постоянная строка. Кладётся в заголовок Временный пропуск с сроком жизни. Протух «Войти через Google». Согласие → код → при каждом запросе. — берёте новый. access + refresh token.

✓ Проще всего подключить ✓ Утёк — быстро протухнет сам ✓ Не отдаёте сервису свой пароль ✓ Подходит для ботов и скриптов ✓ Внутри — срок и права доступа ✓ Даёте доступ только к нужному ✗ Не протухает — беречь как пароль ✗ Нужно вовремя обновлять ✗ Сложнее в настройке

Authorization: Bearer sk_live_… eyJhbGciOi… // header.payload.sig access_token + refresh_token X-Api-Key: a1b2c3… "exp": 1720099200 scope: sheets.append

ОТ В Е Т С Е Р В И С А

Коды ответов Первая цифра — семейство: 2xx успех, 3xx редирект, 4xx ошибка клиента, 5xx ошибка сервера.

200 OK 201 Created 400 Bad Request Успех — данные пришли в теле ответа. Ресурс создан после POST — заявка, сделка. Кривое тело или поля — проверьте JSON.

401 Unauthorized 429 Too Many 500 Server Error Сломалось у них — не ваша вина, повторите Нет или неверный ключ — проверьте токен. Превышен лимит — подождите и повторите. позже.

НА ДЕСЕРТ · БЕЗ ЗУБРЁЖКИ

Забавные коды, которые правда существуют Все — из официального стандарта HTTP. За протоколом стоят живые люди с чувством юмора.

418 🫖 451 📕 402 💸 I'm a teapot Unavailable · Legal Payment Required «Я чайник — кофе сварить не могу». Заблокировано по закону. Номер — отсылка к Годами «зарезервирован на будущее». Теперь Первоапрельская шутка, ставшая стандартом. «451° по Фаренгейту». оживает в платных API.

410 🪦 508 🌀 😌 Gone Мораль Loop Detected Не просто «не найдено» — «было и удалено Код — это просто короткое сообщение. Не надо Сервер заметил, что зациклился сам на себе. навсегда». его бояться — и уж точно не надо зубрить.

К А К ТА Р И Ф С В Я З И

Лимиты и тарифы API Сколько запросов вам можно. Обычно есть бесплатный уровень — для пробы и небольшого проекта хватает.

БЕСПЛАТНО ПЛАТНО

Хватает попробовать По числу запросов Л И М ИТ В И Д Е Н В З А ГОЛ О В К А Х ОТ В Е ТА

X-RateLimit-Limit: 100 X-RateLimit-Remaining: 0 Retry-After: 30

HTTP/1.1 429 Too Many Requests ✓ Небольшой лендинг с заявками • Много клиентов и трафика Осталось 0 запросов → ждите 30 сек. Не дёргайте ✓ Личный бот, пет-проект • Тяжёлые операции (ИИ, карты) API в цикле без нужды.

✓ Тесты и обучение • Больше лимитов и гарантий 💰 В платных API выставьте месячный лимит расходов в кабинете — страховка, если ключ утёк или скрипт зациклился.

ИНСТРУКЦИЯ К СЕРВИСУ

Документация — и почему её не надо зубрить Часто это OpenAPI / Swagger — интерактивная страница, где каждый метод можно тут же попробовать. Читать целиком — не ваша работа.

ЧТО В Л Ю Б О Й ДО К У М Е НТА Ц И И

• Список методов сервиса

url Endpoint и метод

🤖 in Параметры и тело запроса

out Формат ответа и коды

# пример из доков — curl Ваша роль в вайбкодинге curl -X POST api.service.com/v1/deals \ -H "Authorization: Bearer sk_…" \ Вы говорите Claude: «нужен Telegram, хочу отправлять заявки -d '{"name":"Anna"}' в чат». Он сам находит нужный раздел документации и собирает правильный запрос.

Вам — понимать логику. Адреса и поля помнит он.

КЕЙС 1 · САМЫЙ ЧАСТЫЙ

Заявки с сайта → в Telegram Человек оставил имя и телефон — вам тут же падает сообщение в чат. Никакой почты, которую забывают проверять.

1 В @BotFather за минуту создаёте бота и получаете токен 🔑 2 Узнаёте id вашего чата — куда слать

3 На каждую заявку — POST на /sendMessage

curl -X POST \ api.telegram.org/bot<token>/sendMessage \ -d chat_id=123456789 \ 🔔 -d text=" Новая заявка: Анна"

КЕЙС 2 · КОПИМ БАЗУ

Каждая заявка → строкой в таблице База заявок копится сама: дата, имя, телефон, товар. Удобно для продаж, отчётов и передачи коллеге.

POST /v4/spreadsheets/<id>/values/ A:D:append?valueInputOption=RAW { "values": [["4 июл","Мария", "+7 905…","Кения"]] }

Метод values.append — дописать строку

Доступ: OAuth Google, scope sheets

📌 Частый набор: Telegram + Таблица вместе 🔔 Алерт вам — узнаёте о заявке сразу 🗂️ Таблица — вся история и база клиентов 📊 Дальше — сводка, фильтры, выгрузка

КЕЙС 3 · ДЛЯ ПРОДАЖ

Заявка → сделка в CRM CRM (amoCRM, Bitrix24) — где менеджеры ведут клиентов. Заявка сама становится сделкой, ни одна не теряется.

ЧТО ТА КО Е C R M

Программа, где видно каждого клиента: кто позвонил, на каком этапе сделка, что обещали и когда перезвонить.

Заявки с сайта попадают туда сами — менеджеру не надо заводить карточку руками.

КЕЙС 4 · ПИСЬМА

Email: ответы и рассылки Два разных сценария. Сайт говорит сервису писем «отправь такое письмо туда-то» — остальное берёт сервис.

📩 Письмо-ответ 📣 Рассылка Отклик на действие: чек после оплаты, код подтверждения. Через Новости и акции по всей базе адресов. Сервисы вроде API (SendGrid, Postmark) или SMTP. Unisender, у них есть API.

POST /v3/mail/send to · subject · html ⚠️ Только по согласию — иначе спам

К О ГД А A P I Н Е Т

Парсинг — читаем страницу как браузер Данные есть только на странице для людей, отдельного адреса нет. Тогда программа открывает HTML и вытаскивает нужное.

🌐 Открыть страницу → 📄 Прочитать HTML → 🔍 Найти куски → 📊 Сложить в таблицу каталог конкурента весь код страницы названия и цены готовый список

⚠️ Хрупко: поменяли дизайн сайта — парсер сломался, надо чинить ✅ Правило: сначала ищите API или фид, парсинг — в последнюю очередь

« У З Н АТ Ь , Ч Т О Н О В О Г О »

RSS и фиды — поток свежих записей Сайт сам публикует новые записи в машиночитаемом виде. Не полный API, но идеально, чтобы ловить обновления.

ВНУТРИ ФИДА · XML

<item> 📰 Блоги, СМИ, подкасты, страницы релизов

🔗 <title>Запустили интеграцию</title> <link>acme.ru/posts/api</link> Хабр, релизы GitHub, адрес /feed или /rss <pubDate>11 Jun 2026</pubDate></item>

🛒 XML-фид Яндекс.Маркета — товары, цены, наличие

⚡ Быстрее парсинга и не ломается при редизайне — проверяйте фид первым

Каждый <item> — одна запись. Новое появляется сверху.

ИТОГ ЧАСТИ 1

Что уже в кармане

🔌 🧑‍🍳 Интеграция — сервисы обмениваются данными API — официант: просите по меню, приносят сами ответ Заявка появилась → сама уехала куда надо, без ручного К «кухне» сервиса вас не пускают — есть понятное меню копирования. запросов.

🔑 Адрес + метод + ключ — из чего собран запрос Endpoint, GET/POST и Authorization: Bearer. 📦 JSON + код — в каком виде приходит ответ Данные «поле: значение» и статус: 200, 401, 429.

↩️ А что если не вы спрашиваете, а сервис сам вам сообщает, что произошло событие? Это — вебхуки.

02 ЧАСТЬ 02

Webhooks Наоборот: не вы стучитесь к сервису, а сервис сам сообщает вам — «случилось событие».

ПРОБЛЕМА

Как узнать, что событие случилось? С обычным API вы можете только сами спрашивать снова и снова. Это как стоять у почтового ящика и каждую минуту его открывать.

В Ы Д Ё Р ГА Е Т Е С Е Р В И С · P O L L I N G

😮‍💨 Утомительно Спрашивать одно и то же без конца

Оплата прошла? — Нет

Оплата прошла? — Нет

Оплата прошла? — Нет 🧾 Дорого Тратит запросы, упирается в лимит 429

Оплата прошла? — Нет

Оплата прошла? — Да! ✓

🐌 Всё равно с задержкой Узнали не в момент события, а позже

…и так каждые несколько секунд, пока не «повезёт».

РЕШЕНИЕ

Webhook — «перезвони мне сам» Вы оставляете сервису адрес и говорите: случится — сообщи. И идёте заниматься делами. По-русски — «обратный вызов».

📝 Оставили адрес → ☕ Занимаетесь делами → 📞 Сервис звонит сам «Оплата прошла!» — сразу, как «Случится оплата — сообщи вот сюда» Не спрашиваете, не ждёте у ящика случилось

ГЛ А В Н О Е С РА В Н Е Н И Е З А Н Я Т И Я

API — вы спрашиваете · Webhook — вам сообщают Не конкуренты, а пара. Нужно узнать прямо сейчас — API. Реагировать на события мгновенно — webhook.

🏪 API ТЯНУ · PULL 🚚 Webhook ТОЛКАЮТ · PUSH

Вы идёте в магазин за хлебом, когда нужно. Вам привозят хлеб на дом, как только испекли.

• Инициатива — у вас • Инициатива — у сервиса

• Спрашиваете, когда захотите • Сообщает, когда случилось событие

• Получаете ответ в моменте • Узнаёте сразу, без ожидания

П О Ш А ГА М

Как webhook работает — 4 шага Тот же POST-запрос, что в первой части — просто теперь его шлёт сервис вам, а не наоборот.

01 02 03 04 Даёте адрес Ждёте спокойно Случилось событие Сервис шлёт вам Специальную ссылку, куда Ничего не спрашиваете. Оплата, заявка, новое POST на ваш адрес с сервис будет слать Занимаетесь делами. сообщение. данными события. Запускает сообщения. действие.

Webhook: сервис сообщает о событии сам
Оплата прошла→POST /hooks/pay→Ваш обработчик→Уведомление или CRM
Никаких постоянных проверок: событие случилось — сервис отправил уведомление.

📬 /hooks/pay ноль лишних запросов event: payment POST → вы

В С Е ГО Д В Е В Е Щ И

Что внутри webhook: адрес + содержимое Содержимое (payload) — это тот же JSON «поле: значение», что в первой части. Просто приходит сам.

1 · E N D P O I NT ТА К П Р И ХОД ИТ В Е Б Х У К О Б О П Л АТ Е POST https://my-site.ru/hooks/payment POST /hooks/payment HTTP/1.1 Ваш адрес, готовый принять POST. Content-Type: application/json X-Signature: sha256=3f9a…

2 · B O DY · PAY LOA D { "event": "payment.succeeded", JSON в теле. + заголовки: Content-Type, X-Signature. "amount": 1990, "currency": "RUB", "order_id": "1043" }

ЖИВОЙ СЦЕНАРИЙ 1

Оплата прошла → всё случилось само Платёжная система не ждёт вопросов — сама шлёт вебхук, и на вашей стороне запускается цепочка.

💳 webhook: payment.succeeded → ВАШ А СТОРОН А ЗАПУСКАЕ Т

✓ Отмечает заказ оплаченным Клиент оплатил инициатива — у платёжной системы ✓ Шлёт клиенту чек на почту 📩 нажал «оплатить» ✓ Вам — «Продажа 1990 ₽» в Telegram 💬 на сайте

⚡ Мгновенно и без вашего участия — вот зачем нужны вебхуки.

ЖИВОЙ СЦЕНАРИЙ 2 · ОБЕ ЧАСТИ ВМЕСТЕ

Одна заявка — сразу в три места API раскладывает заявку по местам. Вебхук ловит оплату и двигает сделку. Вот и вся автоматизация.

🏢 CRM — новая сделка, менеджер видит

📝 Заявка с сайта API

⇉ в 3 места 📊 Google Таблица — новая строка в базе

имя + телефон

💬 Telegram — уведомление вам мгновенно

webhook: оплата Позже клиент оплатил → вебхук вернулся → сделка в CRM сама переехала в «Оплачено».

П РА К Т И К А П О Д К Л Ю Ч Е Н И Я

Где взять адрес и куда его вставить Две стороны: кто шлёт и кто принимает. Ваша задача — их познакомить.

СТО Р О Н А ОТ П РА В ИТ Е Л Я СТО Р О Н А П ОЛ У Ч АТ Е Л Я

Сервис, что шлёт Ваш проект В его настройках есть поле «Webhook URL» / «URL для Принимает POST, делает дело и отвечает 200 OK — иначе сервис уведомлений». Туда вписываете свой адрес. повторит отправку (retry).

1

2 Настройки → «Вебхуки» / «Уведомления» Вставить свой URL в поле ⇄ ✓ Проверяет подпись — вебхук настоящий ✓ Делает дело: запись, уведомление 3 Выбрать событие: payment ✓ Отвечает 200 OK — «принял»

«Сделай обработчик: принимает вебхук об оплате, проверяет URL: my-site.ru/hook/oplata ✎ подпись → шлёт мне в Telegram»

БЕЗОПАСНОСТЬ · ВАЖНО

Проверяйте, что вебхук — настоящий Ваш адрес открыт в интернет. Кто угодно может прислать фальшивое «оплата прошла». Защита — секретное слово.

К А К П Р О В Е Р Я Е ТС Я П ОД П И С Ь · H M A C

# сервис и вы знаете один secret mine = HMAC_SHA256(body, secret) # сравниваем с заголовком mine == header["X-Signature"] ? ✓ верим : ✗ отбрасываем 403

🔐 Секрет + подпись Сервис и вы заранее договариваетесь о секретном слове. Настоящий вебхук приходит с подписью из него.

Подпись сходится → верим. Нет → игнорируем. 🤖 Секрет платёжки лежит в .env, а проверку Claude напишет по просьбе. Тело подписи — байт в байт как пришло.

ЛЕГКО УПУСТИТЬ

Webhook-URL — это тоже секрет Утёк адрес приёмника — на него шлют мусор, подделывают заявки и оплаты. Берегите как ключ.

🚫 🔏 🧪 Не публикуйте Включайте защиту Тест ≠ рабочий Не в скриншоты, не в общий чат, не в Подпись, токен в URL, проверка источника — Храните отдельно, чтобы проверка не открытый код. у n8n, Albato, Salebot есть. создала настоящую оплату.

♻️ Утёк — выпустите новый URL или смените токен в настройках приёмника. Ровно как перевыпуск ключа.

«ДОШЛО, НО ПУСТО»

Сопоставление полей Одно и то же поле сервисы называют по-разному. Запрос прошёл, а телефон потерялся — имена не совпали.

П Р И С Л А Л А T I L DA ЖДЁТ AMOCRM

⇄ { маппинг { "name": "Анна", "name": "Анна", "phone": "+7999…" phone→contact_phone "contact_phone": ? } }

🤖 Дайте Claude JSON от одного сервиса и список полей другого — он сам сопоставит и скажет, чего не хватает.

ДВЕ ЛОВУШКИ РЕАЛЬНОЙ ЖИЗНИ

Дубли и таймауты Сервис перестраховывается и шлёт повтор. Обработчик должен это спокойно переживать.

👯 Вебхук пришёл дважды ⏱️ Ответили слишком поздно

Сервис не уверен, что вы приняли — повторяет. Наивный Сервис ждёт ответ пару секунд. Долгая обработка → вебхук обработчик создаст две сделки или спишет дважды. считают неуспешным и шлют повтор.

Идемпотентность: по order_id проверяем — уже обрабатывали? Приём: сразу ответить 200 OK «принял», а тяжёлую работу делать Да → тихо пропускаем. отдельно, после ответа.

К О ГД А Н А П Р Я М У Ю Н Е С Т Ы К У Е Т С Я

Промежуточный сервис — переходник Форматы не совпали, не хватает поля или авторизации? Между сервисами ставят автоматизацию.

📝 🔧 Tilda → n8n Сервис автоматизации

Make Zapier Albato → 🏢 amoCRM шлёт заявку Принял → показал JSON → переименовал поля → отбросил пустые → привёл телефон к чистая сделка формату

🧩 Универсальный переходник и фильтр между любыми сервисами — когда прямого стыка нет.

ОТЛ А Д К А · Б Е З П А Н И К И

Вебхук не приходит? Чек-лист В 9 случаях из 10 — опечатка в адресе или невключённое событие. Пройдитесь сверху вниз.

1 Верный ли адрес вписан в настройках? Опечатка — причина №1

2 Включён ли этот тип события? Иногда уведомления активируют галочкой

3 Было ли само событие? Может, тестовая оплата не прошла

4 Загляните в журнал вебхуков — там видно, слали ли и какой ответ

5 Попросите Claude сделать тестовую отправку и показать, что именно пришло 🤖

ИТОГ ЧАСТИ 2

Вебхуки

📞 Webhook — сервис сам сообщает о событии 📦 Адрес + payload — куда слать и что внутри

🔐 Секрет — проверяем, что вебхук настоящий 🍞 API — идёте за хлебом · webhook — везут на дом

🤖 Теперь — как собрать всё это без единой строчки кода, с Claude.

03 ЧАСТЬ 03

Собираем с Claude Всё, что разобрали — одной задачей словами. Кода не пишете, ставите задачу.

Е Щ Ё УД О Б Н Е Е К Л Ю Ч Е Й

Коннекторы (MCP) — готовые переходники Подключили один раз — Claude ходит в сервис сам, без ручного копирования ключей. Как выдать сотруднику пропуск.

🧩 Готовая, безопасная обёртка вокруг сервиса

1️⃣ Подключаете один раз — работает дальше C L AU D E + КО Н Н Е К ТО Р Ы

🗝️ Не надо копировать ключи в каждый чат 💬 Telegram 📊 Google 🏢 CRM ✉️ Почта Один раз выдали «пропуск в кабинеты» — дальше Claude ходит

↩️ Коннектора нет — работаем через API и ключ туда сам и делает работу.

⚠️ Ставьте только официальные MCP-серверы (каталог Anthropic, сайты сервисов). Чужой сервер получит доступ к вашим данным от вашего имени.

ВАЖНЕЕ ЛЮБОЙ ТЕХНИКИ

Пять золотых правил с ключами Эти пять пунктов уберегут вас от 99% проблем с интеграциями.

🔑 Ключ = пароль. Не показывать, не выкладывать в открытый код ♻️ Попал не туда — сразу перевыпустить, старый отключить

🧪 Начинайте с тестовых режимов — ошибка не стоит денег 💰 Деньги — внимательнее. Сначала на маленьких суммах

🤖 Не уверены — спросите Claude «это безопасно?» перед тем, как что-то публиковать

Г РА Б Л И Н О В И Ч К А

Частые ошибки — и как их обойти Всё это легко избежать, если помнить сегодняшнее занятие и переспрашивать Claude.

🙈 Вставили ключ прямо в опубликованный код — его увидели все ✓ ключ в .env

🔀 Перепутали GET и POST — просили «создай» там, где сервис только отдаёт ✓ узнать=GET

🔁 Забыли про лимит — в цикле упёрлись в код 429 ✓ смотреть Retry-After

🔕 Ждали вебхук, но не включили нужное событие в настройках ✓ включить событие

🎭 Поверили любому запросу на свой вебхук — без проверки секрета ✓ проверять подпись

ПРОВЕРИМ СЕБЯ

API или Webhook? Подсказка: спрашиваете вы — API. Сообщают вам о событии — webhook.

Узнать курс валют при открытии страницы API 🏪 Сигнал сразу, как только кто-то оплатил Webhook 🚚

Раз в день выгружать заказы в таблицу API 🏪 Пришло новое сообщение боту в Telegram Webhook 🚚

Показать погоду в виджете на сайте API 🏪 Заявка отправлена с формы на лендинге Webhook 🚚

Найти товар по названию в каталоге API 🏪 Курьер сменил статус доставки на «доставлено» Webhook 🚚

Отправить письмо-подтверждение клиенту API 🏪 Подписка продлилась — уведомить систему Webhook 🚚

Ч Т О П Е Р Е С ТА Л О П У ГАТ Ь

Мини-словарь занятия Десять слов. Если каждое отзывается понятной картинкой — вы усвоили занятие.

Интеграция сервисы обмениваются данными сами API официант сервиса: просите — приносят

Ключ именной пропуск в сервис, как пароль Токен временный пропуск, обновляется

GET / POST узнать / сделать JSON данные в виде «поле: значение»

Код 200/4xx хорошо / вы ошиблись Webhook сервис сам сообщает о событии

Payload содержимое вебхука — тот же JSON Коннектор готовый переходник Claude ↔ сервис

Ш П А Р ГА Л К А Н А Б УД У Щ Е Е

С чего начать любую интеграцию Четыре шага, с которыми не заблудитесь. Сохраните — пригодится, когда понадобится в жизни.

01 02 03 04 Сформулируйте API или webhook? Ключ / коннектор Claude + тест Что и куда должно попадать: Вы дёргаете сервис — или Возьмите ключ или Поставьте задачу словами и «заявка с сайта →в такой-то вам сообщают о событии. подключите коннектор обязательно проверьте на сервис». нужного сервиса. тесте.

→ → →

✍️ 🔀 🔑 🤖

ИТОГ ЗАНЯТИЯ

Три страшных слова — теперь свои

🔌 Интеграции 🧑‍🍳 API 📞 Webhooks

Сервисы, что договорились Как попросить сервис о данных — и Как узнавать о событиях мгновенно, без обмениваться данными сами. понять его ответ. ожидания.

• Заявка → в Telegram и таблицу • Endpoint + метод GET/POST • Сервис сам шлёт вам POST • Оплата → чек и запись в CRM • Ключ в заголовке Bearer • Оплата прошла → цепочка сама • Всё сама, без ручного копирования • Ответ — JSON + код 200 • Подпись — вебхук настоящий

мостик между сервисами официант сервиса «перезвони мне сам»

💡 Главное — вы понимаете механику. А воплотить её без программиста поможет Claude.

П РА К Т И Ч Е С К А Я РА Б О ТА ⏱ ~40 минут

Бот, который присылает вам заявки Всё занятие — в одной задаче. Кода не пишете, ставите задачу словами и отдаёте токен.

Создайте бота в @BotFather ГОТО В О , Е С Л И 1 получите токен — пара минут

Лендинг с формой заявки 2 с прошлого занятия или новый — имя и телефон

«Заявки → в мой Telegram» 3 ✓ Заполнили форму на лендинге скажите Claude, отдайте токен ✓ Заявка пришла вам в Telegram

Отправьте тестовую заявку ✓ В сообщении — имя и телефон 4 убедитесь — сообщение пришло

⭐ Со звёздочкой Пусть заявки ещё и пишутся в Google Таблицу

🔑 Помните Токен — как пароль. Не выкладывайте в открытый код.

Скриншот пришедшей заявки киньте в чат группы 👋

КУРС ПО ВАЙБКОДИНГУ · ЗАНЯТИЕ 4

Спасибо за внимание Интеграции, API и вебхуки — теперь ваши инструменты, а не страшные слова.

А ВТО Р

Данила Гурачевский tg @dgurachevskii