REST API
PrimoCRM регистрирует свои REST маршруты в пространстве имен primocrm/v1 при
событии rest_api_init. Административное приложение использует те же самые конечные точки, поэтому все, что делает пользовательский интерфейс, доступно программно.
Базовый URL
Заголовок раздела «Базовый URL»https://yoursite.com/wp-json/primocrm/v1/Аутентификация
Заголовок раздела «Аутентификация»Каждая конечная точка имеет функцию обратного вызова для проверки прав, которая проверяет возможности WordPress, поэтому вызывающий код должен быть аутентифицирован и авторизован.
- Из административного приложения (тот же источник): запросы аутентифицируются по сеансу вошедшего в систему пользователя и REST nonce. WordPress отправляет nonce в заголовке
X-WP-Nonce. Это происходит автоматически для кода, выполняющегося внутри wp-admin. - Из внешнего кода: используйте метод аутентификации, поддерживаемый WordPress для REST API (например, пароли приложений), в сочетании с учетной записью пользователя, обладающего необходимыми правами. PrimoCRM Pro добавляет специальные API ключи для программного доступа.
Конечные точки для управления настройками, отправкой или выполнения деструктивных операций требуют прав уровня администратора. Для чтения и стандартных операций с контактами требуются права доступа к CRM.
Основные конечные точки
Заголовок раздела «Основные конечные точки»Список ниже представляет собой выборочный пример, а не исчерпывающий перечень. Вы можете изучить полный набор через вкладку сети браузера во время работы с административным приложением, поскольку интерфейс вызывает те же самые маршруты.
Контакты
Заголовок раздела «Контакты»| Метод | Путь | Назначение |
|---|---|---|
| GET | /contacts |
Список контактов (поддерживает пагинацию и фильтры) |
| POST | /contacts |
Создать контакт |
| GET | /contacts/{id} |
Получить один контакт |
| PUT | /contacts/{id} |
Обновить контакт |
| DELETE | /contacts/{id} |
Удалить контакт |
| POST | /contacts/bulk-action |
Применить массовое действие к множеству контактов |
| POST | /contacts/bulk-delete |
Удалить множество контактов |
| GET | /contacts/statuses |
Список доступных статусов |
| GET | /contacts/{id}/activities |
Журнал активности контакта |
| GET | /contacts/{id}/emails |
Письма, отправленные контакту |
Автоматизация
Заголовок раздела «Автоматизация»| Метод | Путь | Назначение |
|---|---|---|
| GET | /automations/triggers |
Все зарегистрированные триггеры |
| GET | /automations/actions |
Все зарегистрированные действия |
| GET | /automations/condition-options |
Поля и операторы для конструктора условий |
Формы и смарт-коды
Заголовок раздела «Формы и смарт-коды»| Метод | Путь | Назначение |
|---|---|---|
| GET | /forms/field-types |
Все зарегистрированные типы полей форм |
| GET | /smart-codes |
Каталог тегов персонализации |
Кампании, цепочки, списки, теги, шаблоны, миграция и настройки предоставляют собственные маршруты в том же пространстве имен, следуя тому же шаблону контроллеров.
Пример запроса
Заголовок раздела «Пример запроса»Создание контакта с аутентификацией через пароль приложения:
curl -X POST https://yoursite.com/wp-json/primocrm/v1/contacts \ -u "admin:APPLICATION_PASSWORD" \ -H "Content-Type: application/json" \ -d '{"email":"ada@example.com","first_name":"Ada","status":"subscribed"}'Формат ответа
Заголовок раздела «Формат ответа»Успешные ответы возвращают JSON. Ошибки возвращают тело JSON с сообщением (message),
которое можно показать пользователю, и HTTP-статусом, указывающим на проблему: 400 для
данных, которые конечная точка отклоняет, 401 или 403, когда запрос не авторизован
(нет входа в систему или отсутствуют права), 404, когда элемент не существует.
PrimoCRM не имеет ограничений тарифных планов и заблокированных конечных точек. Маршрут, добавляемый другим плагином (например, компоненты PrimoCRM Pro), существует только тогда, когда этот плагин активен; без него маршрут возвращает 404. Сохранение чего-либо, что не поддерживается ничем на сайте (например, триггер автоматизации, чей плагин не установлен, или незарегистрированный почтовый провайдер), отклоняется с кодом 400 и соответствующим сообщением.