Developer Overview
PrimoCRM è progettato per essere esteso. Questa sezione documenta gli hook pubblici, la REST API e i registry che utilizzi per aggiungere funzionalità senza modificare il codice principale.
Architecture at a glance
Sezione intitolata “Architecture at a glance”- Admin UI: a React single-page app that talks to PHP REST controllers. There is one admin page with client-side routing.
- REST controllers: each module registers its routes under the
primocrm/v1namespace onrest_api_init. See REST API. - Background engine: all long-running work (campaign sends, sequence drips, automation steps, imports) runs through self-rescheduling, time-budgeted cron workers, never in the page request. When you add anything that hits an external API or processes many rows, follow the same queue pattern rather than a blocking call.
- Registries and filters: triggers, actions, form fields, migration sources, and email senders are all collected through WordPress filters, so add-ons register into them with zero core edits. See Extending PrimoCRM.
Free and Pro
Sezione intitolata “Free and Pro”PrimoCRM viene distribuito come due plugin. Il plugin Free costituisce l’intero CRM e funziona in modo autonomo. Il componente aggiuntivo Pro definisce una costante che sblocca le funzionalità premium e registra ulteriori trigger, azioni e mittenti attraverso gli stessi filtri pubblici che utilizzerebbe il tuo codice.
Poiché Pro utilizza i punti di estensione pubblici, i pattern in questa sezione rappresentano esattamente il modo in cui vengono create le funzionalità Pro proprietarie. Se Pro può aggiungere un trigger WooCommerce tramite primocrm_automation_triggers, puoi farlo anche tu.
Data model, in brief
Sezione intitolata “Data model, in brief”- Contacts carry standard fields plus custom fields stored as contact meta, and a status that controls mailability.
- Lists and tags group contacts through pivot tables.
- Campaigns, sequences, and automations each own their tables and are driven by the background engine.
I valori dei campi personalizzati sono leggibili nelle email come {{contact.meta.KEY}} e scrivibili dalle automazioni, che rappresentano il punto di contatto utilizzato dall’azione Pro IA. Vedi Personalization and Smart Codes.
Conventions
Sezione intitolata “Conventions”- Namespacing: prefix your hooks, options, and keys so they do not collide. PrimoCRM uses the
primocrm_prefix for PHP hooks andprimocrm/v1for REST. - Capabilities: REST endpoints check a capability in their permission callback. Respect the same model in anything you add.
- Nothing is locked: PrimoCRM has no free/paid allowlist. What is registered, runs. If your trigger or action needs a plugin that is not installed, register it anyway with a
requires_pluginstring, and PrimoCRM lists it as unavailable instead of hiding it.
Where to go next
Sezione intitolata “Where to go next”- Actions and Filters: the full hook reference.
- REST API: namespace, auth, and endpoints.
- Extending PrimoCRM: copy-paste recipes for fields, sources, triggers, and senders.