Как автоматизировать заявки с сайта в CRM через n8n
Черновик
# Как автоматизировать заявки с сайта в CRM через n8n
## Введение
Классическая проблема: клиент заполняет форму на сайте, заявка падает на почту, менеджер забывает её обработать, клиент уходит к конкуренту. Знакомо? По статистике, до 40% заявок теряются именно из-за человеческого фактора.
Автоматизация решает эту проблему раз и навсегда. Заявка с сайта → моментально в CRM → уведомление менеджеру → клиент получает ответ. Без задержек, без потерь.
В этом кейсе разберём, как настроить такую цепочку через **n8n** — open-source платформу автоматизации, которую можно развернуть на Aister за минуты.
---
## Что мы строим
Архитектура решения:
1. **Форма на сайте** — клиент заполняет заявку
2. **Вебхук n8n** — принимает данные формы
3. **Валидация** — проверяем полноту данных
4. **Дедупликация** — проверяем, нет ли уже такой заявки
5. **Создание в CRM** — отправляем данные
6. **Уведомление** — менеджер получает Telegram-уведомление
7. **Автоответ** — клиенту отправляется подтверждение
---
## Шаг 1: Настройка формы на сайте
### Пример HTML-формы
```html
```
### Или через AJAX
Если не хотите перезагружать страницу:
```javascript
document.getElementById('contact-form').addEventListener('submit', async (e) => {
e.preventDefault();
const formData = new FormData(e.target);
const data = Object.fromEntries(formData);
try {
await fetch('https://your-n8n.example.com/webhook/contact', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
});
alert('Заявка отправлена!');
} catch (err) {
alert('Ошибка отправки');
}
});
```
---
## Шаг 2: Создание workflow в n8n
### Узел 1: Webhook
Добавьте узел **Webhook**:
- **Method:** POST
- **Path:** contact
- **Response Mode:** Last Node
Проверьте, что вебхук работает, отправив тестовый запрос через curl:
```bash
curl -X POST https://your-n8n.example.com/webhook/contact \
-H "Content-Type: application/json" \
-d '{"name":"Иван","email":"ivan@test.com","phone":"+79001234567","message":"Хочу консультацию","service":"consultation"}'
```
### Узел 2: Валидация данных
Добавьте узел **IF** для проверки обязательных полей:
```
Condition: {{$json.email}} is not empty AND {{$json.name}} is not empty
```
Если данные неполные — отправляем ответ с ошибкой через узел **Respond to Webhook**:
```json
{
"status": "error",
"message": "Заполните обязательные поля: имя и email"
}
```
### Узел 3: Дедупликация
Прежде чем создавать заявку, проверим, нет ли уже контакта с таким email в CRM. Добавьте узел **HTTP Request** к API вашей CRM.
Например, для AmoCRM:
```
GET https://your-domain.amocrm.ru/api/v4/contacts?query={{$json.email}}
Headers:
Authorization: Bearer YOUR_TOKEN
```
Затем узел **IF**:
```
Condition: {{$json._embedded.contacts.length}} equals 0
```
Если контакт существует — обновляем его. Если нет — создаём нового.
---
## Шаг 3: Создание контакта и сделки в CRM
### Создание контакта (AmoCRM пример)
Узел **HTTP Request**:
```json
{
"method": "POST",
"url": "https://your-domain.amocrm.ru/api/v4/contacts",
"headers": {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
"body": {
"name": "{{$node['Webhook'].json.body.name}}",
"custom_fields_values": [
{
"field_code": "EMAIL",
"values": [{"value": "{{$node['Webhook'].json.body.email}}"}]
},
{
"field_code": "PHONE",
"values": [{"value": "{{$node['Webhook'].json.body.phone}}"}]
}
]
}
}
```
### Создание сделки
Второй **HTTP Request**:
```json
{
"method": "POST",
"url": "https://your-domain.amocrm.ru/api/v4/leads",
"body": {
"name": "Заявка с сайта: {{$node['Webhook'].json.body.service}}",
"contact_id": "{{$json.id}}",
"custom_fields_values": [
{
"field_code": "UTM_SOURCE",
"values": [{"value": "{{$node['Webhook'].json.body.utm_source}}"}]
}
]
}
}
```
---
## Шаг 4: Уведомление менеджера в Telegram
Добавьте узел **Telegram**:
- **Chat ID:** ID менеджера или группы
- **Text:**
```
🔔 Новая заявка!
👤 Имя: {{$node['Webhook'].json.body.name}}
📧 Email: {{$node['Webhook'].json.body.email}}
📱 Телефон: {{$node['Webhook'].json.body.phone}}
🛎 Услуга: {{$node['Webhook'].json.body.service}}
💬 Сообщение: {{$node['Webhook'].json.body.message}}
📋 CRM: сделка создана
```
---
## Шаг 5: Автоответ клиенту
### Email-подтверждение
Узел **Send Email** (или SMTP):
```
To: {{$node['Webhook'].json.body.email}}
Subject: Ваша заявка принята
Body:
Здравствуйте, {{$node['Webhook'].json.body.name}}!
Спасибо за обращение. Мы получили вашу заявку и свяжемся с вами в течение 30 минут.
Тип услуги: {{$node['Webhook'].json.body.service}}
С уважением,
Команда поддержки
```
---
## Шаг 6: Обработка ошибок
Добавьте узел **Error Trigger** для перехвата ошибок:
```json
{
"telegram": {
"chat_id": "ADMIN_CHAT_ID",
"text": "⚠️ Ошибка в workflow заявок: {{$json.execution.error.message}}"
}
}
```
---
## Расширенные возможности
### Маршрутизация по услугам
Используйте **Switch** узел для маршрутизации:
- `consultation` → менеджер по продажам
- `support` → служба поддержки
- `sales` → отдел продаж
Каждая ветка отправляет уведомление нужному менеджеру.
### UTM-метки и аналитика
Передавайте UTM-метки из формы в CRM для отслеживания источников:
```html
```
### Интеграция с OpenClaw
Подключите OpenClaw-агента для AI-обработки заявок:
- Автоматическая классификация обращений
- Генерация персонализированных автоответов
- Приоритизация заявок по тональности
- Рекомендации менеджеру по обработке
---
## Результаты
Типичные результаты после внедрения:
- **Скорость реакции:** с часов до секунд
- **Потерянные заявки:** с 40% до 0%
- **Время менеджера:** экономия 2-3 часа в день
- **Конверсия в продажу:** рост на 15-25%
---
## Заключение
Автоматизация заявок — это базовая, но критически важная задача. n8n справляется с ней идеально: вебхук принимает данные, workflow валидирует, создаёт сделку в CRM и уведомляет нужных людей.
Разверните n8n на Aister, настройте workflow за пару часов — и забудьте о потерянных заявках навсегда.
**Нужна помощь с настройкой?** На Aister готовы помочь с развёртыванием и интеграцией.