Pular para o conteúdo

Visão Geral para Desenvolvedores

O PrimoCRM foi construído para ser estendido. Esta seção documenta os ganchos (hooks) públicos, a REST API e os registros que você utiliza para adicionar funcionalidades sem editar o núcleo.

  • Interface de Administração (Admin UI): um aplicativo de página única (SPA) em React que se comunica com controladores REST em PHP. Existe uma página de administração com roteamento no lado do cliente.
  • Controladores REST: cada módulo registra suas rotas sob o namespace primocrm/v1 em rest_api_init. Veja REST API.
  • Mecanismo em segundo plano: todo o trabalho de longa duração (envios de campanhas, sequências de e-mails, etapas de automação, importações) é executado por meio de trabalhadores de cron (cron workers) reagendados automaticamente e com limite de tempo, nunca na requisição da página. Quando você adicionar algo que acesse uma API externa ou processe muitas linhas, siga o mesmo padrão de fila em vez de uma chamada bloqueante.
  • Registros e filtros (Registries and filters): gatilhos, ações, campos de formulário, fontes de migração e remetentes de e-mail são coletados através de filtros do WordPress, portanto os add-ons se registram neles sem nenhuma edição no núcleo. Veja Estendendo o PrimoCRM.

O PrimoCRM é distribuído como dois plugins. O plugin Gratuito é o CRM completo e funciona de forma independente. O add-on Pro define uma constante que desbloqueia recursos premium e registra gatilhos, ações e remetentes adicionais através dos mesmos filtros públicos que o seu próprio código usaria.

Como o Pro utiliza os pontos de extensão públicos, os padrões nesta seção são exatamente como os recursos primários do Pro são construídos. Se o Pro pode adicionar um gatilho do WooCommerce através de primocrm_automation_triggers, você também pode.

  • Contatos carregam campos padrão mais campos personalizados armazenados como meta do contato, e um status que controla a elegibilidade para e-mails.
  • Listas e etiquetas (tags) agrupam contatos através de tabelas pivô.
  • Campanhas, sequências e automações possuem suas próprias tabelas e são impulsionadas pelo mecanismo em segundo plano.

Os valores de campos personalizados podem ser lidos em e-mails como {{contact.meta.KEY}} e gravados por automações, que é o ponto de integração utilizado pela ação de IA do Pro. Veja Personalização e Códigos Inteligentes.

  • Namespacing: utilize prefixos em seus ganchos, opções e chaves para que não haja conflitos. O PrimoCRM utiliza o prefixo primocrm_ para ganchos PHP e primocrm/v1 para REST.
  • Capacidades (Capabilities): os endpoints REST verificam uma capacidade em seu retorno de chamada de permissão (permission callback). Respeite o mesmo modelo em qualquer coisa que você adicionar.
  • Falha fechada (Fail closed): tudo o que não estiver na lista de permissões da versão Gratuita é tratado como Pro. Se você registrar um novo gatilho ou ação, decida deliberadamente se ele deve ser gratuito filtrando primocrm_free_triggers ou primocrm_free_actions.