Ga naar inhoud

REST API

PrimoCRM registreert zijn REST-routes onder de naamruimte primocrm/v1 via rest_api_init. De admin-app gebruikt dezelfde eindpunten, dus alles wat de UI doet is programmatisch beschikbaar.

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

Elk eindpunt heeft een permissiecallback die een WordPress-functionaliteit controleert, zodat een aanroeper geauthenticeerd en geautoriseerd moet zijn.

  • Vanuit de admin-app (dezelfde herkomst): verzoeken worden geauthenticeerd door de ingelogde sessie en een REST-nonce. WordPress stuurt de nonce mee in de header X-WP-Nonce. Dit gaat automatisch voor code die binnen wp-admin wordt uitgevoerd.
  • Vanuit externe code: gebruik een authenticatiemethode die WordPress accepteert voor de REST API, zoals applicatiewachtwoorden, in combinatie met een gebruiker die over de vereiste functionaliteit beschikt. PrimoCRM Pro voegt specifieke API-sleutels toe voor programmatische toegang.

Eindpunten die instellingen, verzendingen of destructieve handelingen beheren vereisen een beheerdersfunctionaliteit. Voor lees- en routinematige contacthandelingen is de CRM-toegangsfunctionaliteit vereist.

De onderstaande lijst is een representatieve steekproef en niet uitputtend. Verken de volledige set via het netwerktabblad van de browser tijdens het gebruik van de admin-app, aangezien de UI dezelfde routes aanroept.

Methode Pad Doel
GET /contacts Contacten weergeven (ondersteunt paginering en filters)
POST /contacts Een contact aanmaken
GET /contacts/{id} Eén contact opvragen
PUT /contacts/{id} Een contact bijwerken
DELETE /contacts/{id} Een contact verwijderen
POST /contacts/bulk-action Een bulkactie toepassen op meerdere contacten
POST /contacts/bulk-delete Meerdere contacten verwijderen
GET /contacts/statuses Beschikbare statussen weergeven
GET /contacts/{id}/activities Het activiteitenlogboek van een contact
GET /contacts/{id}/emails E-mails verzonden naar een contact
Methode Pad Doel
GET /automations/triggers Alle geregistreerde triggers
GET /automations/actions Alle geregistreerde acties
GET /automations/condition-options Velden en operators voor de voorwaardenbouwer
Methode Pad Doel
GET /forms/field-types Alle geregistreerde formulierveldtypen
GET /smart-codes De catalogus met personalisatietags

Campagnes, reeksen, lijsten, tags, sjablonen, migratie en instellingen bieden elk hun eigen routes onder dezelfde naamruimte, volgens hetzelfde controllermodel.

Een contact aanmaken met authenticatie via een applicatiewachtwoord:

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

Succesvolle antwoorden retourneren JSON. Fouten retourneren een JSON-body met een message die u aan een gebruiker kunt tonen, en een HTTP-status die aangeeft wat er misging: 400 voor invoer die het eindpunt weigert, 401 of 403 wanneer het verzoek niet is geautoriseerd (niet ingelogd of mist de juiste functionaliteit), 404 wanneer het item niet bestaat.

PrimoCRM heeft geen abonnementslimieten en geen vergrendelde eindpunten. Een route die een andere plug-in toevoegt, zoals die van PrimoCRM Pro, bestaat alleen zolang die plug-in actief is; zonder deze plug-in retourneert de route 404. Het opslaan van iets dat door geen enkele functie op de site wordt geboden, bijvoorbeeld een automatiseringstrigger waarvan de plug-in niet is geïnstalleerd of een e-mailprovider die niet is geregistreerd, wordt geweigerd met een 400 en een bijbehorend bericht.