Integrate Apollo with Snowflake

Article author
Apollo Team
Updated

Overview

 
In Beta

The Snowflake integration is in beta and is only available to select users. Want early access? Reach out to join the beta.

Connect Apollo to Snowflake to access Apollo activity, engagement, and CRM mapping data directly in your Snowflake warehouse. The Snowflake integration gives your team direct access to your Apollo data so you can build custom reports, connect Apollo activity to your existing business intelligence (BI) workflows, and analyze go-to-market performance without manually exporting CSVs from Apollo.

Use the Snowflake integration to:

  • Report on rep activity across emails, calls, tasks, meetings, and conversations.
  • Analyze sequence performance, reply sentiment, contact campaign status, and deliverability trends.
  • Join Apollo activity to your CRM data using Apollo IDs, CRM IDs, and mapping tables for custom analysis.

Apollo also shares table freshness with sync status data so you know your reporting reflects the latest available information.

 
Snow Business

The Snowflake integration shares data directly to your Snowflake environment. Apollo doesn't own, provision, or manage your Snowflake environment.

Check out the following sections to connect and use the Snowflake integration.

Back to Top

Requirements

 
It's in the Plan

The Snowflake integration is only available with organization plans on Apollo. If you need access to this integration, upgrade your plan. If you have questions about upgrading, contact sales.

Before you connect Apollo to Snowflake, confirm that you meet the following requirements:

  • An organization plan on Apollo.
  • A Snowflake account that can receive inbound data shares.
  • Permission to create databases from inbound shares in Snowflake.
  • The Snowflake account identifier that receives Apollo data.

Back to Top

Connect Apollo to Snowflake

To connect Apollo to Snowflake, reach out to Apollo Support and provide your Snowflake account identifier. This unique ID identifies your Snowflake workspace and consists of your Snowflake organization name followed by the account name, like sumwareorg.sumwaresoftware.

Apollo configures the integration and enables data sharing to your Snowflake account. You can then create a database from the inbound share and begin querying Apollo data directly from your warehouse.

Back to Top

Understand the Shared Data

Apollo shares data with Snowflake across activity, engagement, and CRM integrations. Use the following guide to understand the schema and what's included in the data. Click each table for additional details and column descriptions.

 
Data and Details

Need the full schema in a portable format? Download the Snowflake schema to review table names, column names, data types, and nullability.

Account stages

The account_stages table contains account stage values.

Account stages
Column Description
_id Apollo account stage ID.
name The name of the account stage.
team_id Apollo team ID associated with the account stage.

Back to Guide

Accounts

The accounts table includes Apollo account IDs and the minimum fields needed to join account activity to other Apollo and CRM data.

Accounts
Column Description
_id Apollo account ID.
domain Company website domain associated with the account.
owner_id ID of the Apollo user who owns the account. Join to users._id to identify the owner.
external_ids Array of related CRM IDs.
external_id_names Array of CRM ID field names that correspond to the values in external_ids.
team_id Apollo team ID associated with the account.
created_at Date and time in UTC when the account was created in Apollo.
updated_at Date and time in UTC when the account was last updated in Apollo.

Back to Guide

Activity log

The activity_log table contains prospecting activity per contact in Apollo, including stage changes, sequence events, and account reassignments.

Activity log
Column Description
_id Apollo activity log ID.
type_cd Activity action type.
old_contact_stage_id Previous Apollo contact stage ID. Join to contact_stages._id.
contact_stage_id Current Apollo contact stage ID. Join to contact_stages._id.
account_stage_id Current Apollo account stage ID. Join to account_stages._id.
old_account_id Previous Apollo account ID. Join to accounts._id.
new_account_id New Apollo account ID. Join to accounts._id.
new_crm_owner_id New CRM owner ID associated with the activity.
typed_custom_field_changes Structured custom field changes associated with the activity.
user_id Apollo user ID associated with the activity. Join to users._id.
team_id Apollo team ID associated with the activity.
contact_id Apollo contact ID associated with the activity. Join to contacts._id.
account_id Apollo account ID associated with the activity. Join to accounts._id.
emailer_campaign_id Apollo sequence ID associated with the activity. Join to sequences._id to identify the sequence.
emailer_message_id Apollo email message ID associated with the activity. Join to email_messages._id.
created_at Date and time in UTC when the activity occurred.

Back to Guide

Contact campaign statuses

The contact_campaign_statuses table shows one row per contact per sequence. Use this table to understand whether contacts are active, paused, finished, or failed through bounces or spam blocks in a sequence. To report on contact status by sequence, aggregate rows in this table rather than relying on sequence-level summary fields.

Contact campaign statuses
Column Description
contact_id Apollo contact ID. Join to contacts._id to identify the contact.
emailer_campaign_id Apollo sequence ID. Join to sequences._id to identify the sequence.
current_step_id Current sequence step ID for the contact. Join to sequence_steps._id to identify the sequence step.
status Current sequence status for the contact, such as active, paused, finished, or failed. If failed, see failure_reason.
failure_reason Reason the contact failed in the sequence, such as bounced, spam_blocked, or past_date_failure.
added_at Date and time in UTC when the contact was added to the sequence.
finished_at Date and time in UTC when the contact finished the sequence.
failed_at Date and time in UTC when the contact failed in the sequence.
paused_at Date and time in UTC when the contact was paused in the sequence.
auto_unpause_at Date and time in UTC when the contact is scheduled to automatically resume in the sequence. Apollo only automatically un-pauses contacts when it detects an out of office auto reply and the contact's message includes a return date.
inactive_reason Reason the contact is inactive in the sequence.
skipped_emailer_step_ids Array of sequence step IDs skipped for the contact. Join to sequence_steps._id to identify the steps.
completed_emailer_step_ids Array of sequence step IDs completed by the contact. Join to sequence_steps._id to identify the steps.
team_id Apollo team ID associated with the sequence status record.

Back to Guide

Contact stages

The contact_stages table contains contact stage values used to resolve contact stage IDs into readable names.

Contact stages
Column Description
_id Apollo contact stage ID.
name Name of the contact stage.
team_id Apollo team ID associated with the contact stage.

Back to Guide

Contacts

The contacts table includes Apollo contact IDs and the minimum fields needed to join contact activity to other Apollo and CRM data. This table does not include contact email addresses or phone numbers.

Contacts
Column Description
_id Apollo contact ID.
domain Company domain associated with the contact. Use this to join contact records to account or CRM data.
owner_id Apollo user ID of the person who owns the contact. Join to users._id to identify the owner.
account_id Apollo account ID associated with the contact. Join to accounts._id to identify the account.
external_ids Array of related CRM IDs, such as Salesforce contact, Salesforce lead, or HubSpot IDs.
external_id_names Array of CRM ID field names that correspond to the values in external_ids.
team_id Apollo team ID associated with the contact.
created_at Date and time in UTC when the contact was created in Apollo.
updated_at Date and time in UTC when the contact was last updated in Apollo.

Back to Guide

Conversations

The conversations table contains conversation intelligence data, including Apollo-calculated metrics such as talk duration, user, and meeting information.

Conversations
Column Description
_id Apollo conversation ID.
state Conversation processing state, such as created, downloaded, insights_generated, incomplete_record, failed, or deleted.
type Conversation type, such as internal or external.
duration Conversation duration in seconds.
start_time Date and time in UTC when the conversation recording started.
meeting_start_time Date and time in UTC when the meeting was scheduled to start.
longest_customer_monologue_duration Duration in seconds of the longest customer monologue in the conversation.
is_private Indicates whether the conversation is private.
failure_code Conversation failure code, such as blocked_domain, no_participants, or technical_issue.
lang_code ISO 639-1 language code for the conversation.
phone_call_id Apollo phone call ID associated with the conversation. Join to phone_calls._id.
calendar_event_id Apollo meeting ID associated with the conversation. Join to meetings._id.
opportunity_stage_during_conversation_id Opportunity stage ID associated with the conversation. Join to opportunity_stages._id to identify the opportunity stage.
user_id Apollo user ID associated with the conversation. Join to users._id to identify the user.
team_id Apollo team ID associated with the conversation.
created_at Date and time in UTC when the conversation was created in Apollo.
updated_at Date and time in UTC when the conversation was last updated in Apollo.

Back to Guide

Email message events

The email_message_events table contains email engagement events, such as opens, clicks, replies, bounces, and unsubscribes.

Email message events
Column Description
_id Apollo email message event ID.
type_cd Email event type, such as open, click, reply, bounce, or unsubscribe.
caused_by_email_address Email address that caused the event, when available.
provider_thread_id Provider thread ID associated with the event.
third_party_tracking_service Third-party tracking service associated with the event, when available.
sendgrid_event_reason SendGrid event reason associated with the email event, when available.
bounce_category Bounce category for bounce events.
smtp_code SMTP code associated with the event, when available.
self_caused Indicates whether an open or click was likely caused by bot activity rather than real human engagement. Use self_caused = FALSE when reporting on open and click rates to exclude bot opens and clicks.
actual_created_at Date and time in UTC when the event actually occurred.
contact_id Apollo contact ID associated with the event. Join to contacts._id.
emailer_message_id Apollo email message ID. Join to email_messages._id to identify the email message.
user_id Apollo user ID associated with the event. Join to users._id.
team_id Apollo team ID associated with the email message event.
created_at Date and time in UTC when the event record was created in Apollo.

Back to Guide

Email messages

The email_messages table contains email activity generated through Apollo.

Email messages
Column Description
_id Apollo email message ID.
subject Subject line for the email message.
template_subject Subject line from the associated email template, when available.
status_cd Email message status, such as sent.
type_cd Email message type.
surface_cd Apollo surface where the email message was created or sent.
reply_class_cd Reply sentiment classification, such as interested, positive, neutral, or negative.
creation_type_cd Creation type for the email message.
deleted Indicates whether the email message was deleted.
response_to_outbound_email Indicates whether the message was a response to an outbound email.
enable_tracking Indicates whether email tracking was enabled for the email message.
open_tracking_enabled Indicates whether open tracking was enabled for the email message.
click_tracking_enabled Indicates whether click tracking was enabled for the email message.
tracking_disabled_reason_cd Reason tracking was disabled for the email message.
personalized_opener Personalized opener used in the email message, when available.
not_sent_reason_cd Reason the email message was not sent, when applicable.
failure_reason Failure reason for the email message, when applicable.
send_reminder_if_no_reply Indicates whether Apollo should send a reminder if there is no reply.
reminder_sent_at Date and time in UTC when the reminder was sent.
send_reminder_at Date and time in UTC when the reminder is scheduled to send.
followup_resolved_at Date and time in UTC when the follow-up was resolved.
resubscribe_requested_at Date and time in UTC when resubscribe was requested.
provider_thread_id Provider thread ID for threading analysis.
random Random value useful for Snowflake sampling.
contact_id Apollo contact ID associated with the email message. Join to contacts._id to identify the contact.
user_id Apollo user ID associated with the email message. Join to users._id to identify the user.
team_id Apollo team ID associated with the email message.
account_id Apollo account ID associated with the email message. Join to accounts._id to identify the account.
emailer_campaign_id Apollo sequence ID associated with the email message. Join to sequences._id to identify the sequence.
emailer_touch_id Apollo sequence touch ID associated with the email message. Join to sequence_touches._id.
outreach_task_id Apollo task ID associated with the email message. Join to tasks._id.
created_at Date and time in UTC when the email message was created in Apollo.
updated_at Date and time in UTC when the email message was last updated in Apollo.

Back to Guide

ID mapping

The id_mapping table maps Apollo record IDs to CRM record IDs for cross-system reporting. This table may be blank if you don't have a CRM integration connected to Apollo.

ID mapping
Column Description
apollo_id Apollo record ID.
object_type Object type for the mapped record, such as contact, account, or opportunity.
salesforce_id Salesforce record ID associated with the Apollo record.
salesforce_type Salesforce object type associated with the mapped record, such as Contact, Lead, Account, or Opportunity.
team_id Apollo team ID associated with the mapping.
created_at Date and time in UTC when the mapping was created.

Back to Guide

Job change events

The job_change_events table contains detected job changes for contacts.

Job change events
Column Description
_id Apollo job change event ID.
contact_id Apollo contact ID associated with the job change. Join to contacts._id to identify the contact.
old_title Previous job title for the contact.
new_title New job title for the contact.
new_organization_name New organization name for the contact.
created_at Date and time in UTC when Apollo detected the job change.
team_id Apollo team ID associated with the job change event.

Back to Guide

Labels

The labels table contains label definitions available in Apollo.

Labels
Column Description
_id Apollo label ID.
name Name of the label.
team_id Apollo team ID associated with the label.
created_at Date and time in UTC when the label was created in Apollo.

Back to Guide

Meeting identified events

The meeting_identified_events table links meetings to prospecting activities for attribution reporting.

Meeting identified events
Column Description
_id Apollo meeting identified event ID.
last_phone_call_id Most recent phone call ID associated with the meeting. Join to phone_calls._id to identify the phone call.
contact_ids Array of Apollo contact IDs associated with the meeting identified event. Join to contacts._id to identify the contacts.
team_id Apollo team ID associated with the meeting identified event.
created_at Date and time in UTC when the meeting identified event was created.

Back to Guide

Meetings

The meetings table contains meeting activity and booking information.

Meetings
Column Description
_id Apollo meeting ID.
status Meeting status, such as confirmed, tentative, or cancelled.
start_time Date and time in UTC when the meeting starts.
end_time Date and time in UTC when the meeting ends.
external_created_at Date and time in UTC when the meeting was created in the user's calendar.
cancelled_or_rescheduled_at Date and time in UTC when the meeting was cancelled or rescheduled.
is_created_by_apollo Indicates whether the meeting was booked through Apollo rather than synced from a user's calendar.
recurrence Indicates whether the meeting is a master recurring event.
sync_match_type Sync match type for the meeting.
salesforce_ids Array of Salesforce IDs associated with the meeting.
in_response_to_emailer_message_id Email message ID that the meeting was booked in response to. Join to email_messages._id to identify the email message.
in_response_to_phone_call_id Phone call ID that the meeting was booked in response to. Join to phone_calls._id to identify the phone call.
emailer_campaign_id Apollo sequence ID associated with the meeting. Join to sequences._id.
account_id Apollo account ID associated with the meeting. Join to accounts._id to identify the account.
contact_id Apollo contact ID associated with the meeting. Join to contacts._id to identify the contact.
user_id Apollo user ID associated with the meeting. Join to users._id to identify the user.
team_id Apollo team ID associated with the meeting.
created_at Date and time in UTC when the meeting was created in Apollo.
updated_at Date and time in UTC when the meeting was last updated in Apollo.

Back to Guide

Opportunities

The opportunities table contains Apollo deal records and key deal attributes.

Opportunities
Column Description
_id Apollo opportunity ID, referring to deals on Apollo.
amount Deal amount.
is_closed Indicates whether the deal is closed.
is_won Indicates whether the deal was won.
name Deal name.
external_created_at Date and time in UTC when the deal was created.
external_id External CRM opportunity ID, prioritized from Salesforce ID or the first CRM opportunity ID available.
external_id_name External CRM ID field name, such as salesforce_opportunity_id or source opportunity ID.
account_id Apollo account ID associated with the deal. Join to accounts._id to identify the account.
owner_id Apollo user ID for the deal owner. Join to users._id to identify the user.
opportunity_stage_id Apollo deal stage ID. Join to opportunity_stages._id to identify the opportunity stage.
opportunity_pipeline_id Apollo deal pipeline ID. Join to opportunity_pipelines._id to identify the deal pipeline.
deal_probability Close-won probability.
closed_date Date when the deal was closed.
stage_updated_at Date and time in UTC when the deal stage was last updated.
currency_code Currency code for the deal amount.
created_by_id Apollo user ID for the user who created the deal. Join to users._id.
team_id Apollo team ID associated with the deal.
created_at Date and time in UTC when the deal was created in Apollo.
updated_at Date and time in UTC when the deal was last updated in Apollo.

Back to Guide

Opportunity pipelines

The opportunity_pipelines table contains deal pipeline definitions.

Opportunity pipelines
Column Description
_id Apollo deal pipeline ID.
name Name of the deal pipeline.
team_id Apollo team ID associated with the deal pipeline.

Back to Guide

Opportunity stages

The opportunity_stages table contains deal stage definitions.

Opportunity stages
Column Description
_id Apollo deal stage ID.
name Stage display name.
opportunity_pipeline_id Apollo deal pipeline ID associated with the stage. Join to opportunity_pipelines._id to identify the deal pipeline.
team_id Apollo team ID associated with the deal stage.

Back to Guide

Phone call outcomes

The phone_call_outcomes table contains call outcomes used in Apollo with the dialer.

Phone call outcomes
Column Description
_id Apollo phone call outcome ID, referring to call dispositions.
name Name of the call disposition.
sentiment Sentiment of the call disposition, such as positive, neutral, or negative.
team_id Apollo team ID associated with the phone call outcome.

Back to Guide

Phone calls

The phone_calls table contains dialer and call activity data.

Phone calls
Column Description
_id Apollo phone call ID.
inbound Indicates whether the call was inbound.
answered Indicates whether the call was answered.
answered_by Entity that answered the call, when available.
duration Call duration in seconds.
status Call status.
start_time Date and time in UTC when the call started.
end_time Date and time in UTC when the call ended.
from_number Phone number the call was placed from.
to_number Phone number the call was placed to.
from_country Country associated with the phone number the call was placed from.
to_country Country associated with the phone number the call was placed to.
voicemail_dropped Indicates whether a voicemail was dropped during the call.
voicemail_drop_method Method used to drop the voicemail.
logged Indicates whether the call was logged.
quality_rating_cd Call quality rating.
quality_feedback_reasons Call quality feedback reasons.
source_cd Source of the phone call.
completed_day_cd Day when the call was completed.
completed_time_of_day_cd Time of day when the call was completed.
deleted Indicates whether the call was deleted.
external_id External CRM call ID, prioritized from Salesforce ID or the first CRM call ID available.
external_id_name External CRM ID field name, such as salesforce_phone_call_id or source phone call ID.
contact_id Apollo contact ID associated with the call. Join to contacts._id to identify the contact.
user_id Apollo user ID associated with the call. Join to users._id to identify the user.
team_id Apollo team ID associated with the call.
account_id Apollo account ID associated with the call. Join to accounts._id to identify the account.
outreach_task_id Apollo task ID associated with the call. Join to tasks._id.
opportunity_id Apollo opportunity ID associated with the call. Join to opportunities._id to identify the deal.
emailer_campaign_id Apollo sequence ID associated with the call. Join to sequences._id.
emailer_step_id Apollo sequence step ID associated with the call. Join to sequence_steps._id.
phone_call_outcome_id Apollo phone call outcome ID, referring to call disposition. Join to phone_call_outcomes._id to identify the disposition.
created_at Date and time in UTC when the phone call was created in Apollo.
updated_at Date and time in UTC when the phone call was last updated in Apollo.

Back to Guide

Sequence steps

The sequence_steps table contains individual steps within Apollo sequences.

Sequence steps
Column Description
_id Apollo sequence step ID.
position Step order within the sequence.
wait_time Wait time configured for the sequence step.
wait_mode Wait mode configured for the sequence step.
exact_datetime Exact date and time for the sequence step, when configured.
auto_skip_in_x_days Number of days before Apollo automatically skips the step, when configured.
max_emails_per_day Maximum number of emails allowed per day for the sequence step.
type_cd Sequence step type.
priority_cd Priority configured for the sequence step.
stats_unique_scheduled Number of contacts currently scheduled at this step.
stats_unique_completed Number of contacts who completed this step.
stats_unique_skipped Number of contacts who skipped this step.
emailer_campaign_id Apollo sequence ID. Join to sequences._id to identify the sequence.
team_id Apollo team ID associated with the sequence step.
created_at Date and time in UTC when the sequence step was created in Apollo.
updated_at Date and time in UTC when the sequence step was last updated in Apollo.

Back to Guide

Sequence templates

The sequence_templates table contains email templates used in Apollo sequences.

Sequence templates
Column Description
_id Apollo sequence template ID.
name Name of the sequence template.
subject Subject line for the sequence template.
archived Indicates whether the sequence template is archived.
global Indicates whether the sequence template is global.
creation_type_cd Creation type for the sequence template.
has_ai_variables Indicates whether the sequence template includes AI variables.
last_used_or_created_at Date and time in UTC when the sequence template was last used or created.
user_id Apollo user ID associated with the sequence template. Join to users._id to identify the user.
team_id Apollo team ID associated with the sequence template.
created_at Date and time in UTC when the sequence template was created in Apollo.
updated_at Date and time in UTC when the sequence template was last updated in Apollo.

Back to Guide

Sequence touches

The sequence_touches table contains records of sequence touch activity across contacts in a sequence.

Sequence touches
Column Description
_id Apollo sequence touch ID.
type_cd Type of sequence touch.
status_cd Status of the sequence touch.
has_personalized_opener Indicates whether the sequence touch includes a personalized opener.
edited Indicates whether the sequence touch was edited.
template_type_cd Template type used for the sequence touch.
stats_scheduled Number of sequence touches scheduled.
stats_processed Number of sequence touches processed.
stats_delivered Number of sequence touches delivered.
stats_delivered_open_tracked Number of delivered sequence touches with open tracking enabled.
stats_delivered_click_tracked Number of delivered sequence touches with click tracking enabled.
stats_opened Number of sequence touches opened, excluding likely bot opens.
stats_opened_unfiltered Number of sequence touches opened, including likely bot opens.
stats_clicked Number of sequence touches clicked, excluding likely bot clicks.
stats_clicked_unfiltered Number of sequence touches clicked, including likely bot clicks.
stats_replied Number of sequence touches that received replies.
stats_bounced Number of sequence touches that bounced.
stats_hard_bounced Number of sequence touches that hard bounced.
stats_spam_blocked Number of sequence touches blocked as spam.
stats_demoed Number of sequence touches associated with demos.
stats_unsubscribed Number of sequence touches that resulted in unsubscribes.
emailer_template_id Apollo sequence template ID. Join to sequence_templates._id to identify the template.
emailer_step_id Apollo sequence step ID. Join to sequence_steps._id to identify the step.
team_id Apollo team ID associated with the touch.
created_at Date and time in UTC when the sequence touch was created in Apollo.
updated_at Date and time in UTC when the sequence touch was last updated in Apollo.

Back to Guide

Sequences

The sequences table contains Apollo sequence definitions and performance metrics.

Sequences
Column Description
_id Apollo sequence ID.
name Name of the sequence.
active Indicates whether the sequence is active.
archived Indicates whether the sequence is archived.
sequence_by_exact_daytime Indicates whether the sequence uses exact day and time scheduling.
last_used_at Date and time in UTC when the sequence was last used.
num_contacts Number of contacts in the sequence.
num_contacts_email_status_extrapolated Extrapolated number of contacts by email status for the sequence.
is_performing_poorly Indicates whether Apollo identifies the sequence as performing poorly.
creation_type_cd Creation type for the sequence.
permissions_cd Permission setting for the sequence.
salesforce_id Salesforce ID associated with the sequence, when available.
stats_unique_scheduled Number of unique contacts scheduled in the sequence.
stats_unique_processed Number of unique contacts processed in the sequence.
stats_unique_delivered Number of unique contacts with delivered sequence emails.
stats_unique_delivered_open_tracked Number of unique contacts with delivered sequence emails that had open tracking enabled.
stats_unique_delivered_click_tracked Number of unique contacts with delivered sequence emails that had click tracking enabled.
stats_unique_opened Number of unique contacts who opened sequence emails, excluding likely bot opens.
stats_unique_opened_unfiltered Number of unique contacts who opened sequence emails, including likely bot opens.
stats_unique_clicked Number of unique contacts who clicked sequence emails, excluding likely bot clicks.
stats_unique_clicked_unfiltered Number of unique contacts who clicked sequence emails, including likely bot clicks.
stats_unique_replied Number of unique contacts who replied to sequence emails.
stats_unique_bounced Number of unique contacts with bounced sequence emails.
stats_unique_hard_bounced Number of unique contacts with hard bounced sequence emails.
stats_unique_spam_blocked Number of unique contacts with sequence emails blocked as spam.
stats_unique_demoed Number of unique contacts associated with demos from the sequence.
stats_unique_unsubscribed Number of unique contacts who unsubscribed from the sequence.
user_id Apollo user ID associated with the sequence. Join to users._id to identify the user.
team_id Apollo team ID associated with the sequence.
label_ids Array of Apollo label IDs associated with the sequence. Join to labels._id to identify labels.
created_at Date and time in UTC when the sequence was created in Apollo.
updated_at Date and time in UTC when the sequence was last updated in Apollo.

Back to Guide

Tables status

The tables_status table contains refresh and synchronization information for shared tables.

Tables status
Column Description
name Name of the shared table.
synced_at Date and time in UTC when the table was last synced.
status Current sync status for the table, such as in_progress, failed, sync_complete, or not_relevant.
team_id Apollo team ID associated with the table sync status.

Back to Guide

Tasks

The tasks table contains task creation, completion, and due date information.

Tasks
Column Description
_id Apollo task ID.
type_cd Task type, such as email, action_item, or linkedin.
priority_cd Task priority.
status_cd Task status, such as open, completed, or skipped.
due_at Date and time in UTC when the task is due.
completed_at Date and time in UTC when the task was completed.
answered Indicates whether a call task was answered.
auto_skip_at Date and time in UTC when Apollo automatically skips the task, when configured.
comment Comment associated with the task.
contact_timezone_offset Timezone offset associated with the contact for the task.
created_from_cd Source that created the task.
note Note associated with the task.
playbook_autoprospecting_finished This is a deprecated field.
random Random value useful for Snowflake sampling.
contact_timezone Timezone associated with the contact for the task.
associated_object_id Associated phone call or email message ID, based on type_cd.
subject Subject associated with the task.
title Task title.
contact_id Apollo contact ID associated with the task. Join to contacts._id to identify the contact.
account_id Apollo account ID associated with the task. Join to accounts._id to identify the account.
user_id Apollo user ID associated with the task. Join to users._id to identify the user.
team_id Apollo team ID associated with the task.
emailer_campaign_id Apollo sequence ID associated with the task. Join to sequences._id.
emailer_step_id Apollo sequence step ID associated with the task. Join to sequence_steps._id.
opportunity_id Apollo opportunity ID associated with the task. Join to opportunities._id.
creator_id Apollo user ID for the user who created the task. Join to users._id.
created_at Date and time in UTC when the task was created in Apollo.
updated_at Date and time in UTC when the task was last updated in Apollo.

Back to Guide

Users

The users table contains Apollo user information and is useful for resolving user IDs throughout the shared dataset.

Users
Column Description
_id Apollo user ID.
first_name First name of the Apollo user.
last_name Last name of the Apollo user.
email Email address for the Apollo user.
team_id Apollo team ID associated with the user.
created_at Date and time in UTC when the user was created in Apollo.
updated_at Date and time in UTC when the user was last updated in Apollo.

Back to Guide

Back to Top

Run Sample Queries

Looking for query inspiration? The following sample queries show a few ways you can start analyzing Apollo data in Snowflake. These are only examples — you can write your own queries, adjust filters and date ranges, join across Apollo tables, and connect Apollo activity to your existing Snowflake data for custom reporting.

Before running these queries, update any date ranges or filters to match your goal.

Sample Queries
Query Use Case
Review sequence performance Compare sequence delivery, opens, clicks, replies, bounces, and unsubscribes.
Check contact status by sequence Review whether contacts are active, paused, finished, or failed in each sequence.
Measure email engagement Count opens, clicks, replies, bounces, and unsubscribes while filtering likely bot activity.
Measure task completion Track completed tasks and on-time completion by user.
Review call outcomes Summarize calls by outcome and sentiment.
Track meetings created from outreach Count meetings booked from email and phone call activity.
Review conversation activity Report on conversation volume, duration, processing status, and recording details.

Review sequence performance

Use the sequences table to compare sequence performance across delivered emails, opens, clicks, replies, bounces, and unsubscribes.

SELECT
  _id AS sequence_id,
  name,
  stats_unique_delivered,
  stats_unique_opened,
  stats_unique_clicked,
  stats_unique_replied,
  stats_unique_bounced,
  stats_unique_unsubscribed,
  ROUND(stats_unique_replied / NULLIF(stats_unique_delivered, 0) * 100, 2) AS reply_rate
FROM sequences
ORDER BY stats_unique_delivered DESC;

Back to Queries

Check contact status by sequence

Use contact_campaign_statuses to understand how many contacts are active, paused, finished, or failed in each sequence.

SELECT
  emailer_campaign_id,
  status,
  failure_reason,
  COUNT(*) AS contacts
FROM contact_campaign_statuses
GROUP BY
  emailer_campaign_id,
  status,
  failure_reason
ORDER BY contacts DESC;

Back to Queries

Measure email engagement

Use email_message_events to count opens, clicks, replies, bounces, and unsubscribes. For open and click reporting, filter out likely bot activity with self_caused = FALSE.

SELECT
  type_cd,
  COUNT(*) AS events
FROM email_message_events
WHERE actual_created_at >= DATEADD(day, -30, CURRENT_DATE())
  AND (
    type_cd NOT IN ('open', 'click')
    OR self_caused = FALSE
  )
GROUP BY type_cd
ORDER BY events DESC;

Back to Queries

Measure task completion

Use tasks to track completed tasks and on-time completion.

SELECT
  user_id,
  COUNT(*) AS completed_tasks,
  COUNT_IF(completed_at <= due_at) AS completed_on_time
FROM tasks
WHERE status_cd = 'completed'
  AND completed_at IS NOT NULL
  AND due_at IS NOT NULL
GROUP BY user_id
ORDER BY completed_tasks DESC;

Back to Queries

Review call outcomes

Use phone_calls and phone_call_outcomes to summarize call results by outcome and sentiment.

SELECT
  pco.name AS outcome,
  pco.sentiment,
  COUNT(*) AS calls
FROM phone_calls pc
LEFT JOIN phone_call_outcomes pco
  ON pc.phone_call_outcome_id = pco._id
WHERE start_time >= DATEADD(day, -30, CURRENT_DATE())
GROUP BY
  pco.name,
  pco.sentiment
ORDER BY calls DESC;

Back to Queries

Track meetings created from outreach

Use meetings to count meetings booked from emails and phone calls.

SELECT
  COUNT(*) AS total_meetings,
  COUNT_IF(in_response_to_emailer_message_id IS NOT NULL) AS meetings_from_email,
  COUNT_IF(in_response_to_phone_call_id IS NOT NULL) AS meetings_from_call
FROM meetings
WHERE created_at >= DATEADD(day, -30, CURRENT_DATE());

Back to Queries

Review conversation activity

Use conversations to report on conversation volume, duration, processing status, and recording details by user.

SELECT
  user_id,
  COUNT(*) AS conversations,
  ROUND(AVG(duration), 2) AS avg_duration_seconds,
  ROUND(AVG(longest_customer_monologue_duration), 2) AS avg_longest_customer_monologue_duration,
  COUNT_IF(state = 'insights_generated') AS conversations_with_insights,
  COUNT_IF(is_private = TRUE) AS private_conversations,
  COUNT_IF(failure_code IS NOT NULL) AS failed_conversations
FROM conversations
WHERE start_time >= DATEADD(day, -30, CURRENT_DATE())
GROUP BY user_id
ORDER BY conversations DESC;

Back to Queries

Back to Top

Next Steps

Want better context for the data Apollo shares with Snowflake? Start with the core Apollo concepts behind the tables.

Sequences Overview Get grounded in sequences to understand how emails, calls, tasks, steps, and contact statuses connect across Snowflake tables.
Dialer Overview Planning call reports? Explore Apollo's dialer to understand phone call activity, outcomes, voicemail drops, and call data before analyzing it in Snowflake.
Email Tracking Overview Review email tracking fundamentals to understand opens, clicks, replies, bot filtering, and engagement signals before analyzing email events at scale.
Coach Teams with Conversations If conversations data is part of your reporting, coach teams with conversations to connect call recordings, scorecards, and coaching metrics to rep performance.
Salesforce Integration Overview Need CRM context for your warehouse reports? Connect Salesforce to Apollo to sync prospecting data, align field mapping, and make cross-system reporting more reliable.

Back to Top