Pular para o conteúdo principal

Banco de Dados

PostgreSQL 16 com extensão pgvector para busca semântica (RAG).

Tabelas principais

GrupoTabelas
Multi-tenancyorganizations, plans, subscriptions, workspaces, users, workspace_members, teams, team_members, invitations
Canaischannels, tags, custom_field_definitions, bot_fields
Contatoscontacts, contact_tags, contact_field_values
Inboxconversations, messages (particionada por mês)
Fluxosflows, flow_versions, flow_executions
Automaçõesautomations, automation_executions
Campanhascampaigns, sequences, sequence_steps, sequence_subscriptions
Broadcastsbroadcasts, broadcast_recipients
IAai_assistants, ai_sessions, knowledge_bases, knowledge_chunks
APIoutbound_webhooks, webhook_events, api_keys
LGPDconsent_records, data_subject_requests
Geralaudit_logs, quick_replies, message_templates, csat_surveys

Extensões

CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; -- UUIDs
CREATE EXTENSION IF NOT EXISTS "vector"; -- pgvector para RAG
CREATE EXTENSION IF NOT EXISTS "pg_trgm"; -- busca por similaridade de texto

Particionamento

A tabela messages é particionada por mês para performance em alto volume:

CREATE TABLE messages (...) PARTITION BY RANGE (created_at);
CREATE TABLE messages_2026_04 PARTITION OF messages
FOR VALUES FROM ('2026-04-01') TO ('2026-05-01');

Particionar mensalmente garante que queries por período recente não escaneiam anos de histórico.