Visão Geral para Desenvolvedores
O PrimoCRM foi construído para ser estendido. Esta seção documenta os ganchos públicos, a API REST e os registros que você usa para adicionar funcionalidade sem editar o núcleo.
Visão geral da arquitetura
Seção intitulada “Visão geral da arquitetura”- Interface de administração: um aplicativo de página única em React que se comunica com controladores REST em PHP. Há 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. Consulte API REST. - Mecanismo em segundo plano: todo trabalho de longa execução (envios de campanhas, gotejamento de sequências, etapas de automação, importações) é executado por trabalhadores de cron que se reagendam automaticamente e possuem orçamento de tempo, nunca na requisição da página. Ao adicionar qualquer coisa que acesse uma API externa ou processe muitas linhas, siga o mesmo padrão de fila em vez de uma chamada síncrona bloqueante.
- Registros e filtros: 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, complementos se registram neles sem nenhuma edição no núcleo. Consulte 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 autônoma. O complemento 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 usa os pontos de extensão públicos, os padrões nesta seção são
exatamente como os recursos próprios 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 metadados de contato, e um status que controla a elegibilidade para recebimento de e-mails.
- Listas e etiquetas agrupam contatos através de tabelas intermediárias.
- 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. Consulte
Personalização e Smart Codes.
Convenções
Seção intitulada “Convenções”- Namespaces: adicione um prefixo aos seus ganchos, opções e chaves para que não haja conflitos. O PrimoCRM usa o prefixo
primocrm_para ganchos PHP eprimocrm/v1para REST. - Capacidades: os endpoints REST verificam uma capacidade em seu retorno de chamada de permissão. Respeite o mesmo modelo em qualquer coisa que você adicionar.
- Nada é bloqueado: o PrimoCRM não possui uma lista de permissões para recursos gratuitos/pagos. O que estiver registrado, é executado. Se o seu gatilho ou ação precisar de um plugin que não está instalado, registre-o mesmo assim com uma string
requires_plugin, e o PrimoCRM o listará como indisponível em vez de ocultá-lo.
Para onde ir em seguida
Seção intitulada “Para onde ir em seguida”- Ações e Filtros: a referência completa de ganchos.
- API REST: namespace, autenticação e endpoints.
- Estendendo o PrimoCRM: receitas de copiar e colar para campos, fontes, gatilhos e remetentes.