BDS0.1

Campaign

Uma iniciativa compartilhada com objetivo, público, organização responsável e ciclo de vida.

Revisado 2026-10-28Markdown

Tabela de origem: Campaign em Core Record Types (ops:Campaign, pendente de publicação no vocabulário). Uma Campaign é uma iniciativa coordenada de uma organização com objetivo e público definidos. Pode ser contínua e reunir canais, ações e ofertas. Cada edição acompanhada de forma independente tem um coreId armazenado. Nomes e tags não são identidade única. O Core mantém a iniciativa; o CRM mantém inscrição e atribuição comercial principal.

Regras e responsabilidade

Use as views de intake de Campaign em Data: Step 1 define Name*, Description* e Audience Definition*; Step 2 vincula exatamente uma Accountable (Organization)* e uma Accountable (Membership)* ativa nela; Step 3 preenche Start Date* e End Date° opcional; Step 4 resolve Campaign Check e define Lifecycle Status*. O fim não pode anteceder o início. Checks e views orientam a operação; não bloqueiam toda escrita.

O intake de Campaign no Core começa pelo objetivo e público.

O intake de Campaign no Core começa pelo objetivo e público.

Abrir intake no Core.

O Step 2 pede uma organização responsável e uma membership ativa nela.

Ciclo de vida e verificações

Draft prepara, Active executa, On Hold pausa, Completed encerra normalmente, Cancelled registra interrupção e Archived preserva histórico. Step 1 - Review the campaign lifecycle lista linhas Active e On Hold; Orphans - Set lifecycle status lista linhas mantidas sem status. deletedAt é retirada lógica, separada de Archived. Não invente sourceSystem nem syncRun.

Campaign — assign immutable coreId está implantada. Atribui UUID ausente quando a linha é criada e preserva identidades existentes; não é trava atômica de concorrência. Recupere o UUID apagado por engano, em vez de criar outra identidade. A view Sync - Campaign publica 16 campos compartilhados; os seis auxiliares de intake ficam no Core. O consumidor CRM preserva linhas excluídas na origem; use deletedAt e reconcilie exclusões definitivas explicitamente. No CRM a campanha é ligada a partir do Deal (Deal.Campaign°, inverso Deals (Campaign) no espelho); o resultado de uma campanha são os Deals ligados a ela.

Campos da origem

Nomes, tipos, opções e vínculos são os configurados em Core Record Types. O significado é a primeira linha da descrição de cada campo no Airtable. As opções descrevem configuração; não provam que uma regra seja aplicada em outro lugar.

Valores registrados

Campo Tipo Significado Opções, vínculo ou cálculo
Name* Texto Guarda o nome desta campanha específica. Valor informado.
Description* Texto longo Guarda o objetivo e o contexto desta campanha. Valor informado.
Audience Definition* Texto longo Guarda os critérios que descrevem o público pretendido. Valor informado.
Lifecycle Status* Seleção única Guarda o ciclo de vida da campanha. Draft, Active, Completed, On Hold, Cancelled, Archived
Attachments Anexos Guarda briefings e arquivos de apoio desta campanha. Valor informado.
Start Date* Data Guarda a data planejada de início desta campanha. Valor informado.
End Date° Data Guarda a data planejada de término desta campanha. Valor informado.
coreId Texto Guarda o UUID permanente desta campanha. Valor informado.
deletedAt Data e hora Guarda quando este registro foi excluído logicamente. Valor informado.
sourceSystem Texto Guarda o sistema em que o registro se originou. Valor informado.
syncRun Texto Guarda a referência da execução de ingestão fornecida por uma integração. Valor informado.
Campo Tipo Significado Opções, vínculo ou cálculo
Tags Vínculos Vincula rótulos usados para encontrar e agrupar esta campanha. → Tag · vários registros
Accountable (Organization)* Vínculos Vincula a única organização responsável por esta campanha. → Organization · um registro
Accountable (Membership)* Vínculos Vincula a única membership responsável por coordenar esta campanha. → Membership · um registro

Calculados

Campo Tipo Significado Opções, vínculo ou cálculo
Accountable (Organization Count) Contagem Conta as organizações responsáveis vinculadas a esta campanha. Contagem de Accountable (Organization)*
Accountable (Membership Count) Contagem Conta as memberships responsáveis vinculadas a esta campanha. Contagem de Accountable (Membership)*
Accountable (Membership Status) Lookup Mostra o status atual da membership responsável. Lookup de Membership Status por Accountable (Membership)*
Accountable (Business Unit) Lookup Mostra a organização da membership responsável. Lookup de Business Unit por Accountable (Membership)*
Campaign Check Fórmula Mostra as objeções à ativação desta campanha. Fórmula abaixo.
Intake Step Fórmula Mostra o próximo passo do intake de Campaign. Fórmula abaixo.

Gerados pelo Airtable

Campo Tipo Significado Opções, vínculo ou cálculo
createdAt Data de criação Shows when this Airtable row was created. Valor de sistema do Airtable.
updatedAt Data da última alteração Shows the latest edit to this row. Valor de sistema do Airtable.

Fórmulas atuais

Os IDs de campo aparecem como os nomes atuais dos campos.

Campaign Check

IF({Name*}=BLANK(),"⚠ Missing Name. ","") &
IF({Description*}=BLANK(),"⚠ Missing objective. ","") &
IF({Audience Definition*}=BLANK(),"⚠ Missing audience definition. ","") &
IF({Accountable (Organization)*}=BLANK(),"⚠ Missing accountable organization. ","") &
IF({Accountable (Membership)*}=BLANK(),"⚠ Missing accountable membership. ","") &
IF({Start Date*}=BLANK(),"⚠ Missing start date. ","") &
IF(AND({Accountable (Membership)*},ARRAYJOIN({Accountable (Membership Status)})!="Active"),"⚠ Accountable membership is not Active. ","") &
IF(AND({Accountable (Organization)*},{Accountable (Membership)*},({Accountable (Organization)*}&"")!=ARRAYJOIN({Accountable (Business Unit)})),"⚠ Membership does not belong to accountable organization. ","") &
IF(AND({Start Date*},{End Date°},IS_BEFORE({End Date°},{Start Date*})),"⚠ End date precedes start date. ","") &
IF({Accountable (Organization Count)}>1,"⚠ More than one accountable organization. ","") &
IF({Accountable (Membership Count)}>1,"⚠ More than one accountable membership. ","") &
IF({coreId}=BLANK(),"⚠ Waiting for campaign identity. ","")

Intake Step

IF({deletedAt},"",IF(OR({Lifecycle Status*}="Draft",{Lifecycle Status*}=BLANK()),IF(OR({Name*}=BLANK(),{Description*}=BLANK(),{Audience Definition*}=BLANK()),"Create - 1",IF(OR({Accountable (Organization)*}=BLANK(),{Accountable (Membership)*}=BLANK()),"Create - 2",IF({Start Date*}=BLANK(),"Create - 3","Create - 4"))),IF(OR({Lifecycle Status*}="Active",{Lifecycle Status*}="On Hold"),"Manage - 1","")))

Exemplo (fictício)

“Spring Roof Check” é um Draft com objetivo e público de proprietários de uma região. A Example Roofing LLC e uma membership ativa de vendas são responsáveis. Depois de Start Date* preenchido e Campaign Check vazio, quem mantém escolhe Active; os vendedores do CRM ligam a ela o Deal de cada lead, em Campaign°.

Uso por outros sistemas

Direção do sync e view de origem só estão confirmadas onde a observação diz; veja Arquitetura e responsabilidades.

Sistema Tabela local Observação
CRM Campaign (mirror) unidirecional, verificado; os Deals a ligam em Campaign°, listados em Deals (Campaign)
KPIs & OKRs Sync - Campaign —

Corrigir registros compartilhados · Todas as entidades