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.
Visão geral da arquitetura
Seção intitulada “Visão geral da arquitetura”- 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/v1emrest_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.
Versões Gratuita e Pro
Seção intitulada “Versões Gratuita e Pro”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.
Modelo de dados, em resumo
Seção intitulada “Modelo de dados, em resumo”- 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.
Convenções
Seção intitulada “Convenções”- 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 eprimocrm/v1para 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_triggersouprimocrm_free_actions.
Para onde ir em seguida
Seção intitulada “Para onde ir em seguida”- Ações e Filtros: a referência completa de ganchos.
- REST API: namespace, autenticação e endpoints.
- Estendendo o PrimoCRM: receitas de copiar e colar para campos, fontes, gatilhos e remetentes.