normdev/laravel-amocrm

Laravel package for AmoCRM OAuth and lead creation with UTM support

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Forks: 0

pkg:composer/normdev/laravel-amocrm

1.0.0 2026-02-07 00:10 UTC

This package is not auto-updated.

Last update: 2026-02-06 19:15:40 UTC


README

Пакет для Laravel с интеграцией AmoCRM:

  • OAuth (получение/обновление токена)
  • отправка лида из формы
  • UTM и _ym_uid
  • заметки (message, vacancy, product, file)

Установка

composer require normdev/laravel-amocrm
php artisan vendor:publish --tag=amocrm-config

ENV (полный список)

Ниже все переменные, которые читает пакет из config/amocrm.php, с вымышленными значениями.

# Обязательные для OAuth
AMOCRM_CLIENT_ID=demo_client_id_12345
AMOCRM_CLIENT_SECRET=demo_client_secret_67890
AMOCRM_REDIRECT_URI=https://demo.example.com/amo/get_token

# Токен
AMOCRM_TOKEN_PATH=/var/www/demo-project/storage/app/amocrm
AMOCRM_TOKEN_FILE=demo-project-token.json

# Воронка и ответственный
AMOCRM_PIPELINE_ID=999001
AMOCRM_RESPONSIBLE_ID=999002

# Теги и имя лида
AMOCRM_PROJECT_TAG=demo.example.com
AMOCRM_DEFAULT_SITE_TAG=Заявка с сайта
AMOCRM_DEFAULT_LEAD_NAME=Заявка с сайта

# ID кастомных полей AmoCRM
AMOCRM_CF_UTM_MEDIUM=111111
AMOCRM_CF_UTM_TERM=111112
AMOCRM_CF_UTM_SOURCE=111113
AMOCRM_CF_UTM_CONTENT=111114
AMOCRM_CF_UTM_CAMPAIGN=111115
AMOCRM_CF_UTM_REFERRER=111116
AMOCRM_CF_COMPANY=111117
AMOCRM_CF_PRODUCT=111118
AMOCRM_CF_YID=111119

# Маршруты пакета
AMOCRM_ROUTES_ENABLED=true
AMOCRM_ROUTES_PREFIX=amo

Что реально обязательно заполнить

  • Обязательно: AMOCRM_CLIENT_ID, AMOCRM_CLIENT_SECRET, AMOCRM_REDIRECT_URI.
  • Обычно обязательно для продаж: AMOCRM_PIPELINE_ID, AMOCRM_RESPONSIBLE_ID.
  • Для передачи UTM/продукта/компании/YID: соответствующие AMOCRM_CF_* ID.
  • Если AMOCRM_TOKEN_PATH пустой, токен сохраняется в /tokens/<app-name>.json.
  • Если AMOCRM_TOKEN_FILE пустой, имя файла будет <app-name>.json.

OAuth маршрут

По умолчанию пакет регистрирует:

  • GET /amo/get_token (amocrm.getToken)

Можно изменить префикс через AMOCRM_ROUTES_PREFIX.

Использование в контроллере форм

use Illuminate\Http\Request;
use NormDev\LaravelAmoCRM\Services\AmoCRMService;
use NormDev\LaravelAmoCRM\Support\UtmResolver;

public function submit(Request $request, AmoCRMService $amoCRMService, UtmResolver $utmResolver)
{
    $data = $request->validate([
        'name' => ['nullable', 'string'],
        'phone' => ['nullable', 'string'],
        'email' => ['nullable', 'email'],
        'message' => ['nullable', 'string'],
        'product' => ['nullable', 'string'],
        'company' => ['nullable', 'string'],
        'vacancy' => ['nullable', 'string'],
    ]);

    $amoCRMService->sendLead($data, $utmResolver->fromCookies($request), 'Обратный звонок');
}

Локальная разработка (path repository)

В проекте-потребителе добавьте:

{
  "repositories": [
    {
      "type": "path",
      "url": "../laravel-amocrm"
    }
  ]
}

Далее:

composer require normdev/laravel-amocrm