---
title: "Создание плагина для обработки вебхуков AmoCRM в Joomla - WebTolk"
description: "Как обработать данные вебхука AmoCRM в Joomla? Создание плагина Joomla для обработки уведомлений и данных AmoCRM."
url: "https://web-tolk.ru/dev/biblioteki/wt-amo-crm-library/documentation/creating-a-plugin-for-processing-amocrm-webhooks-in-joomla"
date: "2026-06-19T05:14:39+00:00"
language: "ru-RU"
---

# Создание плагина для обработки вебхуков AmoCRM в Joomla

WT Amo CRM library - Документация

**Категория:** [Библиотеки](https://web-tolk.ru/dev/biblioteki)

[Проект](https://web-tolk.ru/dev/biblioteki/wt-amo-crm-library)[Версии](https://web-tolk.ru/dev/biblioteki/wt-amo-crm-library/versions)[Документация](https://web-tolk.ru/dev/biblioteki/wt-amo-crm-library/documentation)[GitHub](https://github.com/WebTolk/WT-Amo-CRM-library-for-Joomla-4)

Как обработать данные вебхука AmoCRM в Joomla? Создание плагина Joomla для обработки уведомлений и данных AmoCRM.

При верной настройке библиотеки WT AmoCRM вебхуки AmoCRM отправляются на единую точку входа в Joomla вида `<ваш_сайт>/index.php?option=com_ajax&plugin=wt_amocrm&group=system&format=raw&action=webhook&action_type=external&token=<joomla_token>`. После этого происходит очистка данных от GET-параметров URL точки входа: `option`, `plugin`, `group`, `format`, `action`, `action_type`, `token`.

Для обработки очищенных данных нужно создать собственный плагин, который будет слушать событие `onAmocrmIncomingWebhook`. Перед вызовом импортируются группы плагинов:

1. `system`
2. `user`
3. `amocrm`

Рекомендуется создавать плагины в группе `amocrm` для того, чтобы не перегружать систему событий Joomla. В общем диспетчере событий Joomla системные плагины вызываются всегда и до плагинов групп. Таким образом системный плагин, обрабатывающий входящий вебхук будет вызываться при каждой генерации страницы, участвовать во всех процессах Joomla, что в данном конкретном случае совершенно избыточно.

### Создание плагина обработки вебхуков AmoCRM в Joomla

Сам процесс создания плагина для Joomla многократно описан:

1. [Создание плагинов с учётом новой структуры Joomla 4](https://web-tolk.ru/dev/biblioteki/wt-amo-crm-library/documentation/index.php?option=com_content&view=article&id=80&catid=10&lang=ru-RU) (на этом сайте)
2. [Создание плагинов с учётом новой структуры Joomla 4](https://habr.com/ru/articles/736412/) (на Хабре)
3. [Официальная документация Joomla для разработчиков manual.joomla.org](https://manual.joomla.org/docs/5.3/building-extensions/plugins/)
4. [Книга греческого Joomla-разработчика Николаса Дионисопулоса "Joomla Extensions development"](https://www.dionysopoulos.me/book.html)
5. [Как триггерить события для плагинов на манер Joomla 5+?](https://web-tolk.ru/dev/biblioteki/wt-amo-crm-library/documentation/index.php?option=com_content&view=article&id=154&catid=10&lang=ru-RU)

Поэтому здесь будут описаны нюансы, касающиеся работы именно с библиотекой.

#### Namespace плагина

Например, имя класса вашего плагина `customamocrmprocess`. Тогда в XML-манифесте плагина указываем:

```
<namespace path="src">Joomla\Plugin\Amocrm\Customamocrmprocess</namespace>
```

В классе плагина, который будет находиться в **plugins/amocrm/customamocrmprocess/src/Extension/Customamocrmprocess.php** указываем

```
<?php

namespace Joomla\Plugin\Amocrm\Customamocrmprocess\Extension;

use Webtolk\Amocrm\Event\WebhookEvent;
use Joomla\CMS\Plugin\CMSPlugin;
use Joomla\CMS\Uri\Uri;
use Joomla\Event\SubscriberInterface;

\defined('_JEXEC') or die;

final class Customamocrmprocess extends CMSPlugin implements SubscriberInterface
{

    /**
     * Returns an array of events this subscriber will listen to.
     *
     * @return array
     *
     * @since   5.3.0
     */
    public static function getSubscribedEvents(): array
    {
        return [
            'onAmocrmIncomingWebhook' => 'onAmocrmIncomingWebhook',
        ];
    }

    /**
     * Set as required the passwords fields when mail to user is set to No
     *
     * @param   PrepareFormEvent $event  The event instance.
     *
     * @return  void
     *
     * @since   4.0.0
     */
    public function onAmocrmIncomingWebhook(WebhookEvent $event): void
    {
        // выполняем работу с данными
    }
}
```

Предполагается, что метод `onAmocrmIncomingWebhook` не возвращает никаких данных (`void`), так как в ответ на уведомление мы можем только выполнить свой запрос в API или просто обработать данные.

#### Аргумент $event события onAmocrmIncomingWebhook

Аргумент `$event` события `onAmocrmIncomingWebhook` - это объект класса `\Webtolk\Amocrm\Event\WebhookEvent`, находящегося в **libraries/Webtolk/Amocrm/src/Event/WebhookEvent.php**. Этот класс предоставляет возможность получить php массив с данными из вебхука. Если данных нет - будет возвращён пустой массив.

```
<?php
// Все `сырые` данные вебхука если есть
$data = $event->getData();

// Данные аккаунта если есть
$account = $event->getAccount();

// Данные контактов/компаний если есть
$contacts = $event->getContacts();

// Данные сделок, если есть
$leads = $event->getLeads();

// Данные задач, если есть
$tasks = $event->getTasks();

// Данные неразобранного, если есть
$unsorted = $event->getUnsorted();

// Данные сообщений, если есть
$messages = $event->getMessages();
```

Пример кода для **вашего** плагина.

```
<?php

use Webtolk\Amocrm\Event\WebhookEvent;

/**
 * @param   WebhookEvent  $event
 *
 * @return  void
 *
 * @throws  AmocrmClientException
 * @see     WebhookEvent
 * @since   1.3.0
 */
public function onAmocrmIncomingWebhook(WebhookEvent $event): void
{

    /** @var array $contacts Array of contacts from webhook if exists */
    $contacts = $event->getContacts();

    if (empty($contacts)) {
        return;
    }

    // делаем что-то с контактами
}
```

Конечно, никто не мешает вам самостоятельно получать данные из объекта `Input` Joomla.

```
<?php
$app = $this->getApplication();

$any_data = $app->getInput()->getString('any_data', 'default_value_if_empty');
```

## JSON-LD Schema

```json
{
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17",
    "itemListElement": [
        {
            "@type": "ListItem",
            "position": 1,
            "item": {
                "@id": "https://web-tolk.ru/",
                "name": "Главная"
            }
        },
        {
            "@type": "ListItem",
            "position": 2,
            "item": {
                "@id": "https://web-tolk.ru/dev",
                "name": "Расширения Joomla"
            }
        },
        {
            "@type": "ListItem",
            "position": 3,
            "item": {
                "@id": "/dev/biblioteki",
                "name": "Библиотеки"
            }
        },
        {
            "@type": "ListItem",
            "position": 4,
            "item": {
                "@id": "/dev/biblioteki/wt-amo-crm-library",
                "name": "WT Amo CRM library"
            }
        },
        {
            "@type": "ListItem",
            "position": 5,
            "item": {
                "@id": "/dev/biblioteki/wt-amo-crm-library/documentation",
                "name": "Документация"
            }
        },
        {
            "@type": "ListItem",
            "position": 6,
            "item": {
                "name": "Создание плагина для обработки вебхуков AmoCRM в Joomla"
            }
        }
    ]
}
```

```json
{
    "@context": "https://schema.org",
    "@graph": [
        {
            "@type": "Organization",
            "@id": "https://web-tolk.ru/#/schema/Organization/base",
            "name": "WebTolk",
            "url": "https://web-tolk.ru/",
            "logo": {
                "@type": "ImageObject",
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo",
                "url": "images/webtolk-1080p.jpg",
                "contentUrl": "images/webtolk-1080p.jpg",
                "width": 1920,
                "height": 1080
            },
            "image": {
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo"
            },
            "sameAs": [
                "https://github.com/WebTolk",
                "https://github.com/sergeytolkachyov",
                "https://vk.com/web_tolk",
                "https://vk.com/webtolkru",
                "https://tenchat.ru/sergeytolkachyov",
                "https://t.me/sergeytolkachyov",
                "https://t.me/webtolkru"
            ]
        },
        {
            "@type": "WebSite",
            "@id": "https://web-tolk.ru/#/schema/WebSite/base",
            "url": "https://web-tolk.ru/",
            "name": "WebTolk",
            "publisher": {
                "@id": "https://web-tolk.ru/#/schema/Organization/base"
            }
        },
        {
            "@type": "WebPage",
            "@id": "https://web-tolk.ru/#/schema/WebPage/base",
            "url": "https://web-tolk.ru/dev/biblioteki/wt-amo-crm-library/documentation/creating-a-plugin-for-processing-amocrm-webhooks-in-joomla",
            "name": "Создание плагина для обработки вебхуков AmoCRM в Joomla - WebTolk",
            "description": "Как обработать данные вебхука AmoCRM в Joomla? Создание плагина Joomla для обработки уведомлений и данных AmoCRM.",
            "isPartOf": {
                "@id": "https://web-tolk.ru/#/schema/WebSite/base"
            },
            "about": {
                "@id": "https://web-tolk.ru/#/schema/TechArticle/base"
            },
            "inLanguage": "ru-RU",
            "breadcrumb": {
                "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17"
            }
        },
        {
            "@type": "TechArticle",
            "headline": "Создание плагина для обработки вебхуков AmoCRM в Joomla",
            "url": "https://web-tolk.ru/dev/biblioteki/wt-amo-crm-library/documentation/creating-a-plugin-for-processing-amocrm-webhooks-in-joomla",
            "description": "Как обработать данные вебхука AmoCRM в Joomla? Создание плагина Joomla для обработки уведомлений и данных AmoCRM.",
            "mainEntityOfPage": {
                "@type": "WebPage",
                "url": "https://web-tolk.ru/dev/biblioteki/wt-amo-crm-library/documentation/creating-a-plugin-for-processing-amocrm-webhooks-in-joomla"
            }
        }
    ]
}
```
