Інтеграція CRM-системи Megaplan з сайтом
Megaplan — російська CRM та система управління завданнями, популярна у малому та середньому бізнесі. Інтеграція дозволяє автоматично створювати угоди та лідів із запитів сайту, синхронізувати контакти та отримувати сповіщення про зміни в CRM.
API Megaplan
Megaplan надає REST API. Авторизація через Bearer-токен, який отримується обміном логіну/пароля або через API-ключ у налаштуваннях акаунту.
GET https://your-domain.megaplan.ru/api/v3/deal/list
Authorization: Bearer {access_token}
Створення угоди із запиту
$response = Http::withToken($this->getToken())
->post("https://{$this->domain}.megaplan.ru/api/v3/deal/create", [
'data' => [
'contentType' => 'Deal',
'name' => "Запит з сайту: {$request->subject}",
'programId' => ['contentType' => 'DealProgram', 'id' => $this->pipelineId],
'responsible' => ['contentType' => 'Employee', 'id' => $this->defaultManagerId],
'contractor' => ['contentType' => 'Client', 'id' => $contactId],
'extraFields' => [
'Cf12345' => $request->message, // користувацьке поле
]
]
]);
Пошук або створення контакту
Перед створенням угоди потрібно знайти контакт за email або телефоном:
// Пошук існуючого контакту
$search = Http::withToken($this->getToken())
->post("https://{$this->domain}.megaplan.ru/api/v3/contractor/list", [
'data' => [
'contentType' => 'ContractorFilter',
'email' => $request->email
]
]);
if ($search['data']['meta']['totalCount'] > 0) {
$contactId = $search['data']['list'][0]['id'];
} else {
// Створити новий
$contact = Http::withToken($this->getToken())
->post("https://{$this->domain}.megaplan.ru/api/v3/client/create", [...]);
$contactId = $contact['data']['id'];
}
Отримання токена та його оновлення
$response = Http::post("https://{$this->domain}.megaplan.ru/api/v3/auth/access_token", [
'username' => env('MEGAPLAN_LOGIN'),
'password' => env('MEGAPLAN_PASSWORD'),
'grant_type' => 'password'
]);
$token = $response['access_token'];
$refreshToken = $response['refresh_token'];
// Зберігати токен у кеші, оновлювати через refresh_token
Webhooks з Megaplan
Megaplan підтримує вихідні webhook-сповіщення при зміні статусу угоди. Дозволяє оновлювати статус запиту на сайті, коли менеджер перемістить угоду на інший етап воронки.
Практичні поради
- API Megaplan може бути повільним (200–500ms) — всі запити через очередь
- Використовуйте кеш токена (Redis) — не запитуйте токен на кожний запит
- Логуйте всі запити/відповіді до таблиці
crm_logsдля отладки
Терміни інтеграції: 3–4 дні для базової інтеграції (лідо + контакти + угоди).







