Daisychain: Data Dictionary
Schema documentation for all tables exported via Data Sync. Auto-generated from the application schema.
ActBlue
actblue_contributions
Donations received through ActBlue integration.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| form_id | bigint | Yes | The ActBlue form used for this contribution. |
| person_id | bigint | Yes | The matched supporter in your account. |
| integration_id | uuid | No | |
| order_number | character varying | No | |
| refcodes | jsonb | Yes | |
| custom_fields | jsonb | Yes | |
| credit_card_expiration | character varying | Yes | |
| recurring_period |
actblue_recurring_period
enum: once, weekly, monthly |
No | Donation frequency: once, weekly, or monthly. |
| recurring_duration | integer | Yes | |
| ab_test_name | character varying | Yes | |
| weekly_recurring_sunset | date | Yes | |
| is_paypal | boolean | Yes | |
| is_mobile | boolean | Yes | |
| ab_test_variation | character varying | Yes | |
| text_message_option | actblue_text_message_option | No | |
| is_express | boolean | Yes | |
| with_express_lane | boolean | Yes | |
| express_signup | boolean | Yes | |
| status |
actblue_contribution_status
enum: approved, pending, declined |
No | Payment status: approved, pending, or declined. |
| thanks_url | character varying | Yes | |
| retry_url | character varying | Yes | |
| cancelled_at | timestamp(6) without time zone | Yes | |
| recur_completed | integer | Yes | |
| recur_pledged | integer | Yes | |
| smart_boost_amount | integer | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| broadcast_id | bigint | Yes | |
| message_content_variant_id | bigint | Yes |
Relationships
- form_id → actblue_forms.id
- person_id → people.id
- broadcast_id → broadcasts.id
- message_content_variant_id → message_content_variants.id
Enum Values
actblue_employers
Employer information for ActBlue contributors (for FEC compliance).
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| contribution_id | bigint | No | The contribution this employer info belongs to. |
| employer | character varying | Yes | |
| occupation | character varying | Yes | Contributor's occupation. |
| employer_addr_1 | character varying | Yes | |
| employer_city | character varying | Yes | |
| employer_state | character varying | Yes | |
| employer_country | character varying | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- contribution_id → actblue_contributions.id
actblue_entities
Recipient entities/committees receiving ActBlue donations.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| entity_id | bigint | No | |
| fec_id | character varying | Yes | |
| committee_name | character varying | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
actblue_forms
ActBlue donation form configurations.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| integration_id | uuid | No | |
| name | character varying | Yes | Form name. |
| kind |
actblue_form_kind
enum: page, merchandise, event, embed, autogenerated |
Yes | Form type: page, merchandise, event, embed, or autogenerated. |
| managing_entity_name | character varying | Yes | |
| managing_entity_committee_name | character varying | Yes | |
| owner_email | character varying | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Enum Values
actblue_line_items
Individual line items within an ActBlue contribution (e.g., split donations to multiple recipients).
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| contribution_id | bigint | No | The contribution this line item belongs to. |
| entity_id | bigint | No | The recipient entity/committee. |
| lineitem_id | bigint | No | |
| sequence | integer | Yes | |
| amount | integer | No | Amount for this line item in cents. |
| recurring_amount | integer | Yes | |
| paid_at | timestamp(6) without time zone | Yes | |
| refunded_at | timestamp(6) without time zone | Yes | |
| disbursed_at | timestamp(6) without time zone | Yes | |
| recovered_at | timestamp(6) without time zone | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- contribution_id → actblue_contributions.id
- entity_id → actblue_entities.id
People
actions
Tracked actions and events associated with people, such as donations, form submissions, and custom events.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| account_id | bigint | Yes | |
| kind | character varying | Yes | The type of action (e.g., donation, signup, custom). |
| data | jsonb | Yes | Additional action data as JSON. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| person_id | bigint | Yes | The person who performed this action. |
| actblue_contribution_id | bigint | Yes | Associated ActBlue contribution, if this action was a donation. |
Relationships
- person_id → people.id
- actblue_contribution_id → actblue_contributions.id
addresses
Physical/mailing addresses associated with people.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| person_id | bigint | Yes | The person this address belongs to. |
| kind | address_kinds | No | |
| post_office_box | character varying | Yes | |
| street_address | character varying | Yes | |
| extended_address | character varying | Yes | |
| locality | character varying | Yes | |
| region | character varying | Yes | |
| postal_code | character varying | Yes | |
| country | character varying | Yes | |
| latitude | numeric(13,10) | Yes | |
| longitude | numeric(13,10) | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| geo_projection | geometry(Point,3857) | Yes | |
| primary | boolean | Yes | Whether this is the person's primary address. |
| geocode_precision |
geocode_precision
enum: rooftop, street, postal_code, locality, region, country, unknown |
Yes | Precision level of the geocoded coordinates. |
Relationships
- person_id → people.id
Enum Values
emails
Email addresses associated with people. Each person can have multiple email addresses.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| person_id | bigint | Yes | The person this email belongs to. |
| value | character varying | Yes | |
| primary | boolean | Yes | Whether this is the person's primary email address. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- person_id → people.id
flows_custom_field_captures
Custom field values captured during flow conversations.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| person_id | bigint | No | The person whose custom field was captured. |
| field_identifier | character varying | No | |
| value | character varying | Yes | The captured value. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| field_configuration_id | bigint | Yes |
Relationships
- person_id → people.id
notes
User-created notes attached to people.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| person_id | bigint | Yes | The person this note is about. |
| card_id | bigint | Yes | |
| user_id | bigint | Yes | The team member who created the note. |
| content | character varying | Yes | The note text content. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- person_id → people.id
people
Core supporter/contact records belonging to your account.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| account_id | bigint | No | |
| first_name | character varying | Yes | |
| last_name | character varying | Yes | |
| properties | jsonb | Yes | Custom field values as JSON. Keys match fields configured in Settings > People > Fields. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| assigned_id | bigint | Yes | The team member (user) assigned to this person. |
| last_conversation_id | bigint | Yes | The most recent conversation with this person. |
Relationships
- last_conversation_id → conversations.id
person_taggings
Join records linking tags to people. Each record represents one tag applied to one person.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| tag_id | bigint | Yes | The tag that was applied. |
| person_id | bigint | Yes | The person the tag was applied to. |
| created_by_user_id | bigint | Yes | The team member who applied the tag, if done manually. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- tag_id → tags.id
- person_id → people.id
phones
Phone numbers associated with people. Each person can have multiple phone numbers.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| person_id | bigint | No | The person this phone number belongs to. |
| value | character varying | Yes | |
| primary | boolean | Yes | Whether this is the person's primary phone number. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| phone_data_id | bigint | Yes | |
| sms_opt_out_id | bigint | Yes |
Relationships
- person_id → people.id
- sms_opt_out_id → sms_opt_outs.id
sms_opt_outs
Account-level SMS opt-out records. When a phone number opts out, it applies across the account.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| account_id | bigint | Yes | |
| phone_number | character varying | Yes | The phone number that opted out. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| source_type | sms_opt_out_source_type | Yes | Type of record that triggered the opt-out. |
| source_id | bigint | Yes | ID of the record that triggered the opt-out. |
| reason | subscription_opt_out_reason | Yes | Reason for the opt-out (e.g., keyword reply, manual, carrier). |
| message_id | bigint | Yes | The message that triggered the opt-out, if applicable. |
Relationships
- message_id → messages.id
subscriptions
Communication channel opt-in/opt-out status for each person (email, SMS, voice, postal).
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| person_id | bigint | Yes | The person this subscription belongs to. |
| subscribed_at | timestamp(6) without time zone | Yes | |
| opt_out_at | timestamp(6) without time zone | Yes | |
| source_type | character varying | Yes | |
| source_id | bigint | Yes | |
| source_kind | subscription_source_kind | Yes | |
| opt_out_reason | subscription_opt_out_reason | Yes | Reason for opt-out, if applicable. |
| channel |
subscription_channels
enum: email, sms, number, postal |
No | Communication channel: email, sms, voice, or postal. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| opt_out_source_type | character varying | Yes | |
| opt_out_source_id | bigint | Yes | |
| phone_id | bigint | Yes | |
| email_id | bigint | Yes |
Relationships
- person_id → people.id
- phone_id → phones.id
- email_id → emails.id
Enum Values
tags
Tags/labels that can be applied to people for segmentation and organization.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| account_id | bigint | Yes | |
| name | character varying | Yes | The display name of the tag. |
| slug | character varying | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| kind | tag_kind | No | The type of record this tag applies to. |
Automations
automation_executions
Individual runs of an automation for a specific action/event. Tracks execution status and progress.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| action_id | bigint | Yes | The ID of the triggering action. |
| current_step_id | bigint | Yes | The step currently being executed. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| sidekiq_job_id | character varying | Yes | |
| status | execution_status | No | Execution status (running, completed, etc.). |
| action_type | automation_execution_action_type | No | The type of triggering action. |
| automation_version_id | bigint | Yes | The automation version being executed. |
| skipped_reason_execution_id | bigint | Yes | |
| person_id | bigint | Yes |
Relationships
- automation_version_id → automation_versions.id
- person_id → people.id
- current_step_id → automation_steps.id
- skipped_reason_execution_id → automation_executions.id
automation_steps
Individual steps within an automation version, executed in order.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| step_action_type | character varying | Yes | The type of action this step performs. |
| step_action_id | bigint | Yes | The ID of the action configuration. |
| position | bigint | Yes | Order position within the automation. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| automation_version_id | bigint | Yes | The automation version this step belongs to. |
Relationships
- automation_version_id → automation_versions.id
automation_versions
Versioned snapshots of automation configurations. Only published versions are active.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| integration_automatable_type | character varying | Yes | |
| integration_automatable_id | uuid | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| version | integer | No | Sequential version number. |
| status | publication_status | No | Whether this version is draft or published. |
| published_at | timestamp(6) without time zone | Yes | |
| automation_id | bigint | Yes | The automation this version belongs to. |
Relationships
- automation_id → automations.id
automations
Automated workflows triggered by events. Each automation has versions with defined trigger conditions and steps.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| account_id | bigint | No | |
| name | character varying | No | Display name of the automation. |
| managed_by_flow | boolean | No | Whether this automation is managed by a flow node rather than standalone. |
| current_version_id | bigint | Yes | The currently active automation version. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- current_version_id → automation_versions.id
Messaging
broadcasts
Mass message sends to targeted audiences. Tracks delivery status, scheduling, and A/B test configuration.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| account_id | bigint | Yes | |
| user_id | bigint | Yes | The team member who created the broadcast. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| delivered_at | timestamp(6) without time zone | Yes | |
| delivery_status | broadcast_delivery_status | Yes | Current delivery state of the broadcast. |
| audience | jsonb | Yes | |
| name | character varying | Yes | |
| audience_size | integer | Yes | |
| delivery_scheduled_at | timestamp(6) without time zone | Yes | |
| goal | character varying | Yes | |
| campaign_goal_configuration_type | character varying | Yes | |
| campaign_goal_configuration_id | bigint | Yes | |
| batch_count | integer | Yes | |
| expire_reply_batches | boolean | No | |
| conversation_flow_kind | character varying | Yes | |
| delivery_validation_errors | jsonb | Yes | |
| subscriptions_opt_outs_count | integer | No | |
| audience_duplicates_size | integer | Yes | |
| percentage_of_audience_for_testing | numeric(5,4) | Yes | |
| flow_id | bigint | Yes | The flow used for this broadcast, if applicable. |
| remaining_audience_size | integer | Yes | |
| reply_mode | character varying | No | |
| delivery_phone_number_id | bigint | Yes | |
| tsvector | tsvector | Yes |
Relationships
- flow_id → flows.id
campaigns_actblue_contribution_goals
ActBlue contribution goals linked to broadcasts. Configures donation tracking for campaign messages.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| refcode | character varying | Yes | Custom refcode appended to the ActBlue URL for tracking. |
| page_url | character varying | Yes | The ActBlue donation page URL. |
| amount | integer | Yes | Suggested donation amount in cents, if configured. |
| recurring | character varying | Yes | Recurring donation frequency, if configured. |
| express_lane | boolean | Yes | Whether ActBlue Express Lane is enabled for one-click donations. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
campaigns_mobilize_attendance_goals
Mobilize America attendance goals linked to broadcasts. Configures event signup tracking for campaign messages.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| mobilize_lookup_config_id | bigint | Yes | The lookup configuration for lookup-type goals. |
| mobilize_america_event_id | bigint | Yes | The Mobilize America event for event-type goals. |
| kind | character varying | Yes | Goal type: event, lookup, or timeslot_conversation. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| mobilize_america_event_timeslot_id | bigint | Yes | The specific event timeslot for timeslot_conversation-type goals. |
Relationships
- mobilize_america_event_id → mobilize_america_events.id
- mobilize_america_event_timeslot_id → mobilize_america_event_timeslots.id
conversations
Individual messaging threads between the account and a person.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| account_id | bigint | Yes | |
| card_id | bigint | Yes | |
| person_id | bigint | Yes | The person in this conversation. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| broadcast_id | bigint | Yes | The broadcast that initiated this conversation, if applicable. |
| read | boolean | Yes | |
| automation_execution_id | bigint | Yes | |
| sms_opt_outs_count | integer | No | |
| archived_at | timestamp(6) without time zone | Yes | When the conversation was archived, if applicable. |
| archived_by_id | bigint | Yes | |
| subscriptions_opt_outs_count | integer | No | |
| last_incoming_message_at | timestamp(6) without time zone | Yes | |
| message_content_variant_id | bigint | Yes | |
| automation_send_message_id | bigint | Yes | |
| sms_keyword_id | bigint | Yes | The SMS keyword that initiated this conversation, if applicable. |
Relationships
- person_id → people.id
- broadcast_id → broadcasts.id
- message_content_variant_id → message_content_variants.id
- automation_execution_id → automation_executions.id
- sms_keyword_id → sms_keywords.id
message_content_variants
A/B test content variants for broadcasts. Each variant has its own message body and can track separate delivery statistics.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| broadcast_id | bigint | No | The broadcast this variant belongs to. |
| name | character varying | Yes | Display name of the variant. |
| body | character varying | Yes | The message text content for this variant. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| winner_at | timestamp(6) without time zone | Yes | When this variant was marked as the A/B test winner, if applicable. |
| sample_message_id | bigint | Yes | A representative message sent with this variant content. |
| letter | character varying | Yes | Single-letter identifier (A-Z) for the variant within its broadcast. |
| initial_audience_size | integer | No | Number of recipients initially assigned to this variant. |
| subscriptions_opt_outs_count | integer | No | Number of subscription opt-outs attributed to this variant. |
Relationships
- broadcast_id → broadcasts.id
- sample_message_id → messages.id
messages
Individual SMS/MMS messages within conversations. Tracks direction, delivery status, and billing.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| conversation_id | bigint | Yes | The conversation this message belongs to. |
| subaccount_id | bigint | Yes | |
| previous_message_id | bigint | Yes | |
| user_id | bigint | Yes | The team member who sent the message, for manual replies. |
| direction |
message_direction
enum: outgoing, incoming |
No | Whether the message was incoming or outgoing. |
| status |
message_status
enum: pending, accepted, scheduled, queued, sending, sent, receiving, received, delivered, undelivered, failed, canceled, paused, resumed |
Yes | Delivery status (pending, sent, delivered, failed, etc.). |
| error_code | integer | Yes | Carrier error code if delivery failed. |
| external_id | character varying | Yes | Message ID from the SMS provider. |
| from | character varying | Yes | |
| to | character varying | Yes | |
| body | character varying | Yes | The message text content. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| subaccount_type | subaccount_type | Yes | |
| segment_count | integer | Yes | Number of SMS segments this message was split into. |
| billing_kind |
billing_kind
enum: sms, mms, charm |
No | Billing category (sms, mms, etc.). |
| intent | character varying | Yes | |
| classified_intent | character varying | Yes | |
| segment_count_recalculated | integer | Yes | |
| opt_out | boolean | No | |
| accepted_at | timestamp(6) without time zone | Yes | |
| embedding | vector(384) | Yes | |
| potential_opt_out | boolean | Yes | |
| flow_node_id | bigint | Yes | The flow node that generated this message, if applicable. |
| needs_reply | boolean | No |
Relationships
- conversation_id → conversations.id
- previous_message_id → messages.id
- flow_node_id → flow_nodes.id
Enum Values
sms_keyword_terms
Individual terms/words that trigger an SMS keyword.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| sms_keyword_id | bigint | No | The SMS keyword this term belongs to. |
| term | character varying | No | The word or phrase that triggers the keyword. |
| account_id | bigint | Yes | |
| delivery_phone_number_id | bigint | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- sms_keyword_id → sms_keywords.id
sms_keywords
SMS keywords that trigger automated responses or flows when texted to your number.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| account_id | bigint | Yes | |
| delivery_phone_number_id | bigint | Yes | |
| response_message | text | Yes | The auto-reply message sent when this keyword is received. |
| triggers_opt_in | boolean | No | |
| starts_new_conversation | boolean | No | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| flow_id | bigint | Yes | The flow triggered by this keyword, if applicable. |
Relationships
- flow_id → flows.id
Flows
flow_message_followups
Follow-up actions triggered after a message is sent within a flow.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| followup_target_type | flow_message_followup_target_type | No | Type of message being followed up (Message or SimulatedMessage). |
| followup_target_id | bigint | No | ID of the message being followed up. |
| status |
followup_status
enum: enqueued, pending, processing, cancelled, completed, exhausted, failed |
No | |
| followup_attempts | integer | No | |
| last_processed_at | timestamp(6) without time zone | Yes | |
| next_follow_up_at | timestamp(6) without time zone | Yes | |
| resolved_at | timestamp(6) without time zone | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Enum Values
flow_node_automation_configurations
Configuration for automation type flow nodes.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| automation_id | bigint | No | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- automation_id → automation_versions.id
flow_node_automations
Links between flow nodes and automation versions that execute when the node is reached.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| flow_node_id | bigint | No | The flow node that triggers this automation. |
| flow_version_id | bigint | No | The flow version this link belongs to. |
| automation_version_id | bigint | No | The automation version to execute. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- flow_node_id → flow_nodes.id
- automation_version_id → automation_versions.id
- flow_version_id → flow_versions.id
flow_node_intelligence_configurations
Configuration for AI intelligence type flow nodes.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| should_send_reply | boolean | No | |
| ai_model | character varying | No | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| inactivity_followup_enabled | boolean | No | |
| followup_delay_minutes | integer | Yes | |
| max_followups | integer | Yes | |
| reasoning_setting | reasoning_setting | No | |
| legislative_lookup_config_id | bigint | Yes | |
| instructions_content | jsonb | Yes | |
| inactivity_followup_instructions | jsonb | Yes |
flow_node_intelligence_custom_field_configurations
Custom field extraction settings for AI intelligence nodes.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| intelligence_configuration_id | bigint | No | The intelligence node configuration this belongs to. |
| field_configuration_id | bigint | No | |
| overwrite_mode | custom_field_overwrite_mode | No | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- intelligence_configuration_id → flow_node_intelligence_configurations.id
flow_node_send_message_configurations
Configuration for send-message type flow nodes.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| body | text | No | The message template text. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
flow_nodes
Individual nodes within a flow version. Each node represents a step in the conversation (send-message, intelligence, or automation).
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| name | character varying | Yes | |
| node_type | character varying | No | |
| is_starting_node | boolean | No | |
| flow_version_id | bigint | No | The flow version this node belongs to. |
| node_configuration_type | character varying | Yes | The type of node (SendMessage, Intelligence, or Automation). |
| node_configuration_id | bigint | Yes | The ID of the node's configuration record. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| position_x | integer | No | |
| position_y | integer | No | |
| previous_version_node_id | bigint | Yes | |
| status |
flow_node_status
enum: pending, active |
No | Whether the node is pending or active. |
Relationships
- flow_version_id → flow_versions.id
- previous_version_node_id → flow_nodes.id
Enum Values
flow_states
Tracks a conversation's current position within a flow.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| flow_version_id | bigint | No | The flow version being traversed. |
| conversation_id | bigint | No | The ID of the conversation traversing the flow. |
| current_node_id | bigint | No | The flow node the conversation is currently at. |
| state_data | jsonb | No | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| conversation_type | flow_state_conversation_type | No | The type of conversation (Conversation or SimulatedConversation). |
| status |
flow_state_status
enum: active, completed |
No | Whether the flow state is active or completed. |
Relationships
- flow_version_id → flow_versions.id
- current_node_id → flow_nodes.id
Enum Values
flow_transitions
Connections between flow nodes defining the conversation path.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| name | character varying | No | |
| ai_prompt | text | Yes | |
| order | integer | No | |
| from_node_id | bigint | No | The node this transition starts from. |
| to_node_id | bigint | Yes | The node this transition leads to. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- from_node_id → flow_nodes.id
- to_node_id → flow_nodes.id
flow_url_guardrail_configurations
URL guardrail settings that constrain AI intelligence node responses to approved URLs.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| intelligence_configuration_id | bigint | No | The intelligence node configuration this guardrail belongs to. |
| enabled | boolean | No | |
| allowed_url_patterns | character varying | No | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- intelligence_configuration_id → flow_node_intelligence_configurations.id
flow_versions
Versioned snapshots of flow configurations. Only published versions are active.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| flow_id | bigint | No | The flow this version belongs to. |
| version | integer | No | Sequential version number. |
| status | publication_status | No | Whether this version is draft or published. |
| published_at | timestamp(6) without time zone | Yes | |
| published_version | integer | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| start_position_x | integer | Yes | |
| start_position_y | integer | Yes | |
| end_position_x | integer | Yes | |
| end_position_y | integer | Yes |
Relationships
- flow_id → flows.id
flows
Conversational flows that guide interactive SMS/messaging experiences.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| name | character varying | No | Display name of the flow. |
| account_id | bigint | No | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| flow_states_count | integer | No |
flows_customizable_contents
Customizable content blocks within flows for personalized messaging.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| account_id | bigint | No | |
| flow_id | bigint | Yes | |
| kind | character varying | No | |
| content | text | No | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- flow_id → flows.id
flows_scheduled_conversation_resumptions
Scheduled future resumptions of paused flow conversations.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| node_id | bigint | No | The flow node where the conversation will resume. |
| conversation_id | bigint | No | |
| resume_at | timestamp(6) without time zone | No | |
| sidekiq_jid | character varying | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| conversation_type | scheduled_resumption_conversation_type | No | |
| incoming_message_id | bigint | Yes | |
| canceled_at | timestamp(6) without time zone | Yes | |
| incoming_message_type | message_action_message_type | Yes | |
| executed_at | timestamp(6) without time zone | Yes |
Relationships
- node_id → flow_nodes.id
flows_simulated_conversations
Test/preview conversations for flow development and QA.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| flow_id | bigint | No | The flow being simulated. |
| person_id | bigint | No | |
| account_id | bigint | No | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- flow_id → flows.id
- person_id → people.id
flows_simulated_messages
Messages within simulated flow conversations.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| simulated_conversation_id | bigint | No | The simulated conversation this message belongs to. |
| previous_message_id | bigint | Yes | |
| body | text | Yes | The message text content. |
| direction |
message_direction
enum: outgoing, incoming |
No | Whether the message was incoming or outgoing. |
| from | character varying | Yes | |
| to | character varying | Yes | |
| status | character varying | Yes | |
| error_code | integer | Yes | |
| flow_node_id | bigint | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| needs_reply | boolean | No |
Relationships
- simulated_conversation_id → flows_simulated_conversations.id
- previous_message_id → flows_simulated_messages.id
- flow_node_id → flow_nodes.id
Enum Values
Fundraise Up
fundraise_up_campaigns
Fundraise Up campaign configurations.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| integration_id | uuid | No | |
| external_id | character varying | No | Fundraise Up's ID for this campaign. |
| code | character varying | Yes | |
| name | character varying | Yes | Campaign name. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
fundraise_up_donations
Donations received through Fundraise Up integration.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| integration_id | uuid | No | |
| person_id | bigint | No | The matched supporter in your account. |
| campaign_id | bigint | No | The Fundraise Up campaign. |
| fundraiser_id | bigint | Yes | |
| recurring_plan_id | bigint | Yes | The recurring plan, for recurring donations. |
| amount | integer | No | Donation amount. |
| currency | character varying | No | |
| amount_in_default_currency | integer | Yes | |
| recurring_plan_installment | integer | Yes | |
| status |
fundraise_up_donation_status
enum: succeeded, failed, refunded, pending, retrying, scheduled |
No | Payment status (succeeded, failed, refunded, pending, etc.). |
| source | character varying | Yes | |
| url | character varying | Yes | |
| utm_source | character varying | Yes | |
| utm_medium | character varying | Yes | |
| utm_campaign | character varying | Yes | |
| utm_term | character varying | Yes | |
| utm_content | character varying | Yes | |
| external_id | character varying | No | |
| external_receipt_id | character varying | Yes | |
| external_created_at | timestamp(6) without time zone | Yes | |
| external_refunded_at | timestamp(6) without time zone | Yes | |
| external_failed_at | timestamp(6) without time zone | Yes | |
| external_succeeded_at | timestamp(6) without time zone | Yes | |
| test_mode | boolean | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- person_id → people.id
- campaign_id → fundraise_up_campaigns.id
- fundraiser_id → fundraise_up_fundraisers.id
- recurring_plan_id → fundraise_up_recurring_plans.id
Enum Values
fundraise_up_fundraisers
Individual fundraiser pages within Fundraise Up campaigns.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| integration_id | uuid | No | |
| campaign_id | bigint | No | The campaign this fundraiser belongs to. |
| external_id | character varying | No | Fundraise Up's ID for this fundraiser. |
| name | character varying | Yes | Fundraiser page name. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- campaign_id → fundraise_up_campaigns.id
fundraise_up_recurring_plans
Recurring donation plans set up through Fundraise Up.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| integration_id | uuid | No | |
| person_id | bigint | No | The supporter with this recurring plan. |
| campaign_id | bigint | No | The associated campaign. |
| fundraiser_id | bigint | Yes | |
| amount | integer | No | Recurring donation amount. |
| currency | character varying | No | |
| amount_in_default_currency | integer | Yes | |
| status |
fundraise_up_recurring_plan_status
enum: active, scheduled, paused, retrying, completed, failed, canceled |
No | Plan status (active, cancelled, etc.). |
| frequency |
fundraise_up_recurring_plan_frequency
enum: daily, weekly, biweekly, every4weeks, monthly, bimonthly, quarterly, semiannual, annual |
No | How often the donation recurs. |
| source | character varying | Yes | |
| url | character varying | Yes | |
| utm_source | character varying | Yes | |
| utm_medium | character varying | Yes | |
| utm_campaign | character varying | Yes | |
| utm_term | character varying | Yes | |
| utm_content | character varying | Yes | |
| external_id | character varying | No | |
| external_created_at | timestamp(6) without time zone | Yes | |
| external_next_installment_at | timestamp(6) without time zone | Yes | |
| external_ended_at | timestamp(6) without time zone | Yes | |
| test_mode | boolean | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- person_id → people.id
- campaign_id → fundraise_up_campaigns.id
- fundraiser_id → fundraise_up_fundraisers.id
Enum Values
Legislative
legislative_area_collections
Collections of geographic areas used to group legislative districts.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| name | character varying | No | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
legislative_areas
Geographic areas representing legislative districts and regions.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| area_collection_id | bigint | No | |
| name | character varying | No | |
| abbreviation | character varying | No | |
| fips_code | character varying | Yes | |
| region_fips_code | character varying | Yes | |
| region | character varying | Yes | |
| country | character varying(2) | Yes | |
| ocd_division_id | character varying | Yes | |
| kind |
area_kind
enum: shape, region |
No | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- area_collection_id → legislative_area_collections.id
Enum Values
legislative_factions
Political parties and factions that legislators belong to.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| name | character varying | No | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
legislative_legislatures
Legislative bodies such as Congress, state legislatures, and city councils.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| name | character varying | No | |
| country | character varying(2) | No | |
| slug | character varying | No | |
| area_collection_id | bigint | No | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| minimum_lookup_precision |
legislative_lookup_precision
enum: region, postcode, coordinates |
No |
Relationships
- area_collection_id → legislative_area_collections.id
Enum Values
legislative_memberships
Links between people, positions, and legislative periods representing who holds which office.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| person_id | bigint | No | |
| legislative_period_id | bigint | No | |
| faction_id | bigint | No | |
| area_id | bigint | No | |
| start_date | date | No | |
| end_date | date | No | |
| us_senate_class |
senate_class
enum: 1, 2, 3 |
Yes | |
| us_senate_state_rank |
senate_state_rank
enum: junior, senior |
Yes | |
| url | character varying | Yes | |
| address | text | Yes | |
| phone | character varying | Yes | |
| fax | character varying | Yes | |
| rss_url | character varying | Yes | |
| contact_form_url | character varying | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| position_id | bigint | Yes |
Relationships
- legislative_period_id → legislative_periods.id
- person_id → legislative_people.id
- area_id → legislative_areas.id
- faction_id → legislative_factions.id
- position_id → legislative_positions.id
Enum Values
legislative_offices
Physical office locations for legislative representatives.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| membership_id | bigint | No | |
| source_id | character varying | No | |
| phone | character varying | Yes | |
| fax | character varying | Yes | |
| description | character varying | Yes | |
| hours | character varying | Yes | |
| address | text | Yes | |
| suite | character varying | Yes | |
| building | character varying | Yes | |
| region | character varying | Yes | |
| locality | character varying | Yes | |
| country | character varying(2) | Yes | |
| postal_code | character varying | Yes | |
| latitude | numeric(13,10) | Yes | |
| longitude | numeric(13,10) | Yes | |
| time_zone | character varying | Yes | |
| visitable | boolean | No | |
| deleted_at | timestamp(6) without time zone | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- membership_id → legislative_memberships.id
legislative_people
Elected officials and legislative representatives.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| official_full_name | character varying | Yes | |
| first_name | character varying | No | |
| middle_name | character varying | Yes | |
| last_name | character varying | No | |
| birth_date | date | Yes | |
| bioguide_id | character varying | Yes | |
| lis_id | character varying | Yes | |
| govtrack_id | character varying | Yes | |
| opensecrets_id | character varying | Yes | |
| votesmart_id | character varying | Yes | |
| wikidata_id | character varying | Yes | |
| google_entity_id | character varying | Yes | |
| character varying | Yes | ||
| character varying | Yes | ||
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
legislative_periods
Time periods for legislative sessions (e.g. congressional terms).
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| legislature_id | bigint | No | |
| name | character varying | No | |
| start_date | date | No | |
| end_date | date | No | |
| slug | character varying | No | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- legislature_id → legislative_legislatures.id
legislative_positions
Legislative positions such as Senator or Representative for a specific district.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| area_id | bigint | No | |
| legislature_id | bigint | No | |
| name | character varying | No | |
| seat_class | character varying | Yes | |
| external_id | character varying | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| sort_order | integer | Yes |
Relationships
- area_id → legislative_areas.id
- legislature_id → legislative_legislatures.id
legislative_postcode_area_mappings
Mappings between postcodes and legislative areas for representative lookup.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| postcode_id | bigint | No | |
| area_id | bigint | No | |
| legislative_period_id | bigint | No | |
| overlap_area | bigint | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| kind |
postcode_area_mapping_kind
enum: exact, proportional |
No |
Relationships
- postcode_id → postcodes.id
- area_id → legislative_areas.id
- legislative_period_id → legislative_periods.id
Enum Values
postcodes
Postal codes with geographic coordinates for address resolution.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| country | character varying(2) | No | |
| region | character varying | Yes | |
| code | character varying | No | |
| latitude | numeric(13,10) | Yes | |
| longitude | numeric(13,10) | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Mobilize America
mobilize_america_attendees
Attendee RSVPs for Mobilize America events.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| mobilize_america_event_id | bigint | Yes | The event this RSVP is for. |
| mobilize_america_integration_id | uuid | Yes | |
| mobilize_america_event_timeslot_id | bigint | Yes | |
| external_id | character varying | Yes | |
| status |
mobilize_america_attendees_statuses
enum: registered, cancelled, confirmed, waitlisted |
Yes | RSVP status: registered, cancelled, confirmed, or waitlisted. |
| attended | boolean | Yes | |
| referrer_params | jsonb | Yes | |
| custom_signup_field_values | jsonb | Yes | |
| created_date_in_mobilize | timestamp(6) without time zone | Yes | |
| modified_date_in_mobilize | timestamp(6) without time zone | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- mobilize_america_event_id → mobilize_america_events.id
- mobilize_america_event_timeslot_id → mobilize_america_event_timeslots.id
Enum Values
mobilize_america_event_timeslots
Time slots for Mobilize America events.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| mobilize_america_event_id | bigint | Yes | The event this timeslot belongs to. |
| external_id | character varying | No | Mobilize America's ID for this timeslot. |
| start_at | timestamp(6) without time zone | Yes | |
| end_at | timestamp(6) without time zone | Yes | |
| max_attendees | integer | Yes | |
| is_full | boolean | Yes | |
| instructions | character varying | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- mobilize_america_event_id → mobilize_america_events.id
mobilize_america_events
Events synced from Mobilize America.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| mobilize_america_integration_id | uuid | Yes | |
| external_id | character varying | No | Mobilize America's ID for this event. |
| title | character varying | Yes | Event title. |
| description | character varying | Yes | |
| timezone | character varying | Yes | |
| event_type | character varying | Yes | Type of event (canvass, phone_bank, rally, etc.). |
| url | character varying | Yes | |
| is_virtual | boolean | Yes | |
| latitude | numeric(13,10) | Yes | |
| longitude | numeric(13,10) | Yes | |
| country | character varying | Yes | |
| region | character varying | Yes | |
| locality | character varying | Yes | |
| postal_code | character varying | Yes | |
| street_address | character varying | Yes | |
| venue | character varying | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| featured_image_url | character varying | Yes | |
| high_priority | boolean | Yes | |
| visibility | character varying | Yes | |
| address_visibility | character varying | Yes | |
| created_by_volunteer_host | boolean | Yes | |
| virtual_action_url | character varying | Yes | |
| contact | jsonb | Yes | |
| accessibility_status | character varying | Yes | |
| accessibility_notes | character varying | Yes | |
| tags | jsonb | Yes | |
| approval_status | character varying | Yes | |
| event_campaign_id | character varying | Yes | |
| instructions | character varying | Yes | |
| created_date_in_mobilize | timestamp without time zone | Yes | |
| modified_date_in_mobilize | timestamp without time zone | Yes | |
| tsvector | tsvector | Yes |
Questions
questions_answers
Predefined answer options for multiple choice and dropdown questions.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| question_id | bigint | No | The question this answer option belongs to. |
| value | character varying | No | |
| position | integer | Yes | Display order position. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- question_id → questions_questions.id
questions_folders
Folder hierarchy for organizing questions.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| account_id | bigint | No | |
| parent_folder_id | bigint | Yes | The parent folder for nested organization. |
| name | character varying | No | Folder display name. |
| identifier | character varying | No | |
| position | integer | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
Relationships
- parent_folder_id → questions_folders.id
questions_groups
Groups for organizing related questions together.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| account_id | bigint | No | |
| name | character varying | No | Group display name. |
| identifier | character varying | No | |
| description | text | Yes | |
| position | integer | Yes | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
questions_person_responses
Individual responses from people to survey questions.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| person_id | bigint | No | The person who responded. |
| question_id | bigint | No | The question being answered. |
| answer_id | bigint | Yes | The selected answer option, for multiple choice/dropdown. |
| value | text | Yes | Free-text response value, for text/number/date questions. |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| created_by_account_membership_id | bigint | Yes | |
| resolved | boolean | No | |
| survey_response_id | bigint | Yes |
Relationships
- person_id → people.id
- question_id → questions_questions.id
- answer_id → questions_answers.id
questions_questions
Survey/question definitions for collecting structured data from people.
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | bigint | No | Primary key |
| account_id | bigint | No | |
| folder_id | bigint | Yes | The folder this question is organized in. |
| group_id | bigint | Yes | The question group this belongs to. |
| name | character varying | No | |
| identifier | character varying | No | |
| description | text | Yes | |
| kind |
question_kind
enum: multiple_choice, dropdown, boolean, long_text, short_text, number, date |
No | Question type: multiple_choice, dropdown, boolean, long_text, short_text, number, or date. |
| position | integer | Yes | |
| required | boolean | No | |
| created_at | timestamp(6) without time zone | No | Record creation timestamp |
| updated_at | timestamp(6) without time zone | No | Record last update timestamp |
| question_text | text | Yes |
Relationships
- folder_id → questions_folders.id
- group_id → questions_groups.id