Skip to main content
Connectors

OneSignal connector

Set up the OneSignal connector in Kaivo: authentication, configuration, the 4 BigQuery tables it syncs, and answers to common questions.

Written By Lauri Raivio

Last updated 16 days ago

Kaivo is a fully managed data platform that syncs your OneSignal data into a Google BigQuery warehouse and keeps it up to date automatically. There is no pipeline to build and no infrastructure to run, so you can spend your time analysing your survey and email data instead of moving it.

What is the OneSignal connector

Sync your OneSignal messaging data into BigQuery with Kaivo to analyse notifications and audience reach.

CategorySurveys & Email
AuthenticationAPI key
SetupSelf-service

Getting started with the OneSignal connector

  1. Sign up for Kaivo and create a workspace.
  2. Connect your OneSignal account.
  3. Choose which tables to sync.
  4. Wait for the initial sync to finish.
  5. Query your data in BigQuery or your favourite AI or BI tool.

Authenticating OneSignal

Authenticate with your User Auth Key.

FieldDescription
User Auth Key

Your OneSignal User Auth Key. Find it in your profile under Account & API Keys.

Configuring the OneSignal connector

When you set up the connector, you provide:

FieldDescription
Applications
Start Date

Any data before this date will not be fetched.

Outcome Names

Comma-separated list of outcome names and aggregation types (sum/count) to retrieve, e.g. os__session_duration.count,os__click.count,CustomOutcomeName.sum.

Tables and columns synced from OneSignal

Kaivo syncs 4 tables from OneSignal into a dedicated dataset in your BigQuery warehouse. Click any table to see its columns and types.

ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idSTRING
nameSTRING
playersINT64
messageable_playersINT64
updated_atTIMESTAMP
created_atTIMESTAMP
gcm_keySTRING
chrome_keySTRING
chrome_web_keySTRING
chrome_web_originSTRING
chrome_web_gcm_sender_idSTRING
chrome_web_default_notification_iconSTRING
chrome_web_sub_domainSTRING
apns_envSTRING
apns_certificatesSTRING
safari_apns_certificateSTRING
safari_site_originSTRING
safari_push_idSTRING
safari_icon_16_16STRING
safari_icon_32_32STRING
safari_icon_64_64STRING
safari_icon_128_128STRING
safari_icon_256_256STRING
site_nameSTRING
basic_auth_keySTRING
additional_data_is_root_payloadBOOL
apns_key_idINT64
fcm_v1_service_account_jsonSTRING
apns_p8STRING
apns_bundle_idINT64
apns_team_idINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idSTRING
identifierSTRING
session_countINT64
languageSTRING
timezoneINT64
game_versionSTRING
device_osSTRING
device_typeINT64
device_modelSTRING
ad_idSTRING
last_activeINT64
amount_spentFLOAT64
created_atINT64
invalid_identifierBOOL
badge_countINT64
playtimeINT64
sdkSTRING
test_typeSTRING
ipSTRING
external_user_idSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
adm_big_pictureSTRING
adm_groupSTRING
adm_group_message__enSTRING
adm_large_iconSTRING
adm_small_iconSTRING
adm_soundSTRING
alexa_ssmlSTRING
alexa_display_titleSTRING
amazon_background_dataBOOL
android_accent_colorSTRING
android_groupSTRING
android_group_message__enSTRING
android_led_colorSTRING
android_soundSTRING
android_visibilityINT64
app_idSTRING
big_pictureSTRING
buttonsSTRING
canceledBOOL
chrome_big_pictureSTRING
chrome_iconSTRING
chrome_web_iconSTRING
chrome_web_imageSTRING
chrome_web_badgeSTRING
content_availableBOOL
nameSTRING
contents__enSTRING
convertedINT64
delayed_optionSTRING
delivery_time_of_daySTRING
erroredINT64
failedINT64
firefox_iconSTRING
global_imageSTRING
headings__enSTRING
huawei_accent_colorSTRING
huawei_big_pictureSTRING
huawei_channel_idSTRING
huawei_existing_channel_idSTRING
huawei_groupSTRING
huawei_group_messageSTRING
huawei_large_iconSTRING
huawei_led_colorSTRING
huawei_msg_typeSTRING
huawei_small_iconSTRING
huawei_soundSTRING
huawei_visibilitySTRING
idSTRING
include_player_idsSTRING
include_external_user_idsSTRING
thread_idSTRING
ios_badge_countINT64
ios_badge_typeSTRING
ios_categorySTRING
ios_interruption_levelSTRING
ios_relevance_scoreFLOAT64
ios_soundSTRING
target_content_identifierSTRING
is_admBOOL
is_androidBOOL
is_chromeBOOL
is_chrome_webBOOL
is_alexaBOOL
is_firefoxBOOL
is_iosBOOL
is_safariBOOL
is_wpBOOL
is_wp_wnsBOOL
is_edgeBOOL
is_huaweiBOOL
is_smsBOOL
large_iconSTRING
priorityINT64
queued_atINT64
remainingINT64
send_afterINT64
completed_atINT64
small_iconSTRING
successfulINT64
receivedINT64
filtersSTRING
template_idSTRING
ttlINT64
urlSTRING
web_urlSTRING
app_urlSTRING
web_buttonsSTRING
web_push_topicSTRING
wp_soundSTRING
wp_wns_soundSTRING
platform_delivery_stats__android__successfulINT64
platform_delivery_stats__android__erroredINT64
platform_delivery_stats__android__failedINT64
platform_delivery_stats__android__convertedINT64
platform_delivery_stats__android__receivedINT64
platform_delivery_stats__ios__successfulINT64
platform_delivery_stats__ios__erroredINT64
platform_delivery_stats__ios__failedINT64
platform_delivery_stats__ios__convertedINT64
platform_delivery_stats__ios__receivedINT64
ios_attachments__idSTRING
throttle_rate_per_minuteINT64
sms_fromSTRING
sms_media_urlsSTRING
email_click_tracking_disabledBOOL
fcap_group_idsSTRING
fcap_statusSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: notifications__excluded_segments

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: notifications__included_segments

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idSTRING
valueINT64
aggregationSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

How the OneSignal sync works

After the first load, Kaivo keeps your BigQuery warehouse up to date for you. Where OneSignal supports it, each sync pulls only new and changed records so it stays fast; otherwise it refreshes the whole table. Every record keeps its original ID, so you won't get duplicate rows.

Frequently asked questions

How long does the initial sync take for OneSignal?

It depends on how much history is in your OneSignal account. Most initial syncs finish within minutes, while large accounts can take a few hours. After that, syncs only fetch new and changed records, so they're much faster.

Can I sync only some tables or columns?

Yes. You pick which tables to sync when you set up the connection and can change the selection later. Tables you don't select are never copied to your warehouse.

What happens when OneSignal's schema changes?

New fields are never added automatically. You choose which fields to sync, so data you haven't selected (sensitive personal data, for example) never lands in your warehouse. When a new field appears, it becomes available for you to add. What happens to removed or renamed fields depends on a table's sync mode: full-refresh tables always match what's currently in OneSignal, so dropped fields disappear, while incremental tables keep their existing columns and history, so an old field stays and newly added fields fill in over time.

How do I handle GDPR or data deletion requests?

Your data lives in your own Kaivo-managed BigQuery warehouse, so the most direct option is to delete or anonymise specific records right in BigQuery. If you delete data in OneSignal instead, full-refresh tables drop it on the next sync, while incremental tables keep it, so you would remove the row in BigQuery or ask us to run a full refresh. To remove everything, delete the OneSignal connector in Kaivo and all of its synced data is deleted with it.

Common use cases for OneSignal data

Notification performance

Use notifications and outcomes to track sends and engagement over time.

Audience reach

Join apps with devices to see how many users you can reach.

Product context

Bring messaging data into BigQuery to connect notifications to user actions.

Use OneSignal data in your AI and BI tools

Once OneSignal data lands in your Kaivo-managed BigQuery warehouse, you can explore it with AI tools or any BI tool that connects to BigQuery. Here's how the most common destinations work with OneSignal data.

Claude

Use Kaivo's MCP server to give Claude secure, workspace-scoped access to your data. Setup guide β†’

Power BI

Microsoft's BI tool with a native BigQuery connector. Supports direct query and scheduled refresh. Setup guide β†’

Data Studio

Free Google BI tool with native BigQuery support. One-click connection to your Kaivo warehouse; great for SMB teams on Google Workspace. Setup guide β†’

Tableau

The premium analytics standard, with native BigQuery integration. Setup guide β†’

Google Sheets

Use Connected Sheets to query BigQuery directly from a spreadsheet, with no SQL. Setup guide β†’

Excel

Connect via Power Query's BigQuery connector. Setup guide β†’

Metabase

Open-source BI tool with strong BigQuery support. Setup guide β†’

See our pricing page for OneSignal connector pricing and plan details.

Was this helpful?

Still need help? Share an idea