Supabase Schema Reference

This document provides a complete reference of available tables across Supabase projects used for client context retrieval and internal operations.


Project Overview

ProjectIDPurposeTable Count
Internal AI CorekxzonslnqjsceiublxkfClient registry, team directory, agents, service offerings20+ tables
Slack MessagesoqtkgsndvitzyfzwcdozSlack channel history, content blocks, embeddings60+ tables
Zoom TranscriptsviqeppmsqvwpslpvttkkMeeting transcripts, summaries, client embeddings40+ tables

Internal AI Core Project (kxzonslnqjsceiublxkf)

This is the central operational database that ties everything together. It contains the client registry, team directory, and agent configurations.

Core Tables

Clients Table

Table: clients (30 rows)

ColumnTypeDescription
iduuidPrimary key
nametextClient name
slack_channel_idtextClient Slack channel ID
slack_messages_tabletextTable name in Slack project
slack_embeddings_tabletextEmbeddings table in Slack project
zoom_embeddings_tabletextEmbeddings table in Zoom project
zoom_querytextQuery filter for Zoom meetings
meeting_tag_prefixtextPrefix for meeting folder names
linear_team_idtextAssociated Linear team
is_externalbooleanExternal client flag (default: true)
active_statusbooleanActive engagement flag
automations_activebooleanAutomations enabled
aliasestext[]Alternative names for matching
descriptiontextClient description
tagstext[]Client tags

Team Table

Table: team (51 rows)

ColumnTypeDescription
iduuidPrimary key
first_nametextFirst name
last_nametextLast name
emailtextEmail address (unique)
slack_idstextSlack user ID
departmentdepartments[]Departments (AI, Data, Sales, Operations, Content)
teamtextTeam assignment
titletextJob title
statustextStatus (default: ‘active’)
clienttext[]Assigned clients
user_iduuidAuth user ID (FK to auth.users)

Agents Table

Table: agents (8 rows)

ColumnTypeDescription
iduuidPrimary key
agent_nametextAgent name (unique)
descriptiontextAgent description
prompttextSystem prompt
categorytextAgent category
featuredbooleanFeatured flag
initial_messagetextInitial greeting

Service Offerings Table

Table: service_offerings (166 rows)

ColumnTypeDescription
idbigintPrimary key
titletextOffering title
descriptiontextDescription
typetextOffering type
contentjsonbFull content
embeddingvectorVector embedding for search
sync_idtextNotion sync ID
is_deletedbooleanSoft delete flag

Standup Summaries Table

Table: standup_summaries (1,392 rows)

ColumnTypeDescription
iduuidPrimary key
client_iduuidFK to clients
status_updatejsonbStatus update content
blockersjsonbBlockers list
follow_upsjsonbFollow-up items
weekly_goalstextWeekly goals summary
standup_notestextRaw standup notes
generation_typetext’manual’ or ‘auto’
generated_attimestamptzGeneration timestamp

Supporting Tables

TableRowsDescription
weekly_goals8Weekly goals by client
case_studies11Case study records
case_study_interviews7Interview transcripts
case_study_copies7Generated case study copy
file_metadata78Asset/file metadata
files_hits1,700File access tracking
circle_back_leads33Lead follow-up queue
agent_config1Agent configuration
agent_available_models2Available LLM models
slack_message_log24Slack message audit log

Common Queries

-- Get all active clients with their table mappings
SELECT name, slack_channel_id, slack_messages_table, zoom_embeddings_table, linear_team_id
FROM clients
WHERE active_status = true;
 
-- Get team members by department
SELECT first_name, last_name, email, slack_ids, title
FROM team
WHERE 'AI' = ANY(department) AND status = 'active';
 
-- Get team member by email or Slack ID
SELECT * FROM team WHERE email = 'sam@brainforge.ai';
SELECT * FROM team WHERE slack_ids = 'U12345ABC';
 
-- Get client by name or alias
SELECT * FROM clients WHERE name ILIKE '%eden%' OR 'eden' = ANY(aliases);
 
-- Get recent standup summaries for a client
SELECT s.generated_at, s.status_update, s.blockers, s.follow_ups
FROM standup_summaries s
JOIN clients c ON s.client_id = c.id
WHERE c.name ILIKE '%eden%'
ORDER BY s.generated_at DESC
LIMIT 5;
 
-- Search service offerings
SELECT title, description, type
FROM service_offerings
WHERE title ILIKE '%data%' OR description ILIKE '%data%';

Slack Messages Project (oqtkgsndvitzyfzwcdoz)

Table Naming Conventions

PatternDescriptionExample
client_{client}_messagesRaw Slack messagesclient_eden_messages
{client}_slack_content_blocksAggregated content by period/channeleden_slack_content_blocks
{client}_transformedPre-processed summaries with embeddingseden_transformed
client_{client}_embeddingsVector embeddings for semantic searchclient_eden_embeddings
internal_{team}_messagesInternal team Slack channelsinternal_ai_team_messages

Raw Messages Table Schema

Table: client_{client}_messages

ColumnTypeDescription
idintegerPrimary key
texttextMessage content
tstimestamptzMessage timestamp
user_idtextSlack user ID
real_nametextUser display name
nametextUsername
channel_idtextSlack channel ID
thread_tstimestamptzThread timestamp (if reply)
reply_countfloat8Number of replies
is_botbooleanWhether sender is a bot
is_adminbooleanWhether sender is admin
blocksjsonbSlack block kit data
metadatajsonbAdditional metadata
embeddingvectorMessage embedding
contenttextProcessed content

Available client tables:

  • client_eden_messages (14,275 rows)
  • client_javvy_messages (991 rows)
  • client_pp2g_messages (5,351 rows)
  • client_abchome_messages (4,263 rows)
  • client_urbanstems_messages (8,587 rows)
  • client_mattermore_messages (540 rows)
  • client_otr_messages (295 rows)
  • client_readme_messages (574 rows)
  • client_sparkplug_messages (122 rows)
  • client_insomniacookies_messages (2,349 rows)
  • client_ellie_messages (509 rows)
  • client_interlude_messages (260 rows)
  • client_rimo_messages (1,068 rows)
  • client_hypaccess_messages (77 rows)
  • client_hedra_messages (153 rows)
  • client_honeystinger_messages (807 rows)
  • client_default_messages (2,344 rows)

Content Blocks Table Schema

Table: {client}_slack_content_blocks

ColumnTypeDescription
idbigintPrimary key
periodtextTime period (e.g., “2025-01”)
channeltextChannel name
contenttextAggregated content for the period
message_countintegerNumber of messages in block
created_attimestamptzBlock creation time
updated_attimestamptzLast update time

Available content block tables:

  • eden_slack_content_blocks (136 rows)
  • javvy_slack_content_blocks (63 rows)
  • pp2g_slack_content_blocks (107 rows)
  • abchome_slack_content_blocks (54 rows)
  • urbanstems_slack_content_blocks (96 rows)
  • mattermore_slack_content_blocks (13 rows)
  • otr_slack_content_blocks (19 rows)
  • readme_slack_content_blocks (24 rows)
  • sparkplug_slack_content_blocks (11 rows)
  • insomniacookies_slack_content_blocks (24 rows)
  • ellie_slack_content_blocks (29 rows)
  • interlude_slack_content_blocks (12 rows)
  • rimo_slack_content_blocks (38 rows)
  • hypaccess_slack_content_blocks (6 rows)
  • hedra_slack_content_blocks (9 rows)
  • honeystinger_slack_content_blocks (18 rows)
  • default_slack_content_blocks (26 rows)

Embeddings Table Schema (Slack)

Table: client_{client}_embeddings

ColumnTypeDescription
idbigintPrimary key
content_block_idbigintFK to content blocks
chunk_indexintegerChunk position
contenttextChunk content
embeddingvectorVector embedding
content_hashtextContent hash for dedup
model_usedtextEmbedding model
metadatajsonbAdditional metadata
created_attimestampCreation time
updated_attimestampLast update time

Internal Team Tables

TableRowsDescription
internal_ai_team_messages26,903AI team channel
internal_operations_messages6,778Operations channel
internal_marketing_messages12,325Marketing channel
internal_sales_messages11,143Sales channel
internal_project_management_messages4,417PM channel

Zoom Transcripts Project (viqeppmsqvwpslpvttkk)

Table Naming Conventions

PatternDescriptionExample
zoom_meeting_recording_filesAll meetings (master table)-
client_{client}_rawClient-filtered meeting viewsclient_eden_raw
client_{client}_embeddingsTranscript embeddingsclient_eden_embeddings
linear_ticket_generationsGenerated Linear tickets-

Master Meeting Table Schema

Table: zoom_meeting_recording_files (63 rows)

ColumnTypeDescription
iduuidPrimary key
s3_pathtextS3 storage path (unique)
foldertextMeeting folder/topic name
contenttextFull transcript content
summarytextAI-generated summary
meeting_datedateMeeting date
participantsjsonbAttendee information
teamtextAssociated team
departmentsint8[]Department IDs
is_publicbooleanPublic sharing flag
video_s3_pathsjsonbVideo file paths
video_urlsjsonbVideo URLs
created_attimestamptzRecord creation time

Client Raw Views Schema

Table: client_{client}_raw

Same schema as zoom_meeting_recording_files, filtered by client.

TableRowsClient
client_eden_raw233Eden
client_abc_home_and_commercial_raw296ABC Home
client_urban_stems_raw137Urban Stems
client_default_raw83Default/Misc
client_interlude_raw45Interlude
client_pool_parts_to_go_raw40Pool Parts To Go
client_readme_raw34Readme
client_ellie_raw32Ellie
client_honeystinger_raw26Honey Stinger
client_hyp_access_raw24Hyp Access
client_rimo_raw11Rimo
client_insomnia_cookies_raw10Insomnia Cookies
client_hedra_raw5Hedra

Transcript Embeddings Schema

Table: client_{client}_embeddings

ColumnTypeDescription
idbigintPrimary key
source_record_iduuidFK to zoom_meeting_recording_files
contenttextTranscript chunk
embeddingvectorVector embedding
metadatajsonbChunk metadata
created_attimestampCreation time

Available embedding tables:

  • client_eden_embeddings (1,237 rows)
  • client_abc home and commercial_embeddings (1,662 rows)
  • client_urban stems_embeddings (570 rows)
  • client_default_embeddings (547 rows)
  • client_pool parts to go_embeddings (209 rows)
  • client_readme_embeddings (228 rows)
  • client_interlude_embeddings (214 rows)
  • client_honeystinger_embeddings (181 rows)
  • client_ellie_embeddings (164 rows)
  • client_hyp access_embeddings (157 rows)
  • client_insomnia cookies_embeddings (90 rows)
  • client_hedra_embeddings (64 rows)
  • client_rimo_embeddings (54 rows)

Linear Ticket Generations Schema

Table: linear_ticket_generations (1,620 rows)

ColumnTypeDescription
iduuidPrimary key
meeting_iduuidFK to zoom_meeting_recording_files
titletextTicket title
descriptiontextTicket description
team_idtextLinear team ID
team_nametextLinear team name
assignee_idtextAssignee ID
assignee_nametextAssignee name
linear_issue_idtextCreated Linear issue ID
linear_issue_urltextIssue URL
linear_issue_identifiertextIssue identifier (e.g., “BF-123”)
statustextGeneration status
linksjsonbRelated links
preferred_statejsonbDesired issue state
generation_metadatajsonbGeneration details
created_attimestamptzCreation time
updated_attimestamptzLast update
created_in_linear_attimestamptzWhen pushed to Linear

Common Query Examples

Slack Queries

-- Get recent content blocks for Eden
SELECT period, channel, content, message_count 
FROM eden_slack_content_blocks 
ORDER BY period DESC 
LIMIT 5;
 
-- Search messages containing a keyword
SELECT ts, real_name, text 
FROM client_eden_messages 
WHERE text ILIKE '%roadmap%' 
ORDER BY ts DESC;
 
-- Get messages from a specific date range
SELECT ts, real_name, text 
FROM client_urbanstems_messages 
WHERE ts >= '2025-01-01' AND ts < '2025-02-01'
ORDER BY ts;

Zoom Queries

-- Get recent meetings for a client
SELECT meeting_date, folder, summary 
FROM client_eden_raw 
ORDER BY meeting_date DESC 
LIMIT 5;
 
-- Get full transcript for latest meeting
SELECT content, summary, participants 
FROM client_eden_raw 
ORDER BY meeting_date DESC 
LIMIT 1;
 
-- Search all meetings by keyword
SELECT id, meeting_date, folder, summary 
FROM zoom_meeting_recording_files 
WHERE summary ILIKE '%integration%'
ORDER BY meeting_date DESC;
 
-- Get meeting with embeddings for semantic search context
SELECT e.content, r.meeting_date, r.folder 
FROM client_eden_embeddings e 
JOIN zoom_meeting_recording_files r ON e.source_record_id = r.id 
WHERE r.meeting_date >= '2025-01-01' 
ORDER BY r.meeting_date DESC, e.id;
 
-- Get generated tickets for a meeting
SELECT title, description, status, linear_issue_url 
FROM linear_ticket_generations 
WHERE meeting_id = 'uuid-here';

Client Name Mapping

When a user references a client, use this mapping to find the correct table name:

User InputTable KeyNotes
”Eden”eden
”Javvy”javvy
”Pool Parts”, “PP2G”pp2g (Slack), pool_parts_to_go (Zoom)Different conventions
”ABC Home”, “ABC”abchome (Slack), abc_home_and_commercial (Zoom)
“Urban Stems”urbanstems (Slack), urban_stems (Zoom)
“Mattermore”mattermoreSlack only
”OTR”otr
”Readme”readme
”Sparkplug”sparkplug
”Insomnia”, “Insomnia Cookies”insomniacookies (Slack), insomnia_cookies (Zoom)
“Ellie”, “Ellie Mental Health”ellie
”Interlude”interlude
”Rimo”rimo
”Hyp Access”, “HypAccess”hypaccess (Slack), hyp_access (Zoom)
“Hedra”hedra
”Honey Stinger”honeystinger

Notes

  • Vector columns: The embedding columns use pgvector type for semantic search
  • Table name quirks: Some Zoom tables have spaces in names (e.g., client_pool parts to go_embeddings) - use double quotes in SQL
  • Date formats: Use ISO format (YYYY-MM-DD) for date filters
  • Timestamps: All timestamps are in UTC