Salta ai contenuti

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.

  • 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/v1 namespace on rest_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.

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.

  • 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.

  • Namespacing: prefix your hooks, options, and keys so they do not collide. PrimoCRM uses the primocrm_ prefix for PHP hooks and primocrm/v1 for 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_plugin string, and PrimoCRM lists it as unavailable instead of hiding it.