Pular para o conteúdo

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.

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

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.

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

  • 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 e primocrm/v1 para 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.