Aller au contenu

API REST

PrimoCRM enregistre ses routes REST sous l’espace de noms primocrm/v1 lors de l’action rest_api_init. L’application d’administration utilise ces mêmes points de terminaison, de sorte que tout ce que fait l’interface utilisateur est accessible par programmation.

https://yoursite.com/wp-json/primocrm/v1/

Chaque point de terminaison possède un rappel de permission qui vérifie une capacité WordPress, ce qui oblige l’appelant à être authentifié et autorisé.

  • Depuis l’application d’administration (même origine) : les requêtes sont authentifiées par la session connectée et un jeton nonce REST. WordPress envoie le nonce dans l’en-tête X-WP-Nonce. C’est automatique pour le code s’exécutant dans wp-admin.
  • Depuis du code externe : utilisez une méthode d’authentification acceptée par WordPress pour l’API REST, telle que les mots de passe d’application, associée à un utilisateur possédant la capacité requise. PrimoCRM Pro ajoute des clés d’API dédiées pour l’accès par programmation.

Les points de terminaison qui gèrent les paramètres, l’envoi ou les opérations destructrices nécessitent une capacité de niveau administrateur. Les opérations de lecture et de gestion courante des contacts nécessitent la capacité d’accès au CRM.

La liste ci-dessous est un échantillon représentatif et non exhaustif. Explorez l’ensemble complet depuis l’onglet réseau du navigateur lors de l’utilisation de l’application d’administration, puisque l’interface utilisateur appelle les mêmes routes.

Méthode Chemin Objectif
GET /contacts Lister les contacts (prend en charge la pagination et les filtres)
POST /contacts Créer un contact
GET /contacts/{id} Obtenir un contact
PUT /contacts/{id} Mettre à jour un contact
DELETE /contacts/{id} Supprimer un contact
POST /contacts/bulk-action Appliquer une action groupée à plusieurs contacts
POST /contacts/bulk-delete Supprimer plusieurs contacts
GET /contacts/statuses Lister les statuts disponibles
GET /contacts/{id}/activities Journal d’activité d’un contact
GET /contacts/{id}/emails E-mails envoyés à un contact
Méthode Chemin Objectif
GET /automations/triggers Tous les déclencheurs enregistrés
GET /automations/actions Toutes les actions enregistrées
GET /automations/condition-options Champs et opérateurs pour le constructeur de conditions
Méthode Chemin Objectif
GET /forms/field-types Tous les types de champs de formulaire enregistrés
GET /smart-codes Le catalogue des balises de personnalisation

Les campagnes, les séquences, les listes, les étiquettes, les modèles, la migration et les paramètres exposent chacun leurs propres routes sous le même espace de noms, en suivant le même modèle de contrôleur.

Création d’un contact avec l’authentification par mot de passe d’application :

Terminal window
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"}'

Les réponses réussies renvoient du JSON. Les erreurs renvoient un corps JSON avec un message que vous pouvez montrer à une personne, et un statut HTTP qui indique ce qui n’a pas fonctionné : 400 pour une entrée que le point de terminaison refuse, 401 ou 403 lorsque la requête n’est pas autorisée (non connectée ou capacité manquante), 404 lorsque l’élément n’existe pas.

PrimoCRM n’a pas de limites de forfaits et aucun point de terminaison verrouillé. Une route ajoutée par un autre plugin, telle que celles de PrimoCRM Pro, n’existe que tant que ce plugin est actif ; sans lui, la route renvoie 404. L’enregistrement d’un élément qui n’est fourni par rien sur le site, par exemple un déclencheur d’automatisation dont le plugin n’est pas installé ou un fournisseur d’e-mails qui n’est pas enregistré, est refusé avec un 400 et un message le signalant.