Sources
src_big_query
Google Analytics web traffic data from GA4 via Google BigQuery.
events_all
Google Analytics web traffic event data with 1 row per event.
| Column | Description |
|---|---|
_airbyte_meta |
Airbyte metadata payload for the extracted event row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
publisher |
Publisher metadata object associated with the event, when present. |
event_date_full |
Full event date value as provided by the connector. |
event_date |
Event date (YYYYMMDD) in the property’s reporting time zone. |
event_timestamp |
Event timestamp in microseconds since the Unix epoch (UTC). |
event_name |
Name of the event (for example, page_view, purchase). |
event_params |
Array of event parameters (key/value pairs). |
event_previous_timestamp |
Previous event timestamp for the user in microseconds since epoch (UTC), when provided. |
event_value_in_usd |
Monetary value for the event converted to USD, when populated by GA. |
event_bundle_sequence_id |
Sequence id of the event bundle on the client. |
event_server_timestamp_offset |
Difference between client event time and server time in microseconds, when provided. |
user_id |
Authenticated user id (if set by your implementation); may be null. |
user_pseudo_id |
Pseudonymous user identifier (device-based) assigned by Google Analytics. |
privacy_info |
Privacy-related flags for the event/user (for example, analytics_storage consent). |
user_properties |
Repeated array of user property key/value pairs set for the user at event time. |
user_first_touch_timestamp |
Timestamp (microseconds since epoch) of the user’s first touch. |
user_ltv |
User lifetime value fields (revenue/currency) as provided by GA. |
device |
Device information struct (category, OS, browser, model, etc.). |
geo |
Geographic information struct (city, region, country, etc.) derived by GA. |
app_info |
Application information struct (app_id, version, install_source) for app streams. |
traffic_source |
First user acquisition traffic source struct (name, medium, source). |
stream_id |
Data stream id that generated the event. |
platform |
Platform that generated the event (WEB, ANDROID, IOS). |
event_dimensions |
Additional GA event dimension fields (struct), when present. |
ecommerce |
Ecommerce fields struct for commerce events (transaction_id, revenue, tax, shipping, etc.). |
items |
Repeated array of item structs associated with commerce events (item_id, item_name, price, quantity, etc.). |
collected_traffic_source |
Traffic source values collected from tags (for example, gclid/utm parameters), when available. |
session_traffic_source_last_click |
Session-level last-click traffic source attribution fields as of the event. |
is_active_user |
True if GA classifies the user as active at the time of the event. |
batch_event_index |
Index of the event within a batch upload (measurement protocol / batched events), when present. |
batch_page_id |
Page id used for batched events, when present. |
batch_ordering_id |
Ordering id used to sequence batched events, when present. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
src_shopify
E-commerce order and store data from Shopify.
orders
Shopify order transactions.
| Column | Description |
|---|---|
id |
Unique Shopify order id. |
order_number |
Human-readable order number (e.g. 1001) shown in admin and to customers. |
name |
Order display name (e.g. |
email |
Customer email address for the order. |
phone |
Customer phone number for the order. |
created_at |
Timestamp when the order was created (UTC). |
updated_at |
Timestamp when the order was last updated (UTC). |
processed_at |
Timestamp when the order was processed; null if not yet processed. |
closed_at |
Timestamp when the order was closed; null if still open. |
cancelled_at |
Timestamp when the order was cancelled; null if not cancelled. |
financial_status |
Payment status (e.g. pending, paid, refunded, partially_refunded). |
fulfillment_status |
Fulfillment status (e.g. null, fulfilled, partial, restocked). |
total_price |
Total price of the order (string, in shop currency). |
subtotal_price |
Subtotal before shipping, tax, and discounts (string). |
total_tax |
Total tax amount for the order (string). |
total_discounts |
Total discount amount applied to the order (string). |
total_weight |
Total weight of the order in grams. |
currency |
Three-letter ISO 4217 currency code for the order. |
line_items |
Array of line item objects (quantity, price, title, etc.) for products in the order. |
refunds |
Array of refund objects, including refund_line_items and amounts. |
billing_address |
Billing address object (address1, city, province, country, zip, etc.). |
shipping_address |
Shipping address object (address1, city, province, country, zip, etc.). |
customer |
Customer object (id, email, etc.) when associated with a customer record. |
note |
Optional note attached to the order. |
tags |
Comma-separated tags applied to the order. Carries several unrelated tag families at once -- ops batches, ship dates, country -- so match on the specific tag rather than parsing positionally. community_order is the reliable flag for the Communities program, and community_refund_issued marks those subsequently given a partial refund -- it tracks almost 1:1 with financial_status = 'partially_refunded'. Note the tag identifies THAT an order is a community order, not WHICH community. |
source_name |
Order source (e.g. web, pos, shopify_draft_order). |
confirmation_number |
Confirmation number or code for the order. |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Shopify order snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
test |
Whether this is a test order placed via Shopify Bogus Gateway or test mode (true/false). |
token |
Unique token used to access the order via the Shopify storefront URL. |
app_id |
ID of the Shopify app that created the order (e.g. 580111 for the online store). |
number |
Numerical identifier unique to the shop (excludes the prefix that order_number includes). |
company |
B2B company information associated with the order, when the order is placed on behalf of a company. |
user_id |
ID of the staff user who created the order from the admin (null for storefront orders). |
shop_url |
URL of the Shopify shop that owns the order (e.g. example.myshopify.com). |
confirmed |
Whether the order has been confirmed by Shopify (true/false). |
device_id |
ID of the POS device that created the order, when the order originated from Shopify POS. |
po_number |
Purchase order number associated with the order, when provided by the customer. |
reference |
Free-form reference identifier supplied by the channel that created the order. |
tax_lines |
Array of tax line objects detailing each tax applied to the order (title, price, rate). |
browser_ip |
IP address of the browser used by the customer when placing the order. |
cart_token |
Unique token associated with the cart that was converted into this order. |
deleted_at |
Timestamp when the order was deleted; null if the order has not been deleted. |
source_url |
URL of the page where the order was placed, when available. |
tax_exempt |
Whether taxes were exempted on the order (true/false). |
checkout_id |
ID of the checkout that produced the order. |
location_id |
ID of the physical location associated with the order (e.g. retail location for POS orders). |
fulfillments |
Array of fulfillment objects associated with the order, including line items and tracking information. |
landing_site |
URL of the page on the storefront where the customer entered the site that led to the order. |
cancel_reason |
Reason the order was cancelled (customer, fraud, inventory, declined, other). |
contact_email |
Customer contact email associated with the order; may differ from email if updated post-checkout. |
payment_terms |
Payment terms object describing due dates and payment schedule for the order, when applicable. |
total_tax_set |
Total tax amount on the order in shop and presentment currencies (object with shop_money and presentment_money). |
checkout_token |
Unique token associated with the checkout that produced the order. |
client_details |
Object containing details about the client browser/device used to place the order (user agent, accept language, session hash). |
discount_codes |
Array of discount code objects applied to the order (code, amount, type). WARNING: the code member is not always a real discount code -- staff-entered manual discounts are recorded here using their reason text, e.g. replacement, custom discount, failed delivery and failed hardware / comp - make right. Any analysis of promotional code performance must exclude these or it will conflate promotions with ops write-offs. Real codes can be confirmed against src_shopify.price_rules. Note also that this is an array -- a small number of orders carry more than one code, so flatten before joining or the parent order fans out. |
referring_site |
URL of the site that referred the customer to the storefront before the order was placed. |
shipping_lines |
Array of shipping line objects representing the shipping methods chosen for the order. |
taxes_included |
Whether taxes are included in the order subtotal (true/false). |
customer_locale |
Locale used by the customer at checkout (e.g. en, fr-CA). |
deleted_message |
Reason or message describing why the order was deleted, when applicable. |
duties_included |
Whether duties are included in the order line item prices (true/false). |
estimated_taxes |
Whether the taxes shown on the order are estimates rather than final values (true/false). |
note_attributes |
Array of name/value pairs containing additional attributes attached to the order. |
total_price_set |
Total order price in shop and presentment currencies (object with shop_money and presentment_money). |
total_price_usd |
Total order price converted to USD. |
landing_site_ref |
Reference (e.g. utm_term or campaign tag) parsed from the landing site URL. |
order_status_url |
URL where the customer can view the status of the order on the storefront. |
current_total_tax |
Current total tax on the order after edits, refunds, and returns (in shop currency). |
source_identifier |
Identifier of the source that created the order (e.g. POS receipt number). |
total_outstanding |
Outstanding amount due on the order (in shop currency). |
subtotal_price_set |
Subtotal of line items in shop and presentment currencies (object with shop_money and presentment_money). |
total_tip_received |
Sum of all tips received on the order (in shop currency). |
current_total_price |
Current total order price after edits, refunds, and returns (in shop currency). |
deleted_description |
Description explaining why the order was deleted, when applicable. |
total_discounts_set |
Total discounts applied to the order in shop and presentment currencies. |
admin_graphql_api_id |
GraphQL API global identifier for the order (e.g. gid://shopify/Order/12345). |
discount_allocations |
Array describing how order-level discounts were allocated across line items. |
presentment_currency |
ISO 4217 currency code in which the order was presented to the customer at checkout. |
current_total_tax_set |
Current total tax on the order in shop and presentment currencies after edits, refunds, and returns. |
discount_applications |
Array of discount application objects describing the discounts that were applied (manual, automatic, script, code). |
payment_gateway_names |
Array of payment gateway names used to process the order (e.g. shopify_payments, stripe). |
current_subtotal_price |
Current subtotal of the order after edits, refunds, and returns (in shop currency). |
total_line_items_price |
Sum of the prices of all line items on the order, before discounts and taxes (in shop currency). |
buyer_accepts_marketing |
Whether the customer consented to receive marketing material via email at checkout (true/false). |
current_total_discounts |
Current total discounts applied to the order after edits, refunds, and returns (in shop currency). |
current_total_price_set |
Current total order price in shop and presentment currencies after edits, refunds, and returns. |
current_total_duties_set |
Current total duties on the order in shop and presentment currencies after edits, refunds, and returns. |
total_shipping_price_set |
Total shipping price for the order in shop and presentment currencies. |
merchant_of_record_app_id |
ID of the app acting as the merchant of record for the order, when applicable. |
original_total_duties_set |
Original total duties on the order at the time of placement, in shop and presentment currencies. |
current_subtotal_price_set |
Current subtotal of the order in shop and presentment currencies after edits, refunds, and returns. |
total_line_items_price_set |
Sum of line item prices in shop and presentment currencies, before discounts and taxes. |
current_total_discounts_set |
Current total discounts in shop and presentment currencies after edits, refunds, and returns. |
merchant_business_entity_id |
ID of the merchant business entity (legal entity) responsible for the order. |
current_total_additional_fees_set |
Current total additional fees on the order in shop and presentment currencies after edits, refunds, and returns. |
original_total_additional_fees_set |
Original total additional fees on the order at placement, in shop and presentment currencies. |
total_cash_rounding_payment_adjustment_set |
Cash rounding adjustment applied to the order payment in shop and presentment currencies (used in markets where cash payments are rounded). |
customers
Shopify customer profile records, one row per customer.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Shopify customer id. |
note |
Internal note attached to the customer record. |
tags |
Comma-separated tags applied to the customer. |
email |
Customer email address. |
phone |
Customer phone number. |
state |
Customer account state (e.g. enabled, disabled, invited, declined). |
currency |
Default currency for the customer. |
shop_url |
Shopify shop URL the customer belongs to. |
addresses |
Array of saved customer addresses. |
last_name |
Customer last name. |
created_at |
Timestamp when the customer record was created (UTC). |
first_name |
Customer first name. |
tax_exempt |
True if the customer is tax-exempt. |
updated_at |
Timestamp when the customer record was last updated (UTC). |
total_spent |
Lifetime total spent by the customer (in shop currency). |
orders_count |
Count of orders placed by the customer. |
last_order_id |
Shopify order id of the customer's most recent order. |
tax_exemptions |
List of tax exemption codes that apply to the customer. |
verified_email |
True if the customer's email address has been verified. |
default_address |
Default shipping/billing address object for the customer. |
last_order_name |
Display name of the customer's most recent order (e.g. |
accepts_marketing |
True if the customer has opted in to marketing emails (legacy field). |
admin_graphql_api_id |
GraphQL global id for the customer in the Shopify Admin API. |
multipass_identifier |
Multipass single-sign-on identifier for the customer, when used. |
sms_marketing_consent |
SMS marketing consent object (state, opt-in level, consent date). |
marketing_opt_in_level |
Marketing opt-in level (e.g. single_opt_in, confirmed_opt_in). |
email_marketing_consent |
Email marketing consent object (state, opt-in level, consent date). |
accepts_marketing_updated_at |
Timestamp when the marketing-acceptance flag was last updated. |
fulfillments
Shopify order fulfillment records (shipments) with tracking details.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Shopify fulfillment id. |
name |
Fulfillment display name (e.g. |
duties |
Array of duties associated with the fulfillment. |
status |
Fulfillment status (e.g. pending, open, success, cancelled, error, failure). |
receipt |
Receipt object returned by the fulfillment service. |
service |
Name of the fulfillment service handling the shipment. |
order_id |
Shopify order id this fulfillment belongs to. |
shop_url |
Shopify shop URL the fulfillment belongs to. |
created_at |
Timestamp when the fulfillment was created (UTC). |
line_items |
Array of order line items included in this fulfillment. |
updated_at |
Timestamp when the fulfillment was last updated (UTC). |
location_id |
Shopify location id from which the items were shipped. |
tracking_url |
Primary tracking URL for the shipment. |
tracking_urls |
Array of tracking URLs for the shipment. |
origin_address |
Object describing the origin address of the shipment. |
notify_customer |
True if the customer should be notified about the fulfillment. |
shipment_status |
Shipment status (e.g. label_printed, in_transit, delivered). |
tracking_number |
Primary tracking number for the shipment. |
tracking_company |
Name of the shipping carrier (e.g. UPS, USPS, FedEx). |
tracking_numbers |
Array of tracking numbers for the shipment. |
admin_graphql_api_id |
GraphQL global id for the fulfillment in the Shopify Admin API. |
variant_inventory_management |
Inventory management system that tracks the variant being fulfilled. |
order_refunds
Shopify order refunds, including refund line items and adjustments.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Shopify refund id. |
note |
Internal note explaining the refund. |
duties |
Duties refunded as part of the refund. |
return |
Object describing the associated return, when applicable. |
restock |
True if items were restocked as part of the refund. |
user_id |
Shopify user id of the staff member who processed the refund. |
order_id |
Shopify order id this refund belongs to. |
shop_url |
Shopify shop URL the refund belongs to. |
created_at |
Timestamp when the refund was created (UTC). |
processed_at |
Timestamp when the refund was processed. |
transactions |
Array of payment transactions associated with the refund. |
total_duties_set |
Object containing the total duties refunded in shop and presentment currency. |
order_adjustments |
Array of order adjustment objects (shipping, taxes) included in the refund. |
refund_line_items |
Array of refund line item objects (which items and quantities were refunded). |
admin_graphql_api_id |
GraphQL global id for the refund in the Shopify Admin API. |
pages
Shopify online store pages (about, contact, custom CMS pages).
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Shopify page id. |
title |
Page title shown to visitors. |
author |
Name of the page author. |
handle |
URL-safe handle (slug) for the page. |
shop_id |
Shopify shop id the page belongs to. |
shop_url |
Shopify shop URL the page belongs to. |
body_html |
HTML body content of the page. |
created_at |
Timestamp when the page was created (UTC). |
deleted_at |
Timestamp when the page was deleted; null if not deleted. |
updated_at |
Timestamp when the page was last updated (UTC). |
published_at |
Timestamp when the page was published; null if unpublished. |
deleted_message |
Message describing why the page was deleted, when applicable. |
template_suffix |
Suffix of the Liquid template used to render the page. |
deleted_description |
Long-form description of the deletion, when applicable. |
admin_graphql_api_id |
GraphQL global id for the page in the Shopify Admin API. |
products
Shopify product catalog records, one row per product.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Shopify product id. |
seo |
SEO metadata object (title, description) for the product. |
tags |
Comma-separated tags applied to the product. |
image |
Primary product image object. |
title |
Product title. |
handle |
URL-safe handle (slug) for the product. |
images |
Array of all product image objects. |
status |
Product status (e.g. ACTIVE, ARCHIVED, DRAFT). |
vendor |
Vendor or brand name for the product. |
options |
Array of product option objects (e.g. size, color). |
feedback |
Object describing app feedback or warnings on the product. |
shop_url |
Shopify shop URL the product belongs to. |
variants |
Array of product variant objects. |
body_html |
HTML body content (long description) of the product. |
created_at |
Timestamp when the product was created (UTC). |
deleted_at |
Timestamp when the product was deleted; null if not deleted. |
updated_at |
Timestamp when the product was last updated (UTC). |
description |
Plain-text product description. |
media_count |
Count of media items (images, videos, 3D models) attached to the product. |
is_gift_card |
True if the product is a gift card. |
product_type |
Categorization for the product (free-form text). |
published_at |
Timestamp when the product was published to the online store; null if unpublished. |
featured_image |
Featured image object for the product. |
featured_media |
Featured media object (image/video/3D) for the product. |
price_range_v2 |
Object describing the min and max variant prices. |
total_variants |
Total number of variants for the product. |
deleted_message |
Message describing why the product was deleted, when applicable. |
published_scope |
Scope of publication (e.g. global, web). |
template_suffix |
Suffix of the Liquid template used to render the product. |
total_inventory |
Total inventory quantity across all variants. |
description_html |
HTML-formatted product description. |
online_store_url |
Public URL for the product on the online store. |
tracks_inventory |
True if Shopify tracks inventory for any variant of the product. |
legacy_resource_id |
Legacy REST resource id for the product. |
deleted_description |
Long-form description of the deletion, when applicable. |
admin_graphql_api_id |
GraphQL global id for the product in the Shopify Admin API. |
requires_sellin_plan |
True if the product requires a selling plan (e.g. subscription). |
has_only_default_variant |
True if the product has only the auto-generated default variant. |
online_store_preview_url |
Preview URL for the product on the online store. |
has_out_of_stock_variants |
True if any variant of the product is out of stock. |
product_variants
Shopify product variant records (SKU-level), one row per variant.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Shopify product variant id. |
sku |
Stock keeping unit (SKU) for the variant. |
grams |
Weight of the variant in grams. |
price |
Selling price of the variant in shop currency. |
title |
Variant title (typically a combination of option values). |
weight |
Weight of the variant expressed in weight_unit. |
barcode |
Barcode (UPC, EAN, ISBN) for the variant. |
option1 |
Value for the first product option (e.g. size). |
option2 |
Value for the second product option (e.g. color). |
option3 |
Value for the third product option. |
options |
Array of all option name/value pairs for the variant. |
taxable |
True if the variant is taxable. |
tracked |
True if inventory is tracked for the variant. |
image_id |
Shopify image id for the variant's image. |
position |
Display order of the variant within the product. |
shop_url |
Shopify shop URL the variant belongs to. |
tax_code |
Tax code (Avalara/etc.) used for the variant. |
image_src |
Source URL of the variant's image. |
image_url |
Public URL of the variant's image. |
created_at |
Timestamp when the variant was created (UTC). |
product_id |
Shopify product id the variant belongs to. |
updated_at |
Timestamp when the variant was last updated (UTC). |
weight_unit |
Unit of measure for weight (e.g. g, kg, oz, lb). |
display_name |
Human-readable display name combining product and variant titles. |
compare_at_price |
Original/MSRP price for showing strike-through pricing. |
inventory_policy |
How to handle out-of-stock orders (e.g. deny, continue). |
inventory_item_id |
Inventory item id linking the variant to inventory tracking. |
requires_shipping |
True if the variant requires shipping (false for digital goods). |
available_for_sale |
True if the variant is currently available for sale. |
inventory_quantity |
Current inventory quantity available across locations. |
presentment_prices |
Array of variant prices in different presentment currencies. |
admin_graphql_api_id |
GraphQL global id for the variant in the Shopify Admin API. |
old_inventory_quantity |
Previous inventory quantity (used for change tracking). |
price_rules
Shopify price rules -- the underlying discount definitions that discount codes attach to. One row per price rule; id is unique. A price rule holds the mechanics (amount, eligibility, limits, date window) while the redeemable code strings live on the separate discount_codes streams, so a single rule can back anywhere from one code to many, and the largest rules -- the per-customer referral programs -- carry codes in the hundreds of thousands. Deleted rules arrive as TOMBSTONES: a small number of rows where deleted_at is set and every other business column, title included, is NULL. Filter on deleted_at is null for live rules. Note that this table does NOT cover the Communities program: the community discount codes are generated by the app that backs the community metaobjects, not by price rules, so only a handful of hand-made community discounts (e.g. winchesterelem2) appear here. See the changelog entry for 2026-08-25 for that analysis.
| Column | Description |
|---|---|
id |
Unique Shopify price rule id. Joins to src_shopify.discount_codes_sync.price_rule_id when that stream is enabled. |
title |
Merchant-facing name of the price rule, and in practice the discount's display name (e.g. winchesterelem2). NULL only on the 27 deleted tombstone rows. |
value |
Discount amount as text, stored NEGATIVE (e.g. -5.0, -15.0). Interpret together with value_type: a fixed_amount rule takes that many units of shop currency off, a percentage rule takes that percent off. Few distinct values are in use, and a $5 fixed_amount discount dominates. |
value_type |
Whether value is a currency amount or a percentage: fixed_amount or percentage; fixed_amount dominates. |
target_type |
What the discount applies to: line_item or shipping_line; line_item dominates. |
target_selection |
Whether the rule hits everything or a named set: all or entitled, mostly all. When entitled, see the entitled_* arrays. |
allocation_method |
How the discount spreads across matching items: across or each; across dominates. |
customer_selection |
Who may use the rule: prerequisite (restricted to specific customers or segments) or all; prerequisite dominates. |
once_per_customer |
True if a given customer may only use the rule once. True on the large majority of rules. |
usage_limit |
Maximum total redemptions allowed across all customers; NULL means unlimited. |
allocation_limit |
Cap on how many times the discount is allocated within a single order. Fully NULL in this feed. |
starts_at |
Timestamp the rule becomes valid (UTC). |
ends_at |
Timestamp the rule stops being valid (UTC); NULL means no end date. |
created_at |
Timestamp the price rule was created (UTC). |
updated_at |
Timestamp the price rule was last updated (UTC). |
deleted_at |
Timestamp the rule was deleted, if it was. When populated the row is a tombstone -- see the table description: every other business column arrives NULL. |
deleted_message |
Shopify's deletion message for a deleted rule. Fully NULL in this feed. |
deleted_description |
Longer deletion description for a deleted rule. Fully NULL in this feed. |
entitled_product_ids |
Array of product ids the discount applies to when target_selection = entitled. Populated on a small minority of rules. |
entitled_variant_ids |
Array of product variant ids the discount applies to. Very rarely populated. |
entitled_collection_ids |
Array of collection ids the discount applies to. Very rarely populated. |
entitled_country_ids |
Array of country ids the discount is limited to, for shipping discounts. Very rarely populated. |
prerequisite_customer_ids |
Array of customer ids allowed to use the rule when customer_selection = prerequisite. Populated on most rules -- this is how the per-customer referral codes are scoped. |
customer_segment_prerequisite_ids |
Array of customer segment ids allowed to use the rule. Populated on a minority of rules. |
prerequisite_product_ids |
Array of product ids that must be in the cart for the rule to apply. Very rarely populated. |
prerequisite_variant_ids |
Array of variant ids that must be in the cart. Unpopulated in this feed. |
prerequisite_collection_ids |
Array of collection ids that must be in the cart. Unpopulated in this feed. |
prerequisite_saved_search_ids |
Array of legacy saved-search ids used to scope eligibility. Unpopulated in this feed. |
prerequisite_quantity_range |
Object giving the minimum cart quantity required (e.g. greater_than_or_equal_to). Rarely populated. |
prerequisite_subtotal_range |
Object giving the minimum cart subtotal required. Very rarely populated. |
prerequisite_shipping_price_range |
Object giving the shipping-price threshold required. Very rarely populated. |
prerequisite_to_entitlement_quantity_ratio |
Object describing buy-X-get-Y ratios. Non-null on nearly every rule, but carries null members on ordinary non-BXGY rules -- check the inner values before relying on it. |
prerequisite_to_entitlement_purchase |
Object describing the prerequisite purchase amount for buy-X-get-Y rules. |
shop_url |
Shop subdomain the price rule was synced from; single-store, always 'ts0i6t-gn'. |
admin_graphql_api_id |
GraphQL global id for the price rule in the Shopify Admin API. |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Shopify price rule snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
metafield_orders
Custom metafields attached to Shopify orders. One row per order + namespace + key, so an order with several metafields has several rows -- aggregate or pivot before joining to orders to avoid fan-out. Namespaces in use: fairing (post-purchase "How did you hear about us?" survey answers, the main marketing-attribution source here), custom (internal ops flags such as ready_to_fulfill and the line_item_combination bundle code), loop-returns-data (Loop returns shipping fees), and checkoutblocks (checkout UI blocks shown). The fairing keys are question ids: question_194907 is the primary channel question, and question_194892 (TikTok), question_210523 (Facebook/Instagram) and question_210533 (article/publication/TV) are conditional follow-ups asked only when the primary answer selects that channel. Note that loop-returns-data.shipping_fee changed type mid-stream -- single_line_text_field before 2026-05-11 and json after -- so consumers need to handle both shapes.
| Column | Description |
|---|---|
id |
Unique Shopify metafield id. |
namespace |
Metafield namespace grouping related keys, normally identifying the app or process that wrote the value (e.g. fairing, custom, loop-returns-data, checkoutblocks). Namespace plus key together identify a metafield definition. |
key |
Metafield key, unique within its namespace (e.g. ready_to_fulfill, line_item_combination, question_194907). |
type |
Shopify type declaring how value should be interpreted (e.g. single_line_text_field, boolean, json, date_time). Use this rather than the deprecated value_type column. |
value |
The metafield value, always stored as text regardless of type. Cast or parse according to type -- json/json_string values need PARSE_JSON, boolean values arrive as the strings 'true'/'false', and date_time values as ISO-8601 text. |
owner_id |
Id of the order this metafield is attached to. Joins to src_shopify.orders.id. |
owner_resource |
Shopify resource type that owns the metafield; always 'order' in this table. |
shop_url |
Shop subdomain the metafield was synced from; single-store, always 'ts0i6t-gn'. |
created_at |
Timestamp when the metafield was created (UTC). |
updated_at |
Timestamp when the metafield was last updated (UTC). |
value_type |
Deprecated legacy REST value type, superseded by type. Fully NULL in this feed -- do not use it for parsing. |
description |
Optional merchant-authored description of the metafield. Fully NULL in this feed. |
admin_graphql_api_id |
GraphQL global id for the metafield (e.g. gid://shopify/Metafield/179546489749869). |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Shopify metafield snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
metafield_products
Custom metafields attached to Shopify products. One row per product + namespace + key. Namespaces in use include shopify (standard taxonomy attributes such as color-pattern, connection-type and power-source, stored as metaobject references), mm-google-shopping and mc-facebook (product category mappings pushed to the Google and Meta sales channels), reviews (aggregate product rating and rating_count) and global (SEO title_tag / description_tag).
| Column | Description |
|---|---|
id |
Unique Shopify metafield id. |
namespace |
Metafield namespace grouping related keys, normally identifying the app or process that wrote the value (e.g. shopify, mm-google-shopping, mc-facebook, reviews, global). Namespace plus key together identify a metafield definition. |
key |
Metafield key, unique within its namespace (e.g. color-pattern, google_product_category, rating). |
type |
Shopify type declaring how value should be interpreted (e.g. string, rating, number_integer, list.metaobject_reference). Use this rather than the deprecated value_type column. |
value |
The metafield value, always stored as text regardless of type. Cast or parse according to type -- json/json_string values need PARSE_JSON, boolean values arrive as the strings 'true'/'false', and date_time values as ISO-8601 text. |
owner_id |
Id of the product this metafield is attached to. Joins to src_shopify.products.id. |
owner_resource |
Shopify resource type that owns the metafield; always 'product' in this table. |
shop_url |
Shop subdomain the metafield was synced from; single-store, always 'ts0i6t-gn'. |
created_at |
Timestamp when the metafield was created (UTC). |
updated_at |
Timestamp when the metafield was last updated (UTC). |
value_type |
Deprecated legacy REST value type, superseded by type. Fully NULL in this feed -- do not use it for parsing. |
description |
Optional merchant-authored description of the metafield. Fully NULL in this feed. |
admin_graphql_api_id |
GraphQL global id for the metafield (e.g. gid://shopify/Metafield/179546489749869). |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Shopify metafield snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
metafield_product_variants
Custom metafields attached to Shopify product variants. One row per variant + namespace + key. Namespaces in use are global (harmonized_system_code, the HS tariff code used for customs) and mm-google-shopping (Google Shopping feed attributes: age_group, gender, condition, mpn).
| Column | Description |
|---|---|
id |
Unique Shopify metafield id. |
namespace |
Metafield namespace grouping related keys, normally identifying the app or process that wrote the value (e.g. global, mm-google-shopping). Namespace plus key together identify a metafield definition. |
key |
Metafield key, unique within its namespace (e.g. harmonized_system_code, age_group, mpn). |
type |
Shopify type declaring how value should be interpreted (e.g. string, single_line_text_field). Use this rather than the deprecated value_type column. |
value |
The metafield value, always stored as text regardless of type. Cast or parse according to type -- json/json_string values need PARSE_JSON, boolean values arrive as the strings 'true'/'false', and date_time values as ISO-8601 text. |
owner_id |
Id of the product variant this metafield is attached to. Joins to src_shopify.product_variants.id. |
owner_resource |
Shopify resource type that owns the metafield; always 'product_variant' in this table. |
shop_url |
Shop subdomain the metafield was synced from; single-store, always 'ts0i6t-gn'. |
created_at |
Timestamp when the metafield was created (UTC). |
updated_at |
Timestamp when the metafield was last updated (UTC). |
value_type |
Deprecated legacy REST value type, superseded by type. Fully NULL in this feed -- do not use it for parsing. |
description |
Optional merchant-authored description of the metafield. Fully NULL in this feed. |
admin_graphql_api_id |
GraphQL global id for the metafield (e.g. gid://shopify/Metafield/179546489749869). |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Shopify metafield snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
metafield_shops
Shop-level metafields, i.e. app and storefront configuration rather than transactional data. One row per namespace + key for the single Tin Can shop. Namespaces are mostly installed apps: appstle_subscription (subscription widget config and selling plans), consentmo_gcm / consentmo_settings (cookie-consent and Google Consent Mode settings), checkoutblocks, klaviyo, extole_settings, predefined_bundle, rbrfb (Fast Bundle) and mm_google_shopping_extension. Useful for auditing storefront configuration; not a source of customer or order metrics.
| Column | Description |
|---|---|
id |
Unique Shopify metafield id. |
namespace |
Metafield namespace grouping related keys, normally identifying the app or process that wrote the value (e.g. appstle_subscription, consentmo_gcm, klaviyo, checkoutblocks). Namespace plus key together identify a metafield definition. |
key |
Metafield key, unique within its namespace (e.g. selling_plans, ga_ids, merchant_id). |
type |
Shopify type declaring how value should be interpreted (e.g. json, boolean, multi_line_text_field, single_line_text_field). Use this rather than the deprecated value_type column. |
value |
The metafield value, always stored as text regardless of type. Cast or parse according to type -- json/json_string values need PARSE_JSON, boolean values arrive as the strings 'true'/'false', and date_time values as ISO-8601 text. |
owner_id |
Id of the shop this metafield is attached to. Joins to the shop itself (single-store, so owner_id is constant). |
owner_resource |
Shopify resource type that owns the metafield; always 'shop' in this table. |
shop_url |
Shop subdomain the metafield was synced from; single-store, always 'ts0i6t-gn'. |
created_at |
Timestamp when the metafield was created (UTC). |
updated_at |
Timestamp when the metafield was last updated (UTC). |
value_type |
Deprecated legacy REST value type, superseded by type. Fully NULL in this feed -- do not use it for parsing. |
description |
Optional merchant-authored description of the metafield. Fully NULL in this feed. |
admin_graphql_api_id |
GraphQL global id for the metafield (e.g. gid://shopify/Metafield/179546489749869). |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Shopify metafield snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
metafield_pages
Custom metafields attached to Shopify online-store pages. One row per page + namespace + key. Currently only the global namespace is used, holding SEO overrides (title_tag and description_tag).
| Column | Description |
|---|---|
id |
Unique Shopify metafield id. |
namespace |
Metafield namespace grouping related keys, normally identifying the app or process that wrote the value (currently only global). Namespace plus key together identify a metafield definition. |
key |
Metafield key, unique within its namespace (e.g. title_tag, description_tag). |
type |
Shopify type declaring how value should be interpreted (currently string). Use this rather than the deprecated value_type column. |
value |
The metafield value, always stored as text regardless of type. Cast or parse according to type -- json/json_string values need PARSE_JSON, boolean values arrive as the strings 'true'/'false', and date_time values as ISO-8601 text. |
owner_id |
Id of the page this metafield is attached to. Joins to src_shopify.pages.id. |
owner_resource |
Shopify resource type that owns the metafield; always 'page' in this table. |
shop_url |
Shop subdomain the metafield was synced from; single-store, always 'ts0i6t-gn'. |
created_at |
Timestamp when the metafield was created (UTC). |
updated_at |
Timestamp when the metafield was last updated (UTC). |
value_type |
Deprecated legacy REST value type, superseded by type. Fully NULL in this feed -- do not use it for parsing. |
description |
Optional merchant-authored description of the metafield. Fully NULL in this feed. |
admin_graphql_api_id |
GraphQL global id for the metafield (e.g. gid://shopify/Metafield/179546489749869). |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Shopify metafield snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
metafield_draft_orders
Custom metafields attached to Shopify draft orders. One row per draft order + namespace + key. Currently only the custom namespace is used, holding the ready_to_fulfill ops flag. Note that the parent draft_orders table is not currently synced into raw_db.shopify, so owner_id has no in-warehouse table to join to yet.
| Column | Description |
|---|---|
id |
Unique Shopify metafield id. |
namespace |
Metafield namespace grouping related keys, normally identifying the app or process that wrote the value (currently only custom). Namespace plus key together identify a metafield definition. |
key |
Metafield key, unique within its namespace (currently ready_to_fulfill). |
type |
Shopify type declaring how value should be interpreted (currently boolean). Use this rather than the deprecated value_type column. |
value |
The metafield value, always stored as text regardless of type. Cast or parse according to type -- json/json_string values need PARSE_JSON, boolean values arrive as the strings 'true'/'false', and date_time values as ISO-8601 text. |
owner_id |
Id of the draft order this metafield is attached to. Joins to the draft order in Shopify (parent table not currently synced). |
owner_resource |
Shopify resource type that owns the metafield; always 'draft_order' in this table. |
shop_url |
Shop subdomain the metafield was synced from; single-store, always 'ts0i6t-gn'. |
created_at |
Timestamp when the metafield was created (UTC). |
updated_at |
Timestamp when the metafield was last updated (UTC). |
value_type |
Deprecated legacy REST value type, superseded by type. Fully NULL in this feed -- do not use it for parsing. |
description |
Optional merchant-authored description of the metafield. Fully NULL in this feed. |
admin_graphql_api_id |
GraphQL global id for the metafield (e.g. gid://shopify/Metafield/179546489749869). |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Shopify metafield snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
metafield_customers
Custom metafields attached to Shopify customers. One row per customer + namespace + key, so a customer with several metafields has several rows -- aggregate or pivot before joining to customers to avoid fan-out. Every row sits in the klaviyo namespace -- Klaviyo profile attributes written back onto the Shopify customer. The set of keys reflects whatever Klaviyo is syncing at the time, so treat it as fluid rather than a fixed schema. Only a small share of customers have any row here, so a missing row means "no metafield" -- never treat it as a customer-level default.
| Column | Description |
|---|---|
id |
Unique Shopify metafield id. |
namespace |
Metafield namespace grouping related keys, normally identifying the app or process that wrote the value (no namespaces present yet). Namespace plus key together identify a metafield definition. |
key |
Metafield key, unique within its namespace (no keys present yet). |
type |
Shopify type declaring how value should be interpreted (no types present yet). Use this rather than the deprecated value_type column. |
value |
The metafield value, always stored as text regardless of type. Cast or parse according to type -- json/json_string values need PARSE_JSON, boolean values arrive as the strings 'true'/'false', and date_time values as ISO-8601 text. |
owner_id |
Id of the customer this metafield is attached to. Joins to src_shopify.customers.id. |
owner_resource |
Shopify resource type that owns the metafield; always 'customer' in this table. |
shop_url |
Shop subdomain the metafield was synced from; single-store, always 'ts0i6t-gn'. |
created_at |
Timestamp when the metafield was created (UTC). |
updated_at |
Timestamp when the metafield was last updated (UTC). |
value_type |
Deprecated legacy REST value type, superseded by type. Fully NULL in this feed -- do not use it for parsing. |
description |
Optional merchant-authored description of the metafield. Fully NULL in this feed. |
admin_graphql_api_id |
GraphQL global id for the metafield (e.g. gid://shopify/Metafield/179546489749869). |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Shopify metafield snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
metafield_collections
Custom metafields attached to Shopify custom collections. Empty as of the 2026-08-20 backfill. Structure matches the other metafield_* tables.
| Column | Description |
|---|---|
id |
Unique Shopify metafield id. |
namespace |
Metafield namespace grouping related keys, normally identifying the app or process that wrote the value (no namespaces present yet). Namespace plus key together identify a metafield definition. |
key |
Metafield key, unique within its namespace (no keys present yet). |
type |
Shopify type declaring how value should be interpreted (no types present yet). Use this rather than the deprecated value_type column. |
value |
The metafield value, always stored as text regardless of type. Cast or parse according to type -- json/json_string values need PARSE_JSON, boolean values arrive as the strings 'true'/'false', and date_time values as ISO-8601 text. |
owner_id |
Id of the collection this metafield is attached to. Joins to the collection in Shopify (parent table not currently synced). |
owner_resource |
Shopify resource type that owns the metafield; always 'collection' in this table. |
shop_url |
Shop subdomain the metafield was synced from; single-store, always 'ts0i6t-gn'. |
created_at |
Timestamp when the metafield was created (UTC). |
updated_at |
Timestamp when the metafield was last updated (UTC). |
value_type |
Deprecated legacy REST value type, superseded by type. Fully NULL in this feed -- do not use it for parsing. |
description |
Optional merchant-authored description of the metafield. Fully NULL in this feed. |
admin_graphql_api_id |
GraphQL global id for the metafield (e.g. gid://shopify/Metafield/179546489749869). |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Shopify metafield snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
metafield_smart_collections
Custom metafields attached to Shopify smart (automated) collections. Empty as of the 2026-08-20 backfill. Structure matches the other metafield_* tables.
| Column | Description |
|---|---|
id |
Unique Shopify metafield id. |
namespace |
Metafield namespace grouping related keys, normally identifying the app or process that wrote the value (no namespaces present yet). Namespace plus key together identify a metafield definition. |
key |
Metafield key, unique within its namespace (no keys present yet). |
type |
Shopify type declaring how value should be interpreted (no types present yet). Use this rather than the deprecated value_type column. |
value |
The metafield value, always stored as text regardless of type. Cast or parse according to type -- json/json_string values need PARSE_JSON, boolean values arrive as the strings 'true'/'false', and date_time values as ISO-8601 text. |
owner_id |
Id of the smart collection this metafield is attached to. Joins to the smart collection in Shopify (parent table not currently synced). |
owner_resource |
Shopify resource type that owns the metafield; always 'smart_collection' in this table. |
shop_url |
Shop subdomain the metafield was synced from; single-store, always 'ts0i6t-gn'. |
created_at |
Timestamp when the metafield was created (UTC). |
updated_at |
Timestamp when the metafield was last updated (UTC). |
value_type |
Deprecated legacy REST value type, superseded by type. Fully NULL in this feed -- do not use it for parsing. |
description |
Optional merchant-authored description of the metafield. Fully NULL in this feed. |
admin_graphql_api_id |
GraphQL global id for the metafield (e.g. gid://shopify/Metafield/179546489749869). |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Shopify metafield snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
metafield_articles
Custom metafields attached to Shopify blog articles. Empty as of the 2026-08-20 backfill. Structure matches the other metafield_* tables.
| Column | Description |
|---|---|
id |
Unique Shopify metafield id. |
namespace |
Metafield namespace grouping related keys, normally identifying the app or process that wrote the value (no namespaces present yet). Namespace plus key together identify a metafield definition. |
key |
Metafield key, unique within its namespace (no keys present yet). |
type |
Shopify type declaring how value should be interpreted (no types present yet). Use this rather than the deprecated value_type column. |
value |
The metafield value, always stored as text regardless of type. Cast or parse according to type -- json/json_string values need PARSE_JSON, boolean values arrive as the strings 'true'/'false', and date_time values as ISO-8601 text. |
owner_id |
Id of the blog article this metafield is attached to. Joins to the blog article in Shopify (parent table not currently synced). |
owner_resource |
Shopify resource type that owns the metafield; always 'article' in this table. |
shop_url |
Shop subdomain the metafield was synced from; single-store, always 'ts0i6t-gn'. |
created_at |
Timestamp when the metafield was created (UTC). |
updated_at |
Timestamp when the metafield was last updated (UTC). |
value_type |
Deprecated legacy REST value type, superseded by type. Fully NULL in this feed -- do not use it for parsing. |
description |
Optional merchant-authored description of the metafield. Fully NULL in this feed. |
admin_graphql_api_id |
GraphQL global id for the metafield (e.g. gid://shopify/Metafield/179546489749869). |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Shopify metafield snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
metafield_blogs
Custom metafields attached to Shopify blogs. Empty as of the 2026-08-20 backfill. Structure matches the other metafield_* tables.
| Column | Description |
|---|---|
id |
Unique Shopify metafield id. |
namespace |
Metafield namespace grouping related keys, normally identifying the app or process that wrote the value (no namespaces present yet). Namespace plus key together identify a metafield definition. |
key |
Metafield key, unique within its namespace (no keys present yet). |
type |
Shopify type declaring how value should be interpreted (no types present yet). Use this rather than the deprecated value_type column. |
value |
The metafield value, always stored as text regardless of type. Cast or parse according to type -- json/json_string values need PARSE_JSON, boolean values arrive as the strings 'true'/'false', and date_time values as ISO-8601 text. |
owner_id |
Id of the blog this metafield is attached to. Joins to the blog in Shopify (parent table not currently synced). |
owner_resource |
Shopify resource type that owns the metafield; always 'blog' in this table. |
shop_url |
Shop subdomain the metafield was synced from; single-store, always 'ts0i6t-gn'. |
created_at |
Timestamp when the metafield was created (UTC). |
updated_at |
Timestamp when the metafield was last updated (UTC). |
value_type |
Deprecated legacy REST value type, superseded by type. Fully NULL in this feed -- do not use it for parsing. |
description |
Optional merchant-authored description of the metafield. Fully NULL in this feed. |
admin_graphql_api_id |
GraphQL global id for the metafield (e.g. gid://shopify/Metafield/179546489749869). |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Shopify metafield snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
metafield_locations
Custom metafields attached to Shopify inventory locations. Empty as of the 2026-08-20 backfill. Structure matches the other metafield_* tables.
| Column | Description |
|---|---|
id |
Unique Shopify metafield id. |
namespace |
Metafield namespace grouping related keys, normally identifying the app or process that wrote the value (no namespaces present yet). Namespace plus key together identify a metafield definition. |
key |
Metafield key, unique within its namespace (no keys present yet). |
type |
Shopify type declaring how value should be interpreted (no types present yet). Use this rather than the deprecated value_type column. |
value |
The metafield value, always stored as text regardless of type. Cast or parse according to type -- json/json_string values need PARSE_JSON, boolean values arrive as the strings 'true'/'false', and date_time values as ISO-8601 text. |
owner_id |
Id of the location this metafield is attached to. Joins to the location in Shopify (parent table not currently synced). |
owner_resource |
Shopify resource type that owns the metafield; always 'location' in this table. |
shop_url |
Shop subdomain the metafield was synced from; single-store, always 'ts0i6t-gn'. |
created_at |
Timestamp when the metafield was created (UTC). |
updated_at |
Timestamp when the metafield was last updated (UTC). |
value_type |
Deprecated legacy REST value type, superseded by type. Fully NULL in this feed -- do not use it for parsing. |
description |
Optional merchant-authored description of the metafield. Fully NULL in this feed. |
admin_graphql_api_id |
GraphQL global id for the metafield (e.g. gid://shopify/Metafield/179546489749869). |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Shopify metafield snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
metafield_product_images
Custom metafields attached to Shopify product images. Empty as of the 2026-08-20 backfill. Structure matches the other metafield_* tables.
| Column | Description |
|---|---|
id |
Unique Shopify metafield id. |
namespace |
Metafield namespace grouping related keys, normally identifying the app or process that wrote the value (no namespaces present yet). Namespace plus key together identify a metafield definition. |
key |
Metafield key, unique within its namespace (no keys present yet). |
type |
Shopify type declaring how value should be interpreted (no types present yet). Use this rather than the deprecated value_type column. |
value |
The metafield value, always stored as text regardless of type. Cast or parse according to type -- json/json_string values need PARSE_JSON, boolean values arrive as the strings 'true'/'false', and date_time values as ISO-8601 text. |
owner_id |
Id of the product image this metafield is attached to. Joins to the product image in Shopify (parent table not currently synced). |
owner_resource |
Shopify resource type that owns the metafield; always 'product_image' in this table. |
shop_url |
Shop subdomain the metafield was synced from; single-store, always 'ts0i6t-gn'. |
created_at |
Timestamp when the metafield was created (UTC). |
updated_at |
Timestamp when the metafield was last updated (UTC). |
value_type |
Deprecated legacy REST value type, superseded by type. Fully NULL in this feed -- do not use it for parsing. |
description |
Optional merchant-authored description of the metafield. Fully NULL in this feed. |
admin_graphql_api_id |
GraphQL global id for the metafield (e.g. gid://shopify/Metafield/179546489749869). |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Shopify metafield snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
metaobject_community
Shopify community metaobject entries — the roster for the Communities group-buy program, where a school or PTO organiser runs a bulk purchase with a shared discount code and tier pricing. One row per metaobject entry.
NOT the same thing as src_tincan.community, which is an unrelated in-app product feature (a roster of families so kids can call each other). The two are entirely different concepts that happen to share a name. Asking "how many communities do we have?" against that table silently answers a completely different question, off by an order of magnitude.
Loaded by a scheduled Retool Workflow against the Shopify Admin GraphQL API, NOT by Airbyte: no ELT vendor's Shopify connector exposes metaobjects (checked Airbyte and Fivetran), and metaobjects are GraphQL-only with no REST endpoint. Each run is a full snapshot applied with INSERT OVERWRITE, so an entry deleted in Shopify disappears here too.
KNOWN LIMITS, read before aggregating: (1) field_values:discount_code is NOT unique. A school district runs one campaign under a
single code but gets a separate entry per participating school, so some codes repeat
across entries. An orders-to-roster join on discount code is therefore many-to-many,
not one-to-one.
(2) DO NOT sum target_devices or current_count across rows. Those figures belong to the
campaign, not the school, and are copied onto every school's row — so summing them
across a district counts the same campaign several times and materially overstates the
total, with nothing in the data signalling the error. Group by discount_code and take
max() per code first.
(3) Per-school attribution WITHIN a district is not derivable at any grain. The discount
code is district-wide, so the most precise answer available is the district.
(4) Shopify returns UNSET fields as JSON null rather than omitting them, so all field keys
appear on every row and checking key presence proves nothing. Use is_null_value() on
VARIANT paths, not is null.
| Column | Description |
|---|---|
id |
Shopify global ID, e.g. gid://shopify/Metaobject/123. Unique per entry. |
handle |
URL-style identifier assigned at creation. Does NOT change when an entry is renamed, so a handle that disagrees with display_name indicates an entry was repurposed from an earlier community. |
display_name |
Human-readable community name as shown in the Shopify admin. |
publish_status |
Shopify publish state, ACTIVE or DRAFT. Sourced from capabilities.publishable.status — this is NOT one of the custom fields and does not appear in field_values. |
updated_at |
When the entry was last edited in Shopify. NOT the freshness anchor: it goes stale whenever organisers simply stop editing, which would produce false staleness alarms. |
field_values |
Dictionary of every Shopify custom field to its value, e.g. field_values:discount_code::string. Holds every custom field defined on the metaobject, including discount_code, status_label, window_opens_at, window_closes_at, current_count, target_devices, charged_tier, estimated_tier, final_count, final_tier, the tier_N_percent fields, org_type, organizer_name, organizer_email and organizer_phone. Values are strings as returned by Shopify — cast as needed. hero_image is a gid://shopify/MediaImage reference, not an image URL. Per-field TYPE metadata is not stored: types are defined on the metaobject definition and identical across all rows, so the loader logs them once per run instead, which also surfaces schema drift. CONTAINS PII: organizer_name, organizer_email and organizer_phone for external school and PTO contacts. |
_loaded_at |
When the Retool Workflow last loaded this table. The freshness anchor. Uniform across all rows because each run fully overwrites the table. Populated with current_timestamp(), NOT sysdate() — sysdate() returns UTC as TIMESTAMP_NTZ and casting it into TIMESTAMP_TZ staples the session's offset onto a UTC reading and stores a time in the future by that offset, which would make freshness always pass and mask a stalled pipeline. |
_loaded_by |
Provenance of the load, e.g. 'retool_workflow'. |
src_stripe
Stripe payment and customer data.
customers
Stripe customer records.
| Column | Description |
|---|---|
id |
Stripe customer id. |
email |
Customer email address. |
phone |
Customer phone number. |
created |
Unix timestamp when the Stripe customer was created. |
is_deleted |
True if the Stripe customer record is marked as deleted. |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Stripe customer snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
name |
Customer's full name or business name. |
cards |
Legacy field listing card payment sources for the customer (deprecated in favor of payment methods). |
object |
String describing the Stripe object type; always customer for this table. |
address |
Customer's mailing/billing address object (line1, line2, city, state, postal_code, country). |
balance |
Current balance for the customer in the smallest currency unit (e.g. cents). Negative = credit, positive = amount owed. |
sources |
Legacy collection of payment sources attached to the customer (deprecated in favor of payment methods). |
updated |
Unix timestamp (seconds) of the last update to the customer object. |
currency |
Three-letter ISO currency code for the customer's default currency. |
discount |
Active discount object on the customer (coupon and start/end times), when applicable. |
livemode |
True if the object exists in live mode; false if in test mode. |
metadata |
Set of key/value pairs attached to the customer for application-specific use. |
shipping |
Customer's default shipping address and recipient information object. |
tax_info |
Legacy tax information object for the customer (deprecated in favor of tax_ids). |
delinquent |
True if the most recent invoice for the customer has not been paid. |
tax_exempt |
Customer tax-exempt status none, exempt, or reverse. |
test_clock |
ID of the Stripe test clock the customer is attached to, when in a test scenario. |
description |
Free-form description of the customer for internal use. |
default_card |
Legacy field with the ID of the customer's default card (superseded by invoice_settings.default_payment_method). |
subscriptions |
List of subscription objects associated with the customer. |
default_source |
ID of the default payment source attached to the customer (legacy; use invoice_settings.default_payment_method). |
invoice_prefix |
Prefix used to generate sequential invoice numbers for this customer. |
account_balance |
Legacy alias for balance (in smallest currency unit). |
invoice_settings |
Default invoice settings for the customer (default payment method, footer, custom fields). |
preferred_locales |
Array of locale codes representing the customer's preferred languages, ordered by preference. |
next_invoice_sequence |
Suffix of the next invoice number to be generated for this customer. |
tax_info_verification |
Legacy verification status for tax_info (deprecated alongside tax_info). |
charges
Stripe charge records — successful and failed payment attempts.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Stripe charge id (e.g. ch_...). |
card |
Card object used for the charge (legacy field). |
paid |
True if the charge was successfully paid. |
order |
Stripe order id associated with the charge, when applicable. |
amount |
Charge amount in the smallest currency unit (e.g. cents). |
object |
Stripe object type, always 'charge'. |
review |
Id of the radar review associated with the charge, if any. |
source |
Source of the charge (card, bank account, etc.) — legacy field. |
status |
Charge status (succeeded, pending, failed). |
created |
Unix timestamp when the charge was created. |
dispute |
Id of the dispute associated with the charge, if any. |
invoice |
Stripe invoice id associated with the charge, if any. |
outcome |
Object describing the outcome of the charge attempt (risk level, network status). |
refunds |
Object containing refund details for the charge. |
updated |
Unix timestamp when the charge was last updated. |
captured |
True if the charge was captured (vs. authorization-only). |
currency |
Three-letter ISO currency code for the charge. |
customer |
Stripe customer id the charge was made to. |
disputed |
True if the charge has been disputed. |
livemode |
True if the charge was made in live mode (vs. test). |
metadata |
Object of user-defined metadata key/value pairs. |
refunded |
True if the charge has been fully refunded. |
shipping |
Shipping address object for the charge, when provided. |
application |
Connected Stripe application id, when applicable. |
description |
Free-form description of the charge. |
destination |
Connected account that received the funds (legacy Connect). |
receipt_url |
URL of the hosted receipt for the charge. |
failure_code |
Error code if the charge failed. |
on_behalf_of |
Connected account on whose behalf the charge was made. |
fraud_details |
Object describing fraud assessment and user-reported flags. |
receipt_email |
Email address that the receipt was sent to. |
transfer_data |
Transfer data object describing how funds are transferred to a connected account. |
amount_updates |
Array of amount update events for the charge. |
payment_intent |
Stripe payment intent id this charge was created for. |
payment_method |
Stripe payment method id used for the charge. |
receipt_number |
Receipt number sent to the customer. |
transfer_group |
Group id for related transfers (Connect). |
amount_captured |
Portion of the amount that has been captured. |
amount_refunded |
Portion of the amount that has been refunded. |
application_fee |
Stripe application fee id, when present. |
billing_details |
Billing details object (name, address, email, phone) for the charge. |
failure_message |
Human-readable failure message if the charge failed. |
source_transfer |
Source transfer id for charges created via Connect. |
balance_transaction |
Stripe balance transaction id linking the charge to the platform balance. |
statement_descriptor |
Statement descriptor shown on the customer's bank statement. |
statement_description |
Legacy alias for statement_descriptor. |
application_fee_amount |
Amount of the application fee charged. |
payment_method_details |
Object with payment-method-specific details (card brand, last4, etc.). |
failure_balance_transaction |
Balance transaction id for a failed charge, when applicable. |
statement_descriptor_suffix |
Suffix appended to the statement descriptor. |
calculated_statement_descriptor |
Final statement descriptor as it appears on the bank statement. |
coupons
Stripe coupons used to apply discounts to invoices and subscriptions.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Stripe coupon id. |
name |
Display name of the coupon. |
valid |
True if the coupon is currently valid for use. |
object |
Stripe object type, always 'coupon'. |
created |
Unix timestamp when the coupon was created. |
updated |
Unix timestamp when the coupon was last updated. |
currency |
Three-letter ISO currency code for fixed-amount coupons. |
duration |
How long the discount applies (once, repeating, forever). |
livemode |
True if the coupon exists in live mode. |
metadata |
Object of user-defined metadata key/value pairs. |
redeem_by |
Unix timestamp after which the coupon can no longer be redeemed. |
amount_off |
Fixed amount to deduct (in smallest currency unit), when applicable. |
is_deleted |
True if the coupon is marked as deleted. |
percent_off |
Percentage to deduct, when applicable. |
times_redeemed |
Number of times the coupon has been redeemed. |
max_redemptions |
Maximum number of times the coupon can be redeemed. |
duration_in_months |
Number of months the discount lasts when duration is 'repeating'. |
percent_off_precise |
High-precision percentage discount value. |
credit_notes
Stripe credit notes — adjustments issued against finalized invoices.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Stripe credit note id. |
pdf |
URL of the PDF version of the credit note. |
memo |
Memo text shown on the credit note. |
type |
Credit note type (pre_payment or post_payment). |
lines |
Object containing the credit note line items. |
total |
Total amount of the credit note (in smallest currency unit). |
amount |
Amount credited (in smallest currency unit). |
number |
Human-readable credit note number. |
object |
Stripe object type, always 'credit_note'. |
reason |
Reason for the credit note (duplicate, fraudulent, order_change, product_unsatisfactory). |
refund |
Stripe refund id associated with the credit note, when applicable. |
status |
Credit note status (issued or void). |
created |
Unix timestamp when the credit note was created. |
invoice |
Stripe invoice id this credit note adjusts. |
updated |
Unix timestamp when the credit note was last updated. |
currency |
Three-letter ISO currency code. |
customer |
Stripe customer id this credit note belongs to. |
livemode |
True if the credit note exists in live mode. |
metadata |
Object of user-defined metadata key/value pairs. |
subtotal |
Subtotal before tax (in smallest currency unit). |
voided_at |
Unix timestamp when the credit note was voided, if applicable. |
tax_amounts |
Array of tax amount objects on the credit note. |
effective_at |
Unix timestamp when the credit note becomes effective. |
shipping_cost |
Shipping cost object on the credit note. |
amount_shipping |
Shipping amount included in the credit note. |
discount_amount |
Total discount amount applied to the credit note (legacy). |
discount_amounts |
Array of discount amount objects applied to the credit note. |
out_of_band_amount |
Amount handled outside of Stripe (e.g. paid via wire), if any. |
total_excluding_tax |
Total amount excluding tax. |
subtotal_excluding_tax |
Subtotal amount excluding tax. |
customer_balance_transaction |
Customer balance transaction id, when the credit note adjusts a customer balance. |
disputes
Stripe charge disputes (chargebacks) raised by cardholders.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Stripe dispute id. |
amount |
Disputed amount in the smallest currency unit. |
charge |
Stripe charge id being disputed. |
object |
Stripe object type, always 'dispute'. |
reason |
Reason given by the cardholder (e.g. fraudulent, duplicate, product_not_received). |
status |
Dispute status (warning_needs_response, under_review, won, lost, etc.). |
created |
Unix timestamp when the dispute was created. |
updated |
Unix timestamp when the dispute was last updated. |
currency |
Three-letter ISO currency code. |
evidence |
Object containing evidence submitted in response to the dispute. |
livemode |
True if the dispute exists in live mode. |
metadata |
Object of user-defined metadata key/value pairs. |
payment_intent |
Stripe payment intent id associated with the disputed charge. |
evidence_details |
Object with submission details (due-by date, has_evidence, past_due). |
balance_transaction |
Balance transaction id for the dispute fee or fund movement. |
balance_transactions |
Array of balance transactions associated with the dispute. |
is_charge_refundable |
True if the underlying charge is still refundable. |
payment_method_details |
Payment-method-specific details (card brand, network, etc.). |
events
Stripe event log — webhook-style records of all Stripe object changes.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Stripe event id (e.g. evt_...). |
data |
Object containing the affected resource (and previous attributes for updates). |
type |
Event type (e.g. charge.succeeded, customer.subscription.updated). |
object |
Stripe object type, always 'event'. |
created |
Unix timestamp when the event was created. |
request |
Object describing the API request that caused the event, when applicable. |
livemode |
True if the event was generated in live mode. |
api_version |
Stripe API version used to render the event payload. |
pending_webhooks |
Number of webhook delivery attempts still pending for the event. |
invoices
Stripe invoices — billing statements issued to customers.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Stripe invoice id (e.g. in_...). |
tax |
Total tax amount on the invoice. |
paid |
True if the invoice has been paid. |
lines |
Object containing the invoice line items. |
quote |
Stripe quote id this invoice was generated from, if any. |
total |
Total amount of the invoice including tax. |
charge |
Stripe charge id used to pay the invoice. |
closed |
True if the invoice was closed (legacy field). |
footer |
Footer text displayed on the invoice. |
issuer |
Object describing the issuer of the invoice (account or self). |
number |
Human-readable invoice number. |
object |
Stripe object type, always 'invoice'. |
status |
Invoice status (draft, open, paid, void, uncollectible). |
billing |
Legacy billing field (charge_automatically or send_invoice). |
created |
Unix timestamp when the invoice was created. |
payment |
Legacy payment id, when applicable. |
updated |
Unix timestamp when the invoice was last updated. |
currency |
Three-letter ISO currency code. |
customer |
Stripe customer id this invoice belongs to. |
discount |
Discount object applied to the invoice. |
due_date |
Unix timestamp when the invoice payment is due. |
forgiven |
True if the invoice was forgiven (legacy field). |
livemode |
True if the invoice exists in live mode. |
metadata |
Object of user-defined metadata key/value pairs. |
subtotal |
Subtotal before tax and discounts. |
attempted |
True if Stripe attempted to pay the invoice. |
discounts |
Array of discount objects applied to the invoice. |
rendering |
Object describing how the invoice should be rendered. |
amount_due |
Amount remaining due on the invoice. |
is_deleted |
True if the invoice has been deleted. |
period_end |
Unix timestamp marking the end of the billing period. |
test_clock |
Stripe test clock id, used for testing time-based behaviors. |
amount_paid |
Amount that has been paid on the invoice. |
application |
Connected Stripe application id, when applicable. |
description |
Free-form description of the invoice. |
invoice_pdf |
URL of the PDF version of the invoice. |
tax_percent |
Legacy tax percentage applied to the invoice. |
account_name |
Name of the Stripe account issuing the invoice. |
auto_advance |
True if Stripe will attempt to advance the invoice automatically. |
effective_at |
Unix timestamp when the invoice becomes effective. |
from_invoice |
Object describing the invoice this one was created from (revisions). |
on_behalf_of |
Connected account on whose behalf the invoice was issued. |
period_start |
Unix timestamp marking the start of the billing period. |
subscription |
Stripe subscription id this invoice was generated for. |
attempt_count |
Number of payment attempts made on the invoice. |
automatic_tax |
Object describing automatic tax calculation settings. |
custom_fields |
Array of custom field name/value pairs displayed on the invoice. |
customer_name |
Name of the customer at invoice creation time. |
shipping_cost |
Shipping cost object on the invoice. |
transfer_data |
Transfer data object for routing funds to a connected account. |
billing_reason |
Reason the invoice was created (subscription_cycle, manual, etc.). |
customer_email |
Email address of the customer at invoice creation time. |
customer_phone |
Phone number of the customer at invoice creation time. |
default_source |
Default payment source id used for the invoice. |
ending_balance |
Customer's account balance after the invoice was finalized. |
payment_intent |
Stripe payment intent id used to pay the invoice. |
receipt_number |
Receipt number sent to the customer. |
account_country |
Country of the Stripe account issuing the invoice. |
account_tax_ids |
Array of tax id values for the issuing account. |
amount_shipping |
Shipping amount included in the invoice total. |
application_fee |
Application fee id charged on the invoice (legacy). |
latest_revision |
Id of the latest revision of this invoice. |
amount_remaining |
Amount still due after partial payment. |
customer_address |
Customer billing address object at invoice creation time. |
customer_tax_ids |
Array of customer tax id objects displayed on the invoice. |
paid_out_of_band |
True if the invoice was marked paid outside of Stripe. |
payment_settings |
Object configuring payment method types and behaviors. |
shipping_details |
Shipping details object (name, address, phone) for the invoice. |
starting_balance |
Customer's account balance before the invoice was finalized. |
collection_method |
How the invoice is collected (charge_automatically or send_invoice). |
customer_shipping |
Customer shipping address object at invoice creation time. |
default_tax_rates |
Array of default tax rate objects applied to the invoice. |
rendering_options |
Legacy object configuring invoice rendering. |
total_tax_amounts |
Array of tax amount objects, one per tax rate applied. |
hosted_invoice_url |
URL of the Stripe-hosted invoice page for the customer. |
status_transitions |
Object containing timestamps for each status transition (finalized_at, paid_at, voided_at). |
customer_tax_exempt |
Customer tax-exempt status at invoice creation (none, exempt, reverse). |
total_excluding_tax |
Total amount excluding tax. |
next_payment_attempt |
Unix timestamp of the next scheduled payment attempt. |
statement_descriptor |
Statement descriptor shown on the bank statement. |
subscription_details |
Object with metadata captured from the subscription at invoice time. |
statement_description |
Legacy alias for statement_descriptor. |
webhooks_delivered_at |
Unix timestamp when invoice webhooks were last delivered. |
application_fee_amount |
Amount of the application fee charged on the invoice. |
default_payment_method |
Default payment method id used for the invoice. |
subtotal_excluding_tax |
Subtotal amount excluding tax. |
total_discount_amounts |
Array of total discount amount objects applied. |
last_finalization_error |
Object describing the most recent error encountered while finalizing. |
pre_payment_credit_notes_amount |
Total amount of pre-payment credit notes applied to the invoice. |
post_payment_credit_notes_amount |
Total amount of post-payment credit notes applied to the invoice. |
payment_intents
Stripe payment intents — orchestrate the lifecycle of a payment.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Stripe payment intent id (e.g. pi_...). |
amount |
Amount intended to be collected in the smallest currency unit. |
object |
Stripe object type, always 'payment_intent'. |
review |
Id of the radar review associated with the payment intent, if any. |
source |
Legacy source id used for the payment intent. |
status |
Payment intent status (requires_payment_method, requires_confirmation, succeeded, etc.). |
charges |
Object containing the charges associated with the payment intent. |
created |
Unix timestamp when the payment intent was created. |
invoice |
Stripe invoice id this payment intent is paying, if any. |
updated |
Unix timestamp when the payment intent was last updated. |
currency |
Three-letter ISO currency code. |
customer |
Stripe customer id this payment intent is associated with. |
livemode |
True if the payment intent exists in live mode. |
metadata |
Object of user-defined metadata key/value pairs. |
shipping |
Shipping address object for the payment intent. |
processing |
Object containing payment-method-specific processing details. |
application |
Connected Stripe application id, when applicable. |
canceled_at |
Unix timestamp when the payment intent was canceled. |
description |
Free-form description of the payment intent. |
next_action |
Object describing the next action the customer must take (3DS, redirect, etc.). |
on_behalf_of |
Connected account on whose behalf the payment is processed. |
client_secret |
Client-side secret used to confirm the payment intent. |
latest_charge |
Id of the most recent charge created by the payment intent. |
receipt_email |
Email address that will receive the payment receipt. |
transfer_data |
Transfer data object for routing funds to a connected account. |
amount_details |
Object with breakdown of the amount (tip, etc.). |
capture_method |
How the payment is captured (automatic or manual). |
payment_method |
Stripe payment method id used for the payment intent. |
transfer_group |
Group id for related transfers (Connect). |
amount_received |
Amount that has been collected so far. |
amount_capturable |
Amount currently authorized and available for capture. |
last_payment_error |
Object describing the most recent payment failure. |
setup_future_usage |
Indicates how the payment method may be reused (off_session, on_session). |
cancellation_reason |
Reason the payment intent was canceled (e.g. duplicate, requested_by_customer). |
confirmation_method |
How the payment intent is confirmed (automatic or manual). |
payment_method_types |
Array of payment method types accepted for this payment intent. |
statement_descriptor |
Statement descriptor shown on the bank statement. |
statement_description |
Legacy alias for statement_descriptor. |
application_fee_amount |
Application fee amount in the smallest currency unit. |
payment_method_options |
Object with per-payment-method-type configuration options. |
automatic_payment_methods |
Object describing automatic payment method configuration. |
statement_descriptor_suffix |
Suffix appended to the statement descriptor. |
payment_method_configuration_details |
Object with details about the payment method configuration used. |
payment_methods
Stripe payment methods saved on customers (cards, bank accounts, wallets, etc.).
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Stripe payment method id (e.g. pm_...). |
eps |
EPS payment method details, when applicable. |
fpx |
FPX payment method details, when applicable. |
p24 |
P24 payment method details, when applicable. |
blik |
BLIK payment method details, when applicable. |
card |
Card payment method details (brand, last4, exp_month, exp_year, etc.). |
oxxo |
OXXO payment method details, when applicable. |
type |
Payment method type (card, sepa_debit, bank_account, etc.). |
ideal |
iDEAL payment method details, when applicable. |
affirm |
Affirm payment method details, when applicable. |
alipay |
Alipay payment method details, when applicable. |
boleto |
Boleto payment method details, when applicable. |
object |
Stripe object type, always 'payment_method'. |
sofort |
SOFORT payment method details, when applicable. |
cashapp |
Cash App Pay payment method details, when applicable. |
created |
Unix timestamp when the payment method was created. |
giropay |
Giropay payment method details, when applicable. |
grabpay |
GrabPay payment method details, when applicable. |
updated |
Unix timestamp when the payment method was last updated. |
customer |
Stripe customer id the payment method is attached to. |
livemode |
True if the payment method exists in live mode. |
metadata |
Object of user-defined metadata key/value pairs. |
acss_debit |
ACSS direct debit payment method details, when applicable. |
amazon_pay |
Amazon Pay payment method details, when applicable. |
bacs_debit |
BACS direct debit payment method details, when applicable. |
bancontact |
Bancontact payment method details, when applicable. |
sepa_debit |
SEPA direct debit payment method details, when applicable. |
card_present |
Card-present (in-person) payment method details, when applicable. |
au_becs_debit |
AU BECS direct debit payment method details, when applicable. |
allow_redisplay |
Indicates whether the payment method may be redisplayed (always, limited, unspecified). |
billing_details |
Billing details object (name, email, phone, address) for the payment method. |
interac_present |
Interac in-person payment method details, when applicable. |
afterpay_clearpay |
Afterpay/Clearpay payment method details, when applicable. |
payouts
Stripe payouts — funds transferred from Stripe balance to bank accounts.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Stripe payout id (e.g. po_...). |
date |
Unix timestamp of the payout date (legacy field). |
type |
Payout type (bank_account or card). |
amount |
Payout amount in the smallest currency unit. |
method |
Method used for the payout (standard, instant). |
object |
Stripe object type, always 'payout'. |
status |
Payout status (pending, in_transit, paid, failed, canceled). |
created |
Unix timestamp when the payout was created. |
updated |
Unix timestamp when the payout was last updated. |
currency |
Three-letter ISO currency code. |
livemode |
True if the payout exists in live mode. |
metadata |
Object of user-defined metadata key/value pairs. |
automatic |
True if the payout was scheduled automatically by Stripe. |
recipient |
Recipient id of the payout (legacy Connect). |
description |
Free-form description of the payout. |
destination |
Destination bank account or card id receiving the payout. |
reversed_by |
Id of the payout that reversed this payout, if any. |
source_type |
Source of the funds being paid out (e.g. card, bank_account). |
arrival_date |
Unix timestamp when the funds are expected to arrive in the destination. |
bank_account |
Bank account object describing the destination, when applicable. |
failure_code |
Error code if the payout failed. |
source_balance |
Source balance from which the payout was made. |
transfer_group |
Group id for related transfers (Connect). |
amount_reversed |
Amount that has been reversed from this payout. |
failure_message |
Human-readable failure message if the payout failed. |
original_payout |
Id of the original payout if this is a reversal. |
source_transaction |
Source transaction id for the payout. |
balance_transaction |
Balance transaction id linking the payout to the platform balance. |
statement_descriptor |
Statement descriptor shown on the bank statement. |
reconciliation_status |
Reconciliation status (e.g. completed, in_progress, not_applicable). |
statement_description |
Legacy alias for statement_descriptor. |
failure_balance_transaction |
Balance transaction id for a failed payout, when applicable. |
plans
Stripe legacy subscription plans (now superseded by prices).
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Stripe plan id. |
name |
Plan name (legacy). |
tiers |
Array of pricing tier objects, when using tiered billing. |
active |
True if the plan is currently active. |
amount |
Plan amount in the smallest currency unit. |
object |
Stripe object type, always 'plan'. |
created |
Unix timestamp when the plan was created. |
product |
Stripe product id this plan belongs to. |
updated |
Unix timestamp when the plan was last updated. |
currency |
Three-letter ISO currency code for the plan. |
interval |
Billing interval (day, week, month, year). |
livemode |
True if the plan exists in live mode. |
metadata |
Object of user-defined metadata key/value pairs. |
nickname |
Brief description used internally to identify the plan. |
is_deleted |
True if the plan has been deleted. |
tiers_mode |
How tiered pricing is calculated (graduated or volume). |
usage_type |
How usage is reported (licensed or metered). |
amount_decimal |
Plan amount expressed as a decimal string for high precision. |
billing_scheme |
How to compute the price (per_unit or tiered). |
interval_count |
Number of intervals between billing cycles. |
aggregate_usage |
How metered usage is aggregated (sum, last_during_period, etc.). |
transform_usage |
Object describing how usage units are transformed before billing. |
trial_period_days |
Default trial length in days for the plan. |
statement_descriptor |
Statement descriptor for charges related to the plan. |
statement_description |
Legacy alias for statement_descriptor. |
prices
Stripe prices — modern pricing definitions (replaces legacy plans).
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Stripe price id (e.g. price_...). |
type |
Price type (one_time or recurring). |
active |
True if the price is currently active. |
object |
Stripe object type, always 'price'. |
created |
Unix timestamp when the price was created. |
product |
Stripe product id this price belongs to. |
updated |
Unix timestamp when the price was last updated. |
currency |
Three-letter ISO currency code for the price. |
livemode |
True if the price exists in live mode. |
metadata |
Object of user-defined metadata key/value pairs. |
nickname |
Brief description used internally to identify the price. |
recurring |
Object describing the recurring billing terms when type is 'recurring'. |
is_deleted |
True if the price has been deleted. |
lookup_key |
Lookup key used to retrieve the price by an alternate identifier. |
tiers_mode |
How tiered pricing is calculated (graduated or volume). |
unit_amount |
Unit amount in the smallest currency unit. |
tax_behavior |
Tax behavior (inclusive, exclusive, unspecified). |
billing_scheme |
How to compute the price (per_unit or tiered). |
custom_unit_amount |
Object configuring a customer-specified amount, when applicable. |
transform_quantity |
Object describing how quantity is transformed before billing. |
unit_amount_decimal |
Unit amount expressed as a decimal string for high precision. |
products
Stripe products — items or services that can be sold via prices/plans.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Stripe product id (e.g. prod_...). |
url |
Public URL of the product (for use in customer-facing pages). |
name |
Product name. |
type |
Product type (good or service). |
active |
True if the product is currently active. |
images |
Array of image URLs for the product. |
object |
Stripe object type, always 'product'. |
caption |
Short description of the product. |
created |
Unix timestamp when the product was created. |
updated |
Unix timestamp when the product was last updated. |
features |
Array of marketing feature objects displayed on the product. |
livemode |
True if the product exists in live mode. |
metadata |
Object of user-defined metadata key/value pairs. |
tax_code |
Stripe tax code id classifying the product for tax purposes. |
shippable |
True if the product requires shipping (only relevant for goods). |
attributes |
Array of product attribute names (legacy SKU support). |
is_deleted |
True if the product has been deleted. |
unit_label |
Unit label shown on the customer's receipt (e.g. seat). |
description |
Free-form description of the product. |
deactivate_on |
Array of connected account ids on which the product is deactivated. |
default_price |
Default price id for the product. |
package_dimensions |
Object describing physical package dimensions (height, length, weight, width). |
statement_descriptor |
Statement descriptor for charges related to the product. |
setup_intents
Stripe setup intents — guide customers through saving payment methods for future use.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Stripe setup intent id (e.g. seti_...). |
usage |
How the saved payment method may be reused (off_session or on_session). |
object |
Stripe object type, always 'setup_intent'. |
status |
Setup intent status (requires_payment_method, requires_confirmation, succeeded, etc.). |
created |
Unix timestamp when the setup intent was created. |
mandate |
Stripe mandate id created by the setup intent, when applicable. |
updated |
Unix timestamp when the setup intent was last updated. |
customer |
Stripe customer id this setup intent is associated with. |
livemode |
True if the setup intent exists in live mode. |
metadata |
Object of user-defined metadata key/value pairs. |
application |
Connected Stripe application id, when applicable. |
description |
Free-form description of the setup intent. |
next_action |
Object describing the next action the customer must take. |
on_behalf_of |
Connected account on whose behalf the setup is performed. |
client_secret |
Client-side secret used to confirm the setup intent. |
latest_attempt |
Id of the most recent setup attempt. |
payment_method |
Stripe payment method id created or used by the setup intent. |
flow_directions |
Array describing the directions for which the payment method may be used (inbound, outbound). |
last_setup_error |
Object describing the most recent setup failure. |
single_use_mandate |
Single-use mandate id, when applicable. |
cancellation_reason |
Reason the setup intent was canceled. |
payment_method_types |
Array of payment method types accepted for the setup intent. |
payment_method_options |
Object with per-payment-method-type configuration options. |
automatic_payment_methods |
Object describing automatic payment method configuration. |
payment_method_configuration_details |
Object with details about the payment method configuration used. |
subscriptions
Stripe subscription records — recurring billing arrangements with customers.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Stripe subscription id (e.g. sub_...). |
plan |
Plan object associated with the subscription (legacy single-plan field). |
items |
Object containing the subscription items (line items). |
object |
Stripe object type, always 'subscription'. |
status |
Subscription status (trialing, active, past_due, canceled, unpaid, etc.). |
billing |
Legacy billing field (charge_automatically or send_invoice). |
created |
Unix timestamp when the subscription was created. |
updated |
Unix timestamp when the subscription was last updated. |
currency |
Three-letter ISO currency code for the subscription. |
customer |
Stripe customer id the subscription belongs to. |
discount |
Discount object applied to the subscription. |
ended_at |
Unix timestamp when the subscription ended. |
livemode |
True if the subscription exists in live mode. |
metadata |
Object of user-defined metadata key/value pairs. |
quantity |
Quantity for the legacy single-plan subscription. |
schedule |
Stripe subscription schedule id managing the subscription, if any. |
cancel_at |
Unix timestamp when the subscription is scheduled to cancel. |
trial_end |
Unix timestamp when the trial period ends. |
is_deleted |
True if the subscription has been deleted. |
start_date |
Unix timestamp when the subscription started. |
test_clock |
Stripe test clock id, used for testing time-based behaviors. |
application |
Connected Stripe application id, when applicable. |
canceled_at |
Unix timestamp when the subscription was canceled. |
description |
Free-form description of the subscription. |
tax_percent |
Legacy tax percentage applied to the subscription. |
trial_start |
Unix timestamp when the trial period started. |
on_behalf_of |
Connected account on whose behalf the subscription is created. |
automatic_tax |
Object describing automatic tax calculation settings. |
transfer_data |
Transfer data object for routing funds to a connected account. |
days_until_due |
Number of days from invoice creation until payment is due. |
default_source |
Default payment source id used to charge the subscription. |
latest_invoice |
Stripe invoice id of the most recent invoice for the subscription. |
pending_update |
Object describing a pending subscription update. |
trial_settings |
Object configuring trial behaviors (e.g. end_behavior). |
invoice_settings |
Object with invoice configuration for the subscription. |
pause_collection |
Object describing the current pause collection state. |
payment_settings |
Object configuring payment method types and behaviors. |
collection_method |
How the subscription is collected (charge_automatically or send_invoice). |
default_tax_rates |
Array of default tax rate objects applied to the subscription. |
billing_thresholds |
Object specifying thresholds that trigger billing. |
current_period_end |
Unix timestamp marking the end of the current billing period. |
billing_cycle_anchor |
Unix timestamp serving as the billing cycle anchor. |
cancel_at_period_end |
True if the subscription will cancel at the end of the current period. |
cancellation_details |
Object with details about why and how the subscription was canceled. |
current_period_start |
Unix timestamp marking the start of the current billing period. |
pending_setup_intent |
Stripe setup intent id pending confirmation for the subscription. |
default_payment_method |
Default payment method id used to charge the subscription. |
application_fee_percent |
Application fee percentage charged on subscription invoices. |
billing_cycle_anchor_config |
Object configuring the billing cycle anchor (day_of_month, hour, minute, second). |
pending_invoice_item_interval |
Object describing the interval at which pending invoice items are billed. |
next_pending_invoice_item_invoice |
Unix timestamp of the next invoice for pending invoice items. |
subscription_items
Stripe subscription items — line items within a subscription.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Stripe subscription item id (e.g. si_...). |
plan |
Plan object associated with the subscription item (legacy). |
price |
Price object associated with the subscription item. |
start |
Unix timestamp when the subscription item started (legacy). |
object |
Stripe object type, always 'subscription_item'. |
status |
Status of the subscription item (legacy field). |
created |
Unix timestamp when the subscription item was created. |
customer |
Stripe customer id the subscription item belongs to. |
discount |
Discount object applied to the subscription item (legacy). |
ended_at |
Unix timestamp when the subscription item ended (legacy). |
livemode |
True if the subscription item exists in live mode. |
metadata |
Object of user-defined metadata key/value pairs. |
quantity |
Quantity for the subscription item. |
tax_rates |
Array of tax rate objects applied to the subscription item. |
trial_end |
Unix timestamp when the trial period ends (legacy). |
canceled_at |
Unix timestamp when the subscription item was canceled (legacy). |
tax_percent |
Legacy tax percentage applied to the subscription item. |
trial_start |
Unix timestamp when the trial period started (legacy). |
subscription |
Stripe subscription id this item belongs to. |
billing_thresholds |
Object specifying thresholds that trigger billing for the item. |
current_period_end |
Unix timestamp marking the end of the current billing period for the item (legacy). |
cancel_at_period_end |
True if the item will cancel at the end of the current period (legacy). |
current_period_start |
Unix timestamp marking the start of the current billing period for the item. |
subscription_updated |
Unix timestamp when the parent subscription was last updated. |
application_fee_percent |
Application fee percentage charged on invoices for this item (legacy). |
subscription_schedule
Stripe subscription schedules — manage subscription lifecycle through phases.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Stripe subscription schedule id (e.g. sub_sched_...). |
object |
Stripe object type, always 'subscription_schedule'. |
phases |
Array of phase objects defining the schedule timeline. |
status |
Schedule status (not_started, active, completed, released, canceled). |
created |
Unix timestamp when the schedule was created. |
updated |
Unix timestamp when the schedule was last updated. |
customer |
Stripe customer id the schedule applies to. |
livemode |
True if the schedule exists in live mode. |
metadata |
Object of user-defined metadata key/value pairs. |
test_clock |
Stripe test clock id, used for testing time-based behaviors. |
application |
Connected Stripe application id, when applicable. |
canceled_at |
Unix timestamp when the schedule was canceled. |
released_at |
Unix timestamp when the schedule was released from managing the subscription. |
completed_at |
Unix timestamp when the schedule completed all phases. |
end_behavior |
Behavior when the schedule completes (release or cancel). |
subscription |
Stripe subscription id managed by the schedule. |
current_phase |
Object describing the currently active phase. |
default_settings |
Object containing default settings applied to all phases. |
renewal_interval |
Legacy renewal interval string. |
released_subscription |
Stripe subscription id released from the schedule. |
src_google_ads
Google Ads campaign and performance data.
campaign
Google Ads campaign-level metrics and attributes.
| Column | Description |
|---|---|
SEGMENTS.DATE |
Reporting date for the campaign metrics row. |
CAMPAIGN.ID |
Google Ads campaign id. |
METRICS.COST_MICROS |
Ad spend in micros for the row (1,000,000 micros = 1 currency unit). |
METRICS.CONVERSIONS |
Number of conversions attributed by Google Ads for the row. |
METRICS.CLICKS |
Number of ad clicks for the row. |
METRICS.IMPRESSIONS |
Number of ad impressions for the row. |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Google Ads campaign snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
METRICS.CTR |
Click-through rate: clicks divided by impressions for the campaign over the report period. |
CAMPAIGN.NAME |
Display name of the campaign. |
SEGMENTS.HOUR |
Hour of the day (0–23) used to segment the report row. |
CAMPAIGN.LABELS |
Array of resource names of labels attached to the campaign. |
CAMPAIGN.STATUS |
Status of the campaign (ENABLED, PAUSED, REMOVED, UNKNOWN, UNSPECIFIED). |
CAMPAIGN.END_DATE |
Last day on which the campaign is scheduled to run (YYYY-MM-DD). |
CAMPAIGN.MANUAL_CPM |
Settings for the manual CPM bidding strategy used by the campaign, when applicable. |
CAMPAIGN.MANUAL_CPV |
Settings for the manual CPV (cost-per-view) bidding strategy used by the campaign, when applicable. |
CAMPAIGN.START_DATE |
First day on which the campaign was scheduled to start (YYYY-MM-DD). |
METRICS.AVERAGE_CPC |
Average cost per click for the campaign over the report period (in micros of account currency). |
METRICS.AVERAGE_CPM |
Average cost per thousand impressions for the campaign over the report period (in micros). |
METRICS.VIDEO_VIEWS |
Number of times videos in the campaign were viewed (TrueView and similar). |
METRICS.AVERAGE_COST |
Average amount paid per interaction over the report period (in micros). |
METRICS.INTERACTIONS |
Total number of interactions (clicks, video views, calls, etc.) on the campaign. |
CAMPAIGN.PAYMENT_MODE |
How the campaign is charged (CLICKS, CONVERSION_VALUE, CONVERSIONS, GUEST_STAY). |
CAMPAIGN.BASE_CAMPAIGN |
Resource name of the base campaign for an experiment campaign; equals the campaign itself if not an experiment. |
CAMPAIGN.RESOURCE_NAME |
Resource name of the campaign in the form customers/{customer_id}/campaigns/{campaign_id}. |
CAMPAIGN.FREQUENCY_CAPS |
Array of frequency cap settings limiting how often ads in the campaign show to each user. |
CAMPAIGN.SERVING_STATUS |
Operational serving status of the campaign (SERVING, NONE, ENDED, PENDING, SUSPENDED). |
METRICS.ACTIVE_VIEW_CPM |
Average cost of viewable thousand impressions (Active View). |
METRICS.ACTIVE_VIEW_CTR |
Click-through rate of viewable impressions (Active View). |
CAMPAIGN.CAMPAIGN_BUDGET |
Resource name of the budget assigned to the campaign. |
CAMPAIGN.EXPERIMENT_TYPE |
Type of experiment the campaign is part of (BASE, DRAFT, EXPERIMENT). |
SEGMENTS.AD_NETWORK_TYPE |
Ad network used for serving (SEARCH, SEARCH_PARTNERS, CONTENT, YOUTUBE_SEARCH, YOUTUBE_WATCH, MIXED). |
CAMPAIGN.BIDDING_STRATEGY |
Resource name of the portfolio bidding strategy used by the campaign, when applicable. |
CAMPAIGN.FINAL_URL_SUFFIX |
Suffix appended to the final URL of ads in the campaign for tracking parameters. |
METRICS.CONVERSIONS_VALUE |
Total monetary value of conversions attributed to the campaign over the report period. |
CAMPAIGN.OPTIMIZATION_SCORE |
Optimization score for the campaign (0.0–1.0); higher means more optimized per Google's recommendations. |
METRICS.COST_PER_CONVERSION |
Average cost per conversion for the campaign (in micros). |
METRICS.VALUE_PER_CONVERSION |
Average value per conversion for the campaign. |
CAMPAIGN_BUDGET.AMOUNT_MICROS |
Daily budget amount for the campaign in micros of the account currency (1,000,000 micros = 1 unit of currency). |
CAMPAIGN.BIDDING_STRATEGY_TYPE |
Type of bidding strategy in use (e.g. MANUAL_CPC, MAXIMIZE_CONVERSIONS, TARGET_CPA, TARGET_ROAS). |
CAMPAIGN.TRACKING_URL_TEMPLATE |
URL template for constructing tracking URLs for ads in the campaign. |
CAMPAIGN.URL_CUSTOM_PARAMETERS |
Array of custom parameter key/value pairs available for substitution in tracking URLs. |
METRICS.ACTIVE_VIEW_IMPRESSIONS |
Number of impressions counted as viewable by Active View. |
METRICS.ACTIVE_VIEW_VIEWABILITY |
Percentage of measurable impressions that were viewable (Active View). |
METRICS.INTERACTION_EVENT_TYPES |
Array of event types counted as interactions for the campaign (e.g. CLICK, ENGAGEMENT, VIDEO_VIEW). |
CAMPAIGN.TARGET_ROAS.TARGET_ROAS |
Target return on ad spend (ROAS) for Target ROAS bidding (e.g. 3.5 = 350%). |
METRICS.VIDEO_QUARTILE_P100_RATE |
Percentage of video impressions where the user watched the entire (100%) video. |
CAMPAIGN.ADVERTISING_CHANNEL_TYPE |
Primary serving channel of the campaign (SEARCH, DISPLAY, SHOPPING, VIDEO, PERFORMANCE_MAX, etc.). |
METRICS.ACTIVE_VIEW_MEASURABILITY |
Percentage of impressions for which Active View viewability could be measured. |
CAMPAIGN.ACCESSIBLE_BIDDING_STRATEGY |
Resource name of the bidding strategy accessible to the user, after access checks. |
CAMPAIGN.APP_CAMPAIGN_SETTING.APP_ID |
App ID for App campaigns; references the app being promoted. |
CAMPAIGN.ADVERTISING_CHANNEL_SUB_TYPE |
Subtype refining the channel type (e.g. SEARCH_MOBILE_APP, DISPLAY_GMAIL_AD, SHOPPING_SMART_ADS). |
CAMPAIGN.SHOPPING_SETTING.MERCHANT_ID |
Google Merchant Center account ID supplying the product feed for Shopping campaigns. |
CAMPAIGN.TARGET_CPA.TARGET_CPA_MICROS |
Target cost-per-acquisition in micros for Target CPA bidding. |
CAMPAIGN.HOTEL_SETTING.HOTEL_CENTER_ID |
Hotel Center account ID for Hotel campaigns. |
CAMPAIGN.SHOPPING_SETTING.ENABLE_LOCAL |
Whether local inventory is enabled for the Shopping campaign (true/false). |
CAMPAIGN.TRACKING_SETTING.TRACKING_URL |
Campaign-level tracking URL applied to clicks. |
CAMPAIGN.AD_SERVING_OPTIMIZATION_STATUS |
Ad serving optimization mode (e.g. OPTIMIZE, ROTATE_INDEFINITELY). |
CAMPAIGN.APP_CAMPAIGN_SETTING.APP_STORE |
App store hosting the promoted app for App campaigns (GOOGLE_APP_STORE, APPLE_APP_STORE). |
CAMPAIGN.VIDEO_BRAND_SAFETY_SUITABILITY |
Brand safety suitability setting for video ads (EXPANDED_INVENTORY, STANDARD_INVENTORY, LIMITED_INVENTORY). |
CAMPAIGN.MANUAL_CPC.ENHANCED_CPC_ENABLED |
Whether Enhanced CPC is enabled for Manual CPC bidding (true/false). |
CAMPAIGN.TARGET_CPA.CPC_BID_FLOOR_MICROS |
Minimum CPC bid Google may set under Target CPA bidding (micros). |
CAMPAIGN.PERCENT_CPC.ENHANCED_CPC_ENABLED |
Whether Enhanced CPC is enabled for Percent CPC bidding (true/false). |
CAMPAIGN.REAL_TIME_BIDDING_SETTING.OPT_IN |
Whether the campaign opts into real-time bidding for Ad Exchange (true/false). |
CAMPAIGN.TARGET_IMPRESSION_SHARE.LOCATION |
Where on the SERP impression share is targeted (ANYWHERE_ON_PAGE, TOP_OF_PAGE, ABSOLUTE_TOP_OF_PAGE). |
CAMPAIGN.TARGET_ROAS.CPC_BID_FLOOR_MICROS |
Minimum CPC bid Google may set under Target ROAS bidding (micros). |
CAMPAIGN.TARGET_SPEND.TARGET_SPEND_MICROS |
Target spend amount in micros for Maximize Clicks (Target Spend) bidding. |
CAMPAIGN.VANITY_PHARMA.VANITY_PHARMA_TEXT |
Vanity pharma text shown for pharmaceutical campaigns subject to special disclosure rules. |
CAMPAIGN.COMMISSION.COMMISSION_RATE_MICROS |
Commission rate in micros for Commission bidding (e.g. travel partner campaigns). |
CAMPAIGN.EXCLUDED_PARENT_ASSET_FIELD_TYPES |
Array of parent-account asset field types excluded from being inherited by this campaign. |
CAMPAIGN.TARGET_CPA.CPC_BID_CEILING_MICROS |
Maximum CPC bid Google may set under Target CPA bidding (micros). |
METRICS.ACTIVE_VIEW_MEASURABLE_COST_MICROS |
Cost of impressions measurable by Active View (in micros). |
METRICS.ACTIVE_VIEW_MEASURABLE_IMPRESSIONS |
Number of impressions measurable by Active View. |
CAMPAIGN.PERCENT_CPC.CPC_BID_CEILING_MICROS |
Maximum CPC bid for Percent CPC bidding (micros). |
CAMPAIGN.SHOPPING_SETTING.CAMPAIGN_PRIORITY |
Priority of the Shopping campaign (0–2) used when multiple campaigns advertise the same product. |
CAMPAIGN.TARGET_ROAS.CPC_BID_CEILING_MICROS |
Maximum CPC bid Google may set under Target ROAS bidding (micros). |
CAMPAIGN.TARGET_SPEND.CPC_BID_CEILING_MICROS |
Maximum CPC bid for Maximize Clicks (Target Spend) bidding (micros). |
CAMPAIGN.MAXIMIZE_CONVERSION_VALUE.TARGET_ROAS |
Optional target ROAS for Maximize Conversion Value bidding. |
CAMPAIGN.NETWORK_SETTINGS.TARGET_GOOGLE_SEARCH |
Whether ads serve on Google Search (true/false). |
CAMPAIGN.TARGETING_SETTING.TARGET_RESTRICTIONS |
Array of targeting restriction objects (audience, demographic, etc.) applied to the campaign. |
CAMPAIGN.DYNAMIC_SEARCH_ADS_SETTING.DOMAIN_NAME |
Domain name targeted by Dynamic Search Ads in the campaign. |
CAMPAIGN.MAXIMIZE_CONVERSIONS.TARGET_CPA_MICROS |
Optional target CPA in micros for Maximize Conversions bidding. |
CAMPAIGN.NETWORK_SETTINGS.TARGET_SEARCH_NETWORK |
Whether ads serve on Google Search Partners (true/false). |
CAMPAIGN.NETWORK_SETTINGS.TARGET_CONTENT_NETWORK |
Whether ads serve on the Google Display Network (true/false). |
CAMPAIGN.DYNAMIC_SEARCH_ADS_SETTING.LANGUAGE_CODE |
Language code (e.g. en) used for Dynamic Search Ads targeting. |
CAMPAIGN.SELECTIVE_OPTIMIZATION.CONVERSION_ACTIONS |
Array of conversion action resource names selected for App campaign optimization. |
CAMPAIGN.TARGET_CPM.TARGET_FREQUENCY_GOAL.TIME_UNIT |
Time unit (e.g. WEEK) over which the target frequency goal is measured for Target CPM bidding. |
CAMPAIGN.LOCAL_CAMPAIGN_SETTING.LOCATION_SOURCE_TYPE |
Source of business locations for Local campaigns (GOOGLE_MY_BUSINESS, AFFILIATE). |
CAMPAIGN.VANITY_PHARMA.VANITY_PHARMA_DISPLAY_URL_MODE |
Display URL mode for vanity pharma campaigns (MANUFACTURER_WEBSITE_URL, WEBSITE_DESCRIPTION). |
CAMPAIGN.TARGET_CPM.TARGET_FREQUENCY_GOAL.TARGET_COUNT |
Target number of impressions per user per time unit for Target CPM bidding. |
CAMPAIGN.NETWORK_SETTINGS.TARGET_PARTNER_SEARCH_NETWORK |
Whether ads serve on the Google Partner Search Network (true/false). |
CAMPAIGN.TARGET_IMPRESSION_SHARE.CPC_BID_CEILING_MICROS |
Maximum CPC bid for Target Impression Share bidding (micros). |
CAMPAIGN.APP_CAMPAIGN_SETTING.BIDDING_STRATEGY_GOAL_TYPE |
Bidding strategy goal type for App campaigns (e.g. OPTIMIZE_INSTALLS_TARGET_INSTALL_COST, OPTIMIZE_IN_APP_CONVERSIONS_TARGET_INSTALL_COST). |
CAMPAIGN.GEO_TARGET_TYPE_SETTING.NEGATIVE_GEO_TARGET_TYPE |
How negative geo targets are interpreted (PRESENCE, PRESENCE_OR_INTEREST). |
CAMPAIGN.GEO_TARGET_TYPE_SETTING.POSITIVE_GEO_TARGET_TYPE |
How positive geo targets are interpreted (PRESENCE, PRESENCE_OR_INTEREST, SEARCH_INTEREST). |
CAMPAIGN.TARGET_IMPRESSION_SHARE.LOCATION_FRACTION_MICROS |
Target fraction (in micros, e.g. 500000 = 50%) of eligible impressions to win for Target Impression Share bidding. |
CAMPAIGN.DYNAMIC_SEARCH_ADS_SETTING.USE_SUPPLIED_URLS_ONLY |
Whether DSA uses only the supplied URL feed instead of crawling the domain (true/false). |
CAMPAIGN.OPTIMIZATION_GOAL_SETTING.OPTIMIZATION_GOAL_TYPES |
Array of optimization goal types (e.g. CALL_CLICKS, DRIVING_DIRECTIONS) for Local/Performance campaigns. |
ad_performance
Google Ads ad-level performance, one row per (date, ad_group_ad). Sourced from the
GAQL ad_group_ad resource, which excludes Performance Max campaigns — for PMax,
see pmax_ad_performance. Column names follow GAQL dot notation and must be
double-quoted when referenced in SQL.
| Column | Description |
|---|---|
SEGMENTS.DATE |
Reporting date for the ad metrics row. |
CUSTOMER.DESCRIPTIVE_NAME |
Descriptive name of the Google Ads customer/account. |
CAMPAIGN.ID |
Google Ads campaign id. |
CAMPAIGN.NAME |
Campaign display name. |
CAMPAIGN.STATUS |
Campaign status (for example, ENABLED, PAUSED, REMOVED). |
CAMPAIGN.BIDDING_STRATEGY_TYPE |
Bidding strategy type applied to the campaign. |
CAMPAIGN.ADVERTISING_CHANNEL_TYPE |
Advertising channel type (for example, SEARCH, DISPLAY, SHOPPING, VIDEO). |
CAMPAIGN.ADVERTISING_CHANNEL_SUB_TYPE |
Advertising channel sub-type, when applicable. |
AD_GROUP.ID |
Ad group id. |
AD_GROUP.NAME |
Ad group display name. |
AD_GROUP.TYPE |
Ad group type (for example, SEARCH_STANDARD). |
AD_GROUP.STATUS |
Ad group status (for example, ENABLED, PAUSED, REMOVED). |
AD_GROUP_AD.AD.ID |
Ad id within the ad group. |
AD_GROUP_AD.AD.NAME |
Ad display name. |
AD_GROUP_AD.AD.TYPE |
Ad type (for example, RESPONSIVE_SEARCH_AD, EXPANDED_TEXT_AD). |
AD_GROUP_AD.STATUS |
Ad status within the ad group (for example, ENABLED, PAUSED, REMOVED). |
AD_GROUP_AD.AD.FINAL_URLS |
Array of final landing-page URLs for the ad. |
METRICS.CLICKS |
Number of ad clicks for the row. |
METRICS.IMPRESSIONS |
Number of ad impressions for the row. |
METRICS.COST_MICROS |
Ad spend in micros for the row (1,000,000 micros = 1 currency unit). |
METRICS.CTR |
Click-through rate (clicks / impressions) for the row. |
METRICS.AVERAGE_CPC |
Average cost per click for the row (currency units). |
METRICS.CONVERSIONS |
Number of primary conversions attributed by Google Ads for the row. |
METRICS.CONVERSIONS_VALUE |
Monetary value of primary conversions for the row. |
METRICS.ALL_CONVERSIONS |
Number of all conversions (primary + secondary) for the row. |
METRICS.ALL_CONVERSIONS_VALUE |
Monetary value of all conversions for the row. |
METRICS.VIEW_THROUGH_CONVERSIONS |
View-through conversions for the row (display/video inventory). |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Google Ads ad snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
pmax_ad_performance
Google Ads Performance Max asset-group-level performance, one row per (date, asset_group).
Sourced from the GAQL asset_group resource. PMax campaigns don't have ad_groups or ads,
so the asset group is the smallest reportable creative grouping (Google auto-assembles
creatives from the assets uploaded into the group). Only populated for PMax campaigns;
Search/Display/etc. use ad_performance instead.
| Column | Description |
|---|---|
SEGMENTS.DATE |
Reporting date for the asset-group metrics row. |
CUSTOMER.DESCRIPTIVE_NAME |
Descriptive name of the Google Ads customer/account. |
CAMPAIGN.ID |
Google Ads campaign id (a Performance Max campaign). |
CAMPAIGN.NAME |
Campaign display name. |
CAMPAIGN.STATUS |
Campaign status (for example, ENABLED, PAUSED, REMOVED). |
CAMPAIGN.BIDDING_STRATEGY_TYPE |
Bidding strategy type applied to the campaign. |
CAMPAIGN.ADVERTISING_CHANNEL_TYPE |
Advertising channel type (expected value is PERFORMANCE_MAX). |
CAMPAIGN.ADVERTISING_CHANNEL_SUB_TYPE |
Advertising channel sub-type, when applicable. |
ASSET_GROUP.ID |
Performance Max asset group id. |
ASSET_GROUP.NAME |
Asset group display name. |
ASSET_GROUP.STATUS |
Asset group status (for example, ENABLED, PAUSED, REMOVED). |
ASSET_GROUP.FINAL_URLS |
Array of final landing-page URLs for the asset group. |
ASSET_GROUP.AD_STRENGTH |
Google's ad-strength rating for the asset group (for example, POOR, AVERAGE, GOOD, EXCELLENT). |
METRICS.CLICKS |
Number of clicks for the row. |
METRICS.IMPRESSIONS |
Number of impressions for the row. |
METRICS.COST_MICROS |
Spend in micros for the row (1,000,000 micros = 1 currency unit). |
METRICS.CTR |
Click-through rate (clicks / impressions) for the row. |
METRICS.AVERAGE_CPC |
Average cost per click for the row (currency units). |
METRICS.CONVERSIONS |
Number of primary conversions attributed for the row. |
METRICS.CONVERSIONS_VALUE |
Monetary value of primary conversions for the row. |
METRICS.ALL_CONVERSIONS |
Number of all conversions (primary + secondary) for the row. |
METRICS.ALL_CONVERSIONS_VALUE |
Monetary value of all conversions for the row. |
METRICS.VIEW_THROUGH_CONVERSIONS |
View-through conversions for the row. |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this PMax asset-group snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
ad_group
One row per ad group per day, with bidding configuration and aggregated cost.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
AD_GROUP.ID |
Numeric ad group id (primary key for the ad group). |
CAMPAIGN.ID |
Numeric id of the parent campaign. |
AD_GROUP.NAME |
Display name of the ad group. |
AD_GROUP.TYPE |
Ad group type (e.g. SEARCH_STANDARD, DISPLAY_STANDARD, VIDEO_BUMPER). |
SEGMENTS.DATE |
Reporting date for this row (the segment that makes the row daily). |
AD_GROUP.LABELS |
Array of label resource names attached to the ad group. |
AD_GROUP.STATUS |
Ad group status (ENABLED, PAUSED, REMOVED). |
AD_GROUP.CAMPAIGN |
Resource name of the parent campaign (e.g. customers/{cid}/campaigns/{id}). |
METRICS.COST_MICROS |
Cost in micros (1,000,000 micros = 1 currency unit) for this ad group on this date. |
AD_GROUP.TARGET_ROAS |
Target return on ad spend for the ad group, when set. |
AD_GROUP.BASE_AD_GROUP |
Resource name of the base ad group when this row is an experiment/draft variant. |
AD_GROUP.RESOURCE_NAME |
Full Google Ads resource name for the ad group. |
AD_GROUP.CPC_BID_MICROS |
Manual cost-per-click bid in micros, when applicable. |
AD_GROUP.CPM_BID_MICROS |
Manual cost-per-thousand-impressions bid in micros, when applicable. |
AD_GROUP.CPV_BID_MICROS |
Manual cost-per-view bid in micros (video), when applicable. |
AD_GROUP.AD_ROTATION_MODE |
Ad rotation mode (e.g. OPTIMIZE, ROTATE_FOREVER). |
AD_GROUP.FINAL_URL_SUFFIX |
URL suffix appended to the final URL for tracking. |
AD_GROUP.TARGET_CPA_MICROS |
Target cost-per-acquisition bid in micros, when set. |
AD_GROUP.TARGET_CPM_MICROS |
Target cost-per-thousand-impressions bid in micros, when set. |
AD_GROUP.EFFECTIVE_TARGET_ROAS |
Effective target ROAS being applied (may be inherited from the campaign). |
AD_GROUP.TRACKING_URL_TEMPLATE |
URL template used for tracking redirects on clicks. |
AD_GROUP.URL_CUSTOM_PARAMETERS |
Array of custom URL parameter key/value pairs used in tracking templates. |
AD_GROUP.PERCENT_CPC_BID_MICROS |
Percent CPC bid in micros (used for hotel/percent-based bidding), when applicable. |
AD_GROUP.EFFECTIVE_TARGET_CPA_MICROS |
Effective target CPA being applied, in micros (may be inherited from the campaign). |
AD_GROUP.EFFECTIVE_TARGET_CPA_SOURCE |
Source of the effective target CPA (e.g. AD_GROUP, CAMPAIGN_BIDDING_STRATEGY). |
AD_GROUP.OPTIMIZED_TARGETING_ENABLED |
Whether optimized targeting is enabled for the ad group. |
AD_GROUP.DISPLAY_CUSTOM_BID_DIMENSION |
Display network bidding dimension custom bids apply to (e.g. KEYWORD, AGE_RANGE). |
AD_GROUP.EFFECTIVE_TARGET_ROAS_SOURCE |
Source of the effective target ROAS (AD_GROUP vs CAMPAIGN_BIDDING_STRATEGY). |
AD_GROUP.EXCLUDED_PARENT_ASSET_FIELD_TYPES |
Asset field types from the parent campaign that are excluded for this ad group. |
AD_GROUP.TARGETING_SETTING.TARGET_RESTRICTIONS |
Array of targeting restrictions (which targeting dimensions are used to bid vs. observe). |
ad_group_ad
One row per ad per ad group per day. Contains the ad's identifying fields, status, policy summary, and the ad-format-specific payload (responsive search ad, app ad, video ad, image ad, etc.) — most format-specific columns are populated only for the matching ad type and are NULL otherwise.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
AD_GROUP.ID |
Numeric id of the parent ad group. |
SEGMENTS.DATE |
Reporting date for this row. |
AD_GROUP_AD.AD.ID |
Numeric ad id (primary key for the ad). |
AD_GROUP_AD.LABELS |
Array of label resource names attached to the ad. |
AD_GROUP_AD.STATUS |
Ad status (ENABLED, PAUSED, REMOVED). |
AD_GROUP_AD.AD.NAME |
Display name of the ad (often only set for image/video ads). |
AD_GROUP_AD.AD.TYPE |
Ad type (e.g. RESPONSIVE_SEARCH_AD, APP_AD, VIDEO_AD, IMAGE_AD). Determines which format-specific columns are populated. |
AD_GROUP_AD.AD_GROUP |
Resource name of the parent ad group. |
AD_GROUP_AD.AD_STRENGTH |
Google's ad strength assessment (e.g. POOR, AVERAGE, GOOD, EXCELLENT). |
AD_GROUP_AD.AD.FINAL_URLS |
Array of possible final URLs for the ad. |
AD_GROUP_AD.RESOURCE_NAME |
Full Google Ads resource name for the ad-group-ad relationship. |
AD_GROUP_AD.AD.RESOURCE_NAME |
Full Google Ads resource name for the ad itself. |
AD_GROUP_AD.AD.DISPLAY_URL |
Display URL shown on the rendered ad. |
AD_GROUP_AD.AD.FINAL_APP_URLS |
Array of app deep-link final URLs. |
AD_GROUP_AD.AD.FINAL_MOBILE_URLS |
Array of mobile-specific final URLs. |
AD_GROUP_AD.AD.FINAL_URL_SUFFIX |
URL suffix appended to the final URL for tracking. |
AD_GROUP_AD.AD.TRACKING_URL_TEMPLATE |
URL template used for tracking redirects on clicks. |
AD_GROUP_AD.AD.URL_CUSTOM_PARAMETERS |
Array of custom URL parameter key/value pairs used in tracking templates. |
AD_GROUP_AD.AD.URL_COLLECTIONS |
Array of named URL collections (groups of final URLs and tracking templates). |
AD_GROUP_AD.AD.DEVICE_PREFERENCE |
Preferred device for the ad (e.g. MOBILE) when set. |
AD_GROUP_AD.AD.SYSTEM_MANAGED_RESOURCE_SOURCE |
Indicates if the ad was system-generated and by which system (e.g. AD_VARIATIONS). |
AD_GROUP_AD.AD.ADDED_BY_GOOGLE_ADS |
True when the ad was created automatically by Google Ads rather than the advertiser. |
AD_GROUP_AD.POLICY_SUMMARY.REVIEW_STATUS |
Policy review status (e.g. REVIEWED, REVIEW_IN_PROGRESS). |
AD_GROUP_AD.POLICY_SUMMARY.APPROVAL_STATUS |
Policy approval status (e.g. APPROVED, DISAPPROVED, APPROVED_LIMITED). |
AD_GROUP_AD.POLICY_SUMMARY.POLICY_TOPIC_ENTRIES |
Array of specific policy topics that triggered approval restrictions. |
AD_GROUP_AD.AD.RESPONSIVE_SEARCH_AD.HEADLINES |
Responsive search ad headlines (array of asset objects). See also *.DESCRIPTIONS, *.PATH1, *.PATH2. |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.HEADLINES |
Responsive display ad headlines (array). Other RESPONSIVE_DISPLAY_AD.* columns hold descriptions, marketing/logo images, colors, and format settings for the same ad type. |
AD_GROUP_AD.AD.EXPANDED_TEXT_AD.HEADLINE_PART1 |
Expanded text ad headline part 1. Companion EXPANDED_TEXT_AD.* columns hold the other parts, descriptions, and paths. |
AD_GROUP_AD.AD.EXPANDED_DYNAMIC_SEARCH_AD.DESCRIPTION |
Expanded dynamic search ad description. Companion EXPANDED_DYNAMIC_SEARCH_AD.DESCRIPTION2 holds the second description. |
AD_GROUP_AD.AD.APP_AD.HEADLINES |
App ad headlines (array). Other APP_AD.* columns hold descriptions, images, YouTube videos, HTML5 media bundles, and mandatory ad text. |
AD_GROUP_AD.AD.APP_ENGAGEMENT_AD.HEADLINES |
App engagement ad headlines (array). Other APP_ENGAGEMENT_AD.* columns hold descriptions, images, and videos. |
AD_GROUP_AD.AD.CALL_AD.HEADLINE1 |
Call ad headline 1. Other CALL_AD.* columns hold the second headline, descriptions, business name, phone number, country code, conversion config, and path fields. |
AD_GROUP_AD.AD.IMAGE_AD.IMAGE_URL |
Image ad URL. Other IMAGE_AD.* columns hold name, MIME type, pixel/preview dimensions, and preview URL. |
AD_GROUP_AD.AD.LOCAL_AD.HEADLINES |
Local ad headlines (array). Other LOCAL_AD.* columns hold descriptions, call-to-actions, marketing/logo images, videos, and paths. |
AD_GROUP_AD.AD.VIDEO_AD.IN_FEED.HEADLINE |
In-feed video ad headline. Companion VIDEO_AD.IN_FEED.DESCRIPTION1/2 hold descriptions; VIDEO_AD.OUT_STREAM. and VIDEO_AD.IN_STREAM. hold equivalents for other video placements. |
AD_GROUP_AD.AD.VIDEO_RESPONSIVE_AD.HEADLINES |
Video responsive ad headlines (array). Other VIDEO_RESPONSIVE_AD.* columns hold long headlines, descriptions, videos, companion banners, and call-to-actions. |
AD_GROUP_AD.AD.SMART_CAMPAIGN_AD.HEADLINES |
Smart campaign ad headlines (array). Companion SMART_CAMPAIGN_AD.DESCRIPTIONS holds descriptions. |
AD_GROUP_AD.AD.LEGACY_RESPONSIVE_DISPLAY_AD.SHORT_HEADLINE |
Legacy responsive display ad short headline. Other LEGACY_RESPONSIVE_DISPLAY_AD.* columns hold the long form, description, business name, marketing/logo images, colors, and format settings. |
AD_GROUP_AD.AD.SHOPPING_PRODUCT_AD |
Shopping product ad payload (sparse; populated only for SHOPPING_PRODUCT_AD type). |
AD_GROUP_AD.AD.SHOPPING_SMART_AD |
Shopping smart ad payload (sparse; populated only for SHOPPING_SMART_AD type). |
AD_GROUP_AD.AD.SHOPPING_COMPARISON_LISTING_AD.HEADLINE |
Shopping comparison listing ad headline. |
AD_GROUP_AD.AD.HOTEL_AD |
Hotel ad payload (sparse; populated only for HOTEL_AD type). |
AD_GROUP_AD.AD.LEGACY_APP_INSTALL_AD |
Legacy app-install ad payload (sparse; deprecated ad type). |
AD_GROUP_AD.AD.TEXT_AD.HEADLINE |
Legacy text ad headline. Companion TEXT_AD.DESCRIPTION1/2 hold descriptions. |
AD_GROUP_AD.AD.DISPLAY_UPLOAD_AD.MEDIA_BUNDLE |
|
AD_GROUP_AD.AD.APP_AD.IMAGES |
Array of image asset resources used in the App ad. |
AD_GROUP_AD.AD.CALL_AD.PATH1 |
First path segment displayed after the domain in the Call ad display URL. |
AD_GROUP_AD.AD.CALL_AD.PATH2 |
Second path segment displayed after the domain in the Call ad display URL. |
AD_GROUP_AD.AD.IMAGE_AD.NAME |
Name of the image ad creative. |
AD_GROUP_AD.AD.LOCAL_AD.PATH1 |
First path segment displayed after the domain in the Local ad display URL. |
AD_GROUP_AD.AD.LOCAL_AD.PATH2 |
Second path segment displayed after the domain in the Local ad display URL. |
AD_GROUP_AD.AD.LOCAL_AD.VIDEOS |
Array of video asset resources used in the Local ad. |
AD_GROUP_AD.AD.CALL_AD.HEADLINE2 |
Second headline of the Call ad. |
AD_GROUP_AD.AD.IMAGE_AD.MIME_TYPE |
MIME type of the image ad creative (e.g. IMAGE_JPEG, IMAGE_PNG, IMAGE_GIF). |
AD_GROUP_AD.AD.APP_AD.DESCRIPTIONS |
Array of description text assets for the App ad. |
AD_GROUP_AD.AD.CALL_AD.CALL_TRACKED |
Whether call tracking is enabled for the Call ad (true/false). |
AD_GROUP_AD.AD.CALL_AD.COUNTRY_CODE |
Two-letter country code of the phone number used in the Call ad. |
AD_GROUP_AD.AD.CALL_AD.DESCRIPTION1 |
First description line of the Call ad. |
AD_GROUP_AD.AD.CALL_AD.DESCRIPTION2 |
Second description line of the Call ad. |
AD_GROUP_AD.AD.CALL_AD.PHONE_NUMBER |
Phone number advertised in the Call ad. |
AD_GROUP_AD.AD.IMAGE_AD.PIXEL_WIDTH |
Width of the image ad in pixels. |
AD_GROUP_AD.AD.LOCAL_AD.LOGO_IMAGES |
Array of logo image asset resources used in the Local ad. |
AD_GROUP_AD.AD.TEXT_AD.DESCRIPTION1 |
First description line of the (legacy) text ad. |
AD_GROUP_AD.AD.TEXT_AD.DESCRIPTION2 |
Second description line of the (legacy) text ad. |
AD_GROUP_AD.AD.APP_AD.YOUTUBE_VIDEOS |
Array of YouTube video asset resources used in the App ad. |
AD_GROUP_AD.AD.CALL_AD.BUSINESS_NAME |
Business name shown in the Call ad. |
AD_GROUP_AD.AD.IMAGE_AD.PIXEL_HEIGHT |
Height of the image ad in pixels. |
AD_GROUP_AD.AD.LOCAL_AD.DESCRIPTIONS |
Array of description text assets for the Local ad. |
AD_GROUP_AD.AD.EXPANDED_TEXT_AD.PATH1 |
First path segment after the domain in the Expanded Text Ad display URL. |
AD_GROUP_AD.AD.EXPANDED_TEXT_AD.PATH2 |
Second path segment after the domain in the Expanded Text Ad display URL. |
AD_GROUP_AD.AD.APP_AD.MANDATORY_AD_TEXT |
Mandatory text asset that must always appear in App ad creatives. |
AD_GROUP_AD.AD.APP_ENGAGEMENT_AD.IMAGES |
Array of image asset resources used in the App Engagement ad. |
AD_GROUP_AD.AD.APP_ENGAGEMENT_AD.VIDEOS |
Array of video asset resources used in the App Engagement ad. |
AD_GROUP_AD.AD.LOCAL_AD.CALL_TO_ACTIONS |
Array of call-to-action text assets for the Local ad. |
AD_GROUP_AD.AD.CALL_AD.CONVERSION_ACTION |
Resource name of the conversion action attributed when the Call ad triggers a conversion. |
AD_GROUP_AD.AD.LOCAL_AD.MARKETING_IMAGES |
Array of marketing image asset resources used in the Local ad. |
AD_GROUP_AD.AD.APP_AD.HTML5_MEDIA_BUNDLES |
Array of HTML5 media bundle asset resources used in the App ad. |
AD_GROUP_AD.AD.IMAGE_AD.PREVIEW_IMAGE_URL |
URL of a preview rendering of the image ad. |
AD_GROUP_AD.AD.RESPONSIVE_SEARCH_AD.PATH1 |
First path segment after the domain in the Responsive Search Ad display URL. |
AD_GROUP_AD.AD.RESPONSIVE_SEARCH_AD.PATH2 |
Second path segment after the domain in the Responsive Search Ad display URL. |
AD_GROUP_AD.AD.VIDEO_RESPONSIVE_AD.VIDEOS |
Array of video asset resources used in the Video Responsive ad. |
AD_GROUP_AD.AD.EXPANDED_TEXT_AD.DESCRIPTION |
First description line of the Expanded Text Ad. |
AD_GROUP_AD.AD.IMAGE_AD.PREVIEW_PIXEL_WIDTH |
Width in pixels of the preview rendering of the image ad. |
AD_GROUP_AD.AD.VIDEO_AD.OUT_STREAM.HEADLINE |
Headline shown on the out-stream video ad. |
AD_GROUP_AD.AD.EXPANDED_TEXT_AD.DESCRIPTION2 |
Second description line of the Expanded Text Ad. |
AD_GROUP_AD.AD.IMAGE_AD.PREVIEW_PIXEL_HEIGHT |
Height in pixels of the preview rendering of the image ad. |
AD_GROUP_AD.AD.VIDEO_AD.IN_FEED.DESCRIPTION1 |
First description line shown on the in-feed video ad. |
AD_GROUP_AD.AD.VIDEO_AD.IN_FEED.DESCRIPTION2 |
Second description line shown on the in-feed video ad. |
AD_GROUP_AD.AD.APP_ENGAGEMENT_AD.DESCRIPTIONS |
Array of description text assets for the App Engagement ad. |
AD_GROUP_AD.AD.SMART_CAMPAIGN_AD.DESCRIPTIONS |
Array of description text assets for the Smart Campaign ad. |
AD_GROUP_AD.AD.CALL_AD.DISABLE_CALL_CONVERSION |
Whether call conversion tracking is disabled for the Call ad (true/false). |
AD_GROUP_AD.AD.EXPANDED_TEXT_AD.HEADLINE_PART2 |
Second headline part of the Expanded Text Ad. |
AD_GROUP_AD.AD.EXPANDED_TEXT_AD.HEADLINE_PART3 |
Third headline part of the Expanded Text Ad. |
AD_GROUP_AD.AD.VIDEO_AD.OUT_STREAM.DESCRIPTION |
Description line shown on the out-stream video ad. |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.MAIN_COLOR |
Main color used in the Responsive Display Ad creative (hex string). |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.PROMO_TEXT |
Promotional text shown on the Responsive Display Ad. |
AD_GROUP_AD.AD.VIDEO_RESPONSIVE_AD.DESCRIPTIONS |
Array of description text assets for the Video Responsive ad. |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.LOGO_IMAGES |
Array of logo image asset resources used in the Responsive Display Ad. |
AD_GROUP_AD.AD.RESPONSIVE_SEARCH_AD.DESCRIPTIONS |
Array of description text assets for the Responsive Search Ad. |
AD_GROUP_AD.AD.CALL_AD.CONVERSION_REPORTING_STATE |
How conversions for the Call ad are reported (USE_ACCOUNT_LEVEL_CONVERSION_ACTION, USE_RESOURCE_LEVEL_CONVERSION_ACTION). |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.ACCENT_COLOR |
Accent color used in the Responsive Display Ad creative (hex string). |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.DESCRIPTIONS |
Array of description text assets for the Responsive Display Ad. |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.PRICE_PREFIX |
Optional price prefix string shown in the Responsive Display Ad (e.g. "as low as"). |
AD_GROUP_AD.AD.VIDEO_AD.IN_STREAM.ACTION_HEADLINE |
Action-oriented headline shown on the in-stream video ad. |
AD_GROUP_AD.AD.VIDEO_RESPONSIVE_AD.LONG_HEADLINES |
Array of long headline text assets for the Video Responsive ad. |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.BUSINESS_NAME |
Business name displayed on the Responsive Display Ad. |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.LONG_HEADLINE |
Long headline text asset shown on the Responsive Display Ad. |
AD_GROUP_AD.AD.VIDEO_RESPONSIVE_AD.CALL_TO_ACTIONS |
Array of call-to-action text assets for the Video Responsive ad. |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.FORMAT_SETTING |
Format setting controlling how the Responsive Display Ad is rendered (ALL_FORMATS, NON_NATIVE, NATIVE). |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.YOUTUBE_VIDEOS |
Array of YouTube video asset resources used in the Responsive Display Ad. |
AD_GROUP_AD.AD.CALL_AD.PHONE_NUMBER_VERIFICATION_URL |
URL Google can use to verify the phone number used in the Call ad. |
AD_GROUP_AD.AD.VIDEO_RESPONSIVE_AD.COMPANION_BANNERS |
Array of companion banner image asset resources for the Video Responsive ad. |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.MARKETING_IMAGES |
Array of landscape marketing image asset resources for the Responsive Display Ad. |
AD_GROUP_AD.AD.VIDEO_AD.IN_STREAM.ACTION_BUTTON_LABEL |
Label of the call-to-action button shown on the in-stream video ad. |
AD_GROUP_AD.AD.EXPANDED_DYNAMIC_SEARCH_AD.DESCRIPTION2 |
Second description line of the Expanded Dynamic Search Ad. |
AD_GROUP_AD.AD.LEGACY_RESPONSIVE_DISPLAY_AD.LOGO_IMAGE |
Logo image asset used in the legacy Responsive Display Ad. |
AD_GROUP_AD.AD.LEGACY_RESPONSIVE_DISPLAY_AD.MAIN_COLOR |
Main color used in the legacy Responsive Display Ad creative (hex string). |
AD_GROUP_AD.AD.LEGACY_RESPONSIVE_DISPLAY_AD.PROMO_TEXT |
Promotional text shown on the legacy Responsive Display Ad. |
AD_GROUP_AD.AD.LEGACY_RESPONSIVE_DISPLAY_AD.DESCRIPTION |
Description line shown on the legacy Responsive Display Ad. |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.SQUARE_LOGO_IMAGES |
Array of square logo image asset resources for the Responsive Display Ad. |
AD_GROUP_AD.AD.LEGACY_RESPONSIVE_DISPLAY_AD.ACCENT_COLOR |
Accent color used in the legacy Responsive Display Ad creative (hex string). |
AD_GROUP_AD.AD.LEGACY_RESPONSIVE_DISPLAY_AD.PRICE_PREFIX |
Optional price prefix string shown in the legacy Responsive Display Ad. |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.CALL_TO_ACTION_TEXT |
Call-to-action text shown on the Responsive Display Ad. |
AD_GROUP_AD.AD.LEGACY_RESPONSIVE_DISPLAY_AD.BUSINESS_NAME |
Business name displayed on the legacy Responsive Display Ad. |
AD_GROUP_AD.AD.LEGACY_RESPONSIVE_DISPLAY_AD.LONG_HEADLINE |
Long headline text shown on the legacy Responsive Display Ad. |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.ALLOW_FLEXIBLE_COLOR |
Whether Google may adjust the colors used in the Responsive Display Ad to improve performance (true/false). |
AD_GROUP_AD.AD.LEGACY_RESPONSIVE_DISPLAY_AD.FORMAT_SETTING |
Format setting for the legacy Responsive Display Ad (ALL_FORMATS, NON_NATIVE, NATIVE). |
AD_GROUP_AD.AD.LEGACY_RESPONSIVE_DISPLAY_AD.MARKETING_IMAGE |
Landscape marketing image asset used in the legacy Responsive Display Ad. |
AD_GROUP_AD.AD.DISPLAY_UPLOAD_AD.DISPLAY_UPLOAD_PRODUCT_TYPE |
Product type of the Display Upload ad (e.g. HTML5_UPLOAD_AD, DYNAMIC_HTML5_EDUCATION_AD). |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.SQUARE_MARKETING_IMAGES |
Array of square marketing image asset resources for the Responsive Display Ad. |
AD_GROUP_AD.AD.LEGACY_RESPONSIVE_DISPLAY_AD.SQUARE_LOGO_IMAGE |
Square logo image asset used in the legacy Responsive Display Ad. |
AD_GROUP_AD.AD.LEGACY_RESPONSIVE_DISPLAY_AD.CALL_TO_ACTION_TEXT |
Call-to-action text shown on the legacy Responsive Display Ad. |
AD_GROUP_AD.AD.LEGACY_RESPONSIVE_DISPLAY_AD.ALLOW_FLEXIBLE_COLOR |
Whether Google may adjust the colors used in the legacy Responsive Display Ad (true/false). |
AD_GROUP_AD.AD.LEGACY_RESPONSIVE_DISPLAY_AD.SQUARE_MARKETING_IMAGE |
Square marketing image asset used in the legacy Responsive Display Ad. |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.CONTROL_SPEC.ENABLE_AUTOGEN_VIDEO |
Whether auto-generation of a video creative is enabled for the Responsive Display Ad (true/false). |
AD_GROUP_AD.AD.RESPONSIVE_DISPLAY_AD.CONTROL_SPEC.ENABLE_ASSET_ENHANCEMENTS |
Whether asset enhancements (e.g. visual upgrades) are enabled for the Responsive Display Ad (true/false). |
src_facebook_ads
Meta (Facebook/Instagram) Ads campaign data.
customcampaign_stats
Custom campaign statistics from Meta Ads.
| Column | Description |
|---|---|
date_start |
Reporting date (start date) for the campaign performance row. |
spend |
Amount spent for the campaign on the reporting date. |
actions |
Array of action metric objects (for example, purchases) with action type and value. |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Meta Ads custom campaign snapshot. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
cpc |
Average cost per click for the campaign over the report period (in account currency). |
cpm |
Average cost per 1,000 impressions for the campaign over the report period (in account currency). |
cpp |
Average cost per 1,000 people reached for the campaign over the report period. |
ctr |
Click-through rate clicks divided by impressions, expressed as a percentage. |
clicks |
Total number of clicks the campaign received over the report period. |
date_stop |
End date of the reporting period for this row (YYYY-MM-DD). |
account_id |
Facebook Ads account ID that owns the campaign. |
campaign_id |
Facebook Ads campaign ID this stats row refers to. |
conversions |
Array of conversion action objects with counts attributed to the campaign over the report period. |
impressions |
Total number of impressions served for the campaign over the report period. |
updated_time |
Timestamp when the stats row was last updated by the Facebook Insights API. |
action_values |
Array of objects giving the monetary value attributed to each action type (e.g. purchase, add_to_cart). |
campaign_name |
Name of the campaign as configured in Facebook Ads Manager. |
purchase_roas |
Array of return on ad spend values for purchase events attributed to the campaign. |
quality_ranking |
Facebook quality ranking of the campaign's ads relative to ads competing for the same audience (ABOVE_AVERAGE, AVERAGE, BELOW_AVERAGE_*). |
conversion_values |
Array of objects giving the value attributed to each conversion action type for the campaign. |
cost_per_conversion |
Array of objects giving the average cost per conversion for each conversion action type. |
website_purchase_roas |
Array of return on ad spend values specifically for website purchase events attributed to the campaign. |
custom_ad_performance
Meta (Facebook/Instagram) ad-level performance, one row per (date, ad). Sourced from
Meta's Marketing API /insights edge via Airbyte. Includes delivery, auction, click,
conversion, video, and ranking metrics. Array fields (for example, actions,
purchase_roas, video_play_actions) contain objects of action-type/value pairs
broken down by attribution window and must be flattened with lateral flatten to
extract specific events (for example, purchases).
| Column | Description |
|---|---|
ad_id |
Meta ad id. |
ad_name |
Ad display name. |
adset_id |
Meta ad set id (the ad set that contains this ad). |
adset_name |
Ad set display name. |
campaign_id |
Meta campaign id. |
campaign_name |
Meta campaign display name. |
account_id |
Meta ad account id. |
date_start |
Reporting date (start of the 1-day window) for the ad performance row. |
date_stop |
Reporting date (end of the 1-day window) for the ad performance row. |
created_time |
Timestamp when the ad was created in Meta Ads Manager. |
updated_time |
Timestamp when this performance row was last updated (used by Airbyte for incremental sync). |
objective |
Campaign objective (for example, OUTCOME_SALES, OUTCOME_TRAFFIC). |
optimization_goal |
Delivery optimization goal for the ad set. |
buying_type |
Buying type for the campaign (for example, AUCTION, RESERVED). |
creative_media_type |
Media type of the ad creative (for example, image, video, carousel). |
attribution_setting |
Attribution setting in effect for the row (for example, 7d_click). |
spend |
Amount spent on the ad for the reporting date. |
social_spend |
Deprecated; historical metric for spend on social-endorsed impressions. Generally 0 or null in current API responses. |
impressions |
Number of impressions delivered. |
clicks |
Number of clicks on the ad (includes clicks on Meta surfaces). |
reach |
Number of unique users who saw the ad. |
frequency |
Average impressions per reached user (impressions / reach). |
cpc |
Cost per click for the row. |
cpm |
Cost per 1,000 impressions for the row. |
ctr |
Click-through rate (clicks / impressions) for the row. |
cost_per_unique_click |
Total spend divided by unique clicks on the ad. |
cost_per_one_thousand_ad_impression |
Array of cost per 1,000 impressions (CPM) broken down by placement and attribution window — more granular than cpm. |
website_ctr |
Array of click-through rates for clicks leading off-platform to websites, broken down by link-click action type. |
outbound_clicks |
Array of outbound-click objects (clicks that leave Meta surfaces) by action type. |
outbound_clicks_ctr |
Array of click-through rates specifically for outbound clicks, by attribution window. |
ad_click_actions |
Array of action objects (for example, link clicks, form submissions) attributed to users who clicked the ad. |
cost_per_ad_click |
Array of average costs per ad-click action, by action type and attribution window. |
ad_impression_actions |
Array of action objects attributed to impressions (ad viewed but not clicked). |
auction_bid |
Advertiser bid amount submitted into the Meta auction for this ad's placements. |
auction_competitiveness |
Relative competitiveness score for this ad's auctions versus competing bids. |
auction_max_competitor_bid |
Highest bid from competing ads in auctions for this ad's target audience. |
results |
Array of results — counts of outcomes matching the campaign's primary objective (for example, link clicks, leads, purchases) — by attribution window. |
result_rate |
Array of results per impression grouped by action type and attribution window. |
cost_per_result |
Array of average costs per result (spend / results), by action type and attribution window. |
objective_results |
Array of results tied to the Meta-algorithm-assigned primary objective; may differ from results when custom conversions are configured. |
objective_result_rate |
Array of result rates calculated against the primary campaign objective, by attribution window. |
cost_per_objective_result |
Array of costs per objective-specific result, by attribution window. |
result_values_performance_indicator |
Meta-internal performance classifier for the row's result values; not documented in the public Ads Insights API. |
actions |
Array of action objects (action_type, value) attributed to the ad (for example, landing page views, purchases, leads). |
action_values |
Array of monetary value objects per action type. |
conversions |
Array of conversion objects (pixel/CAPI events) attributed to the ad. |
conversion_values |
Array of monetary value objects per conversion type. |
conversion_leads |
Array of lead-type conversion events (from Lead Ads or the Conversions API) by attribution window. |
cost_per_conversion |
Array of average cost per conversion by action type and attribution window. |
cost_per_unique_conversion |
Array of costs per unique conversion (one per user) by action type and attribution window. |
purchase_roas |
Array of ROAS (return on ad spend) objects per purchase attribution source. |
website_purchase_roas |
Array of ROAS objects specifically for website purchases (purchase revenue / ad spend) by attribution window. |
average_purchases_conversion_value |
Array of average purchase value (total purchase value / purchase count) by attribution window. |
purchases_per_link_click |
Purchases divided by link clicks — conversion rate from ad click to purchase. |
purchase_per_landing_page_view |
Purchases divided by landing page views — conversion rate excluding users who never landed. |
shops_assisted_purchases |
Purchases completed after clicking the ad through to a Meta Shop or checkout surface. |
converted_product_value |
Array of total product values from tracked purchase conversions, by attribution window. |
converted_product_quantity |
Array of quantities of products purchased in tracked conversion events. |
converted_promoted_product_value |
Array of values from purchases of the promoted product in catalog ads (as opposed to any product). |
converted_promoted_product_quantity |
Array of quantities of the promoted product purchased in catalog ads. |
converted_product_website_pixel_purchase |
Array of product purchase events recorded by Meta Pixel on the website, by product. |
converted_product_website_pixel_purchase_value |
Array of monetary values of website-pixel-tracked product purchases. |
converted_promoted_product_website_pixel_purchase |
Array of promoted product purchase events recorded by Meta Pixel on the website. |
converted_promoted_product_website_pixel_purchase_value |
Array of monetary values of promoted product purchases tracked via Meta Pixel. |
video_play_actions |
Array of video play events (video begins playback, excluding replays) by attribution window. |
cost_per_15_sec_video_view |
Array of costs per ThruPlay (video watched to 15 seconds or completion) by attribution window. |
cost_per_2_sec_continuous_video_view |
Array of costs per 2+ second continuous video view by attribution window. |
quality_ranking |
Meta's quality ranking for the ad versus competing ads (for example, above_average, average, below_average). |
engagement_rate_ranking |
Meta's engagement-rate ranking for the ad versus competing ads. |
conversion_rate_ranking |
Meta's conversion-rate ranking for the ad versus competing ads. |
_airbyte_raw_id |
UUID Airbyte assigns to each raw record for sync tracking. |
_airbyte_extracted_at |
Extraction timestamp from Airbyte for this Meta Ads custom ad snapshot. |
_airbyte_meta |
Airbyte metadata payload (sync id + in-load transformations applied) for the record. |
_airbyte_generation_id |
Airbyte sync-generation identifier; increments per full refresh. |
campaigns
Facebook Ads campaigns — top-level container defining objective, budget, and schedule for a group of ad sets.
| Column | Description |
|---|---|
id |
Unique Facebook campaign id. |
name |
Campaign name as set in Ads Manager. |
account_id |
Facebook ad account id that owns the campaign. |
status |
Configured status of the campaign (e.g. ACTIVE, PAUSED, DELETED, ARCHIVED). |
effective_status |
Effective status reflecting cascading parent/account states (e.g. ACTIVE, PAUSED, CAMPAIGN_PAUSED, DISAPPROVED). |
configured_status |
Status explicitly set on the campaign by the user (mirrors status in most cases). |
objective |
Campaign optimization objective (e.g. OUTCOME_SALES, OUTCOME_TRAFFIC, OUTCOME_LEADS). |
buying_type |
How inventory is purchased (e.g. AUCTION, RESERVED). |
bid_strategy |
Bid strategy applied to the campaign (e.g. LOWEST_COST_WITHOUT_CAP, COST_CAP, LOWEST_COST_WITH_BID_CAP). |
daily_budget |
Daily budget in the account currency's minor unit (e.g. cents). |
lifetime_budget |
Lifetime budget in the account currency's minor unit (e.g. cents). |
budget_remaining |
Remaining campaign budget in the account currency's minor unit. |
budget_rebalance_flag |
Whether automatic budget rebalancing across child ad sets is enabled (deprecated by Meta but still surfaced). |
spend_cap |
Optional spend cap for the campaign in the account currency's minor unit. |
start_time |
Scheduled campaign start time (UTC). |
stop_time |
Scheduled campaign stop time (UTC); null if open-ended. |
created_time |
Timestamp the campaign was created (UTC). |
updated_time |
Timestamp the campaign was last updated (UTC). |
adlabels |
Array of ad label objects attached to the campaign for organization/reporting. |
issues_info |
Array of issue objects describing delivery or policy problems flagged by Meta. |
boosted_object_id |
Id of the object being boosted (e.g. a Page post), when the campaign was created via a boost. |
source_campaign_id |
Id of the source campaign if this campaign was created by copying another. |
special_ad_category |
Special ad category declaration (e.g. HOUSING, EMPLOYMENT, CREDIT, ISSUES_ELECTIONS_POLITICS, NONE). |
special_ad_category_country |
Array of country codes the special ad category applies to. |
smart_promotion_type |
Smart promotion type when the campaign was created via a guided/smart flow. |
_airbyte_meta |
Airbyte metadata payload for the extracted campaign row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
ad_sets
Facebook Ads ad sets — child of a campaign that defines targeting, budget, schedule, and bidding for a group of ads.
| Column | Description |
|---|---|
id |
Unique Facebook ad set id. |
name |
Ad set name as set in Ads Manager. |
account_id |
Facebook ad account id that owns the ad set. |
campaign_id |
Parent campaign id this ad set belongs to. |
effective_status |
Effective status reflecting cascading parent/account states (e.g. ACTIVE, PAUSED, CAMPAIGN_PAUSED). |
bid_strategy |
Bid strategy for the ad set (e.g. LOWEST_COST_WITHOUT_CAP, COST_CAP, LOWEST_COST_WITH_BID_CAP). |
bid_amount |
Bid amount in the account currency's minor unit, when an explicit bid is set. |
bid_info |
Object containing per-action bid values (e.g. ACTIONS, CLICKS, IMPRESSIONS) when applicable. |
bid_constraints |
Object describing bid floor/ceiling constraints (e.g. roas_average_floor). |
daily_budget |
Daily budget in the account currency's minor unit. |
lifetime_budget |
Lifetime budget in the account currency's minor unit. |
budget_remaining |
Remaining ad set budget in the account currency's minor unit. |
targeting |
Targeting specification object (geo, demographics, interests, behaviors, custom audiences, placements, etc.). |
promoted_object |
Object being promoted by the ad set (e.g. page_id, pixel_id, application_id, custom_event_type). |
learning_stage_info |
Object describing the ad set's learning phase status and exit criteria. |
start_time |
Scheduled ad set start time (UTC). |
end_time |
Scheduled ad set end time (UTC); null if open-ended. |
created_time |
Timestamp the ad set was created (UTC). |
updated_time |
Timestamp the ad set was last updated (UTC). |
adlabels |
Array of ad label objects attached to the ad set for organization/reporting. |
_airbyte_meta |
Airbyte metadata payload for the extracted ad set row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
ads
Facebook Ads individual ads — the creative-level object that runs under an ad set, pairing a creative with delivery settings.
| Column | Description |
|---|---|
id |
Unique Facebook ad id. |
name |
Ad name as set in Ads Manager. |
account_id |
Facebook ad account id that owns the ad. |
campaign_id |
Parent campaign id this ad belongs to. |
adset_id |
Parent ad set id this ad belongs to. |
status |
Configured status of the ad (e.g. ACTIVE, PAUSED, DELETED, ARCHIVED). |
effective_status |
Effective status reflecting cascading parent/account states (e.g. ACTIVE, PAUSED, ADSET_PAUSED, DISAPPROVED). |
creative |
Object holding only the creative's id — Airbyte returns a reference, not the creative spec. Join creative:id::string to ad_creatives.id for the full creative, including url_tags, which is where the Lumanu link lives. |
targeting |
Targeting specification object inherited or overridden at the ad level. |
bid_type |
Legacy bid type for the ad (e.g. CPC, CPM, ABSOLUTE_OCPM, CPA). |
bid_amount |
Bid amount in the account currency's minor unit, when an explicit bid is set on the ad. |
bid_info |
Object containing per-action bid values when applicable. |
tracking_specs |
Array of tracking spec objects defining which events are recorded for the ad. |
conversion_specs |
Array of conversion spec objects defining which events count as conversions for optimization/reporting. |
recommendations |
Array of Meta-generated recommendation objects (e.g. suggested edits to improve performance). |
source_ad_id |
Id of the source ad if this ad was created by copying another. |
last_updated_by_app_id |
App id of the last application/tool that updated the ad. |
created_time |
Timestamp the ad was created (UTC). |
updated_time |
Timestamp the ad was last updated (UTC). |
adlabels |
Array of ad label objects attached to the ad for organization/reporting. |
_airbyte_meta |
Airbyte metadata payload for the extracted ad row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
ad_creatives
Facebook ad creatives — one row per creative object, the reusable asset (copy, image or video, destination URL and its parameters) that an ad renders. Join from ads.creative:id::string to ad_creatives.id. A creative can be shared by several ads, and the table retains creatives no longer attached to any live ad, so it is wider than the ads table.
Loaded Full Refresh / Overwrite — it is a dimension, not an event log, so there is no history to preserve and each sync replaces the table.
url_tags is the analytically important column here: it carries the link between Meta media spend and Lumanu creator cost. See its description below.
| Column | Description |
|---|---|
id |
Unique Facebook creative id. Join target for ads.creative:id. |
name |
Creative name as set in Ads Manager. |
title |
Headline text rendered with the creative. |
body |
Primary body copy rendered with the creative. |
status |
Creative status (e.g. ACTIVE, DELETED). |
account_id |
Facebook ad account id that owns the creative. |
actor_id |
Id of the Page or actor the creative posts as. |
object_type |
Kind of object the creative promotes (e.g. SHARE, VIDEO, PHOTO). |
call_to_action_type |
Call-to-action button rendered on the creative (e.g. SHOP_NOW, LEARN_MORE). |
link_url |
Destination URL when set directly on the creative. Sparsely populated — most creatives carry the destination inside object_story_spec instead, so do not treat a null here as "no destination". |
url_tags |
Query-string parameters Meta appends to the destination URL, stored as a raw ampersand-delimited string (utm_source=...&utm_medium=...). Marketing sets the standard UTM set here as part of ad setup. THIS IS WHERE THE LUMANU LINK LIVES. Ads built from paid creator content also carry utm_lpid, holding the Lumanu payable's invoice_number — the join key between Meta media spend and creator/talent cost in src_lumanu.payable. Extract it with regexp_substr(lower(url_tags), 'utm_lpid=([^&]*)', 1, 1, 'e', 1). Coverage depends on Marketing following the ad-setup process, so it is present on some creatives and not others — measure it rather than assuming completeness. The same parameter reaches GA4 on click, so it also links creator cost to sessions and orders. CREATOR COST IS NOT ADDITIVE ACROSS META CAMPAIGNS. One creative purchase runs as many ads, and those ads span several campaigns, so the same utm_lpid — and the same creator cost behind it — appears under more than one campaign. Summing a per-campaign creator cost across campaigns therefore overstates what was paid, sometimes by several times. Aggregate creator cost to the Lumanu invoice_number; treat any per-Meta-campaign figure as an allocation and say so. This is expected behavior, not a tagging error: usage rights are bought so that content can run wherever it performs. |
template_url |
Templated destination URL used for dynamic creatives, when applicable. |
template_url_spec |
Object defining how the templated URL is constructed per placement. |
object_url |
URL of the object the creative promotes, for non-link creative types. |
object_id |
Id of the promoted object (e.g. Page post, app, event). |
object_story_id |
Id of the Page post backing the creative, in pageid_postid form. |
effective_object_story_id |
Resolved Page post id actually delivered, which can differ from object_story_id for dynamic or branched creatives. |
object_story_spec |
Object holding the full creative specification when the creative is defined inline rather than from an existing post — including link data, copy and the destination URL. |
asset_feed_spec |
Object defining the asset pool for dynamic creative, where Meta assembles combinations of images, headlines and bodies. |
image_url |
URL of the still image asset. |
image_hash |
Hash identifying the image asset in the account's image library. |
image_crops |
Object describing per-placement crop coordinates for the image. |
thumbnail_url |
URL of a Meta-generated thumbnail for the creative. |
thumbnail_data_url |
Inline data URI thumbnail, when Meta returns one instead of a hosted URL. |
video_id |
Id of the video asset for video creatives. |
link_og_id |
Open Graph object id associated with the destination link. |
product_set_id |
Product set id for catalog and dynamic product ads. |
applink_treatment |
How the creative handles deep links into an app versus the web destination. |
instagram_user_id |
Instagram account id the creative posts as, when delivered on Instagram. |
instagram_permalink_url |
Public permalink to the Instagram post backing the creative. |
source_instagram_media_id |
Id of the original Instagram media the creative was built from — relevant for creator content repurposed as an ad. |
effective_instagram_media_id |
Resolved Instagram media id actually delivered. |
adlabels |
Array of ad label objects attached to the creative for organization/reporting. |
_airbyte_meta |
Airbyte metadata payload for the extracted creative row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
src_tincan
Tincan application data (devices and customers).
legacy_devices
Device records from Tincan.
| Column | Description |
|---|---|
device_id |
Unique device identifier in Tincan. |
first_online |
Timestamp when the device first came online. This field is now obsolete and should not be used |
stripe_subscription_id |
Stripe subscription id associated with the device, when present. |
service_version |
Service version reported for the device. |
customer_id |
Owning Tincan customer id for the device. |
device_mac |
Device MAC address. |
extension |
Internal extension number assigned to the device. |
did_number |
Direct inward dial (DID) or outbound caller id number. |
did_number_normalized |
Normalized version of the DID number used for joins. |
caller_id |
Caller id display name for this device. |
enabled_911 |
Flag indicating whether 911 emergency calling is enabled. |
is_discoverable |
Flag indicating whether the device is discoverable in the app. |
device_name |
Human-readable device name. |
device_meta |
JSON metadata about the device. |
device_avatar |
URL or identifier for the device avatar. |
external_network |
Flag indicating whether the device is on an external network. |
status |
Raw device status value in Tincan. |
created_at |
Timestamp when the device record was created (UTC). |
updated_at |
Timestamp when the device record was last updated (UTC). |
subscription_type |
Subscription type associated with the device. |
dnd_until |
Timestamp until which do-not-disturb is active. |
dnd_status |
Current do-not-disturb status for the device. |
onboarding_complete |
Flag indicating whether device onboarding is complete. |
device_status |
Operational device status (for example, online or offline). |
device_type |
Device type (for example, desk phone or softphone). |
country |
Country associated with the device address. |
city |
City associated with the device address. |
zip_postal_code |
Zip or postal code for the device address. |
state_province |
State or province for the device address. |
street |
Primary street address for the device. |
street_secondary |
Secondary street address line for the device. |
twilio_sid |
Twilio SID for the associated phone number. |
twilio_emergency_address_sid |
Twilio emergency address SID for the device. |
emergency_address_confirmed_date |
Date when the emergency address was confirmed. |
emergency_address_validated_date |
Date when the emergency address was validated. |
legacy_cdr
Call detail records from Asterisk.
| Column | Description |
|---|---|
calldate |
Timestamp when the call started (PST). |
clid |
Caller id string from the raw CDR. |
src |
Raw source identifier for the call. |
dst |
Raw destination identifier for the call. |
dcontext |
Dialplan context for the call. |
channel |
Asterisk source channel name. |
dstchannel |
Asterisk destination channel name. |
lastapp |
Last Asterisk application executed for the call. |
lastdata |
Arguments passed to the last Asterisk application. |
duration |
Total call duration in seconds. |
billsec |
Billable seconds for the call. |
disposition |
Raw call disposition (for example, ANSWERED or NO ANSWER). |
amaflags |
Automatic Message Accounting flags. |
accountcode |
Billing account code for the call. |
uniqueid |
Unique call identifier from the CDR. |
userfield |
Free-form user field from the CDR. |
peeraccount |
Peer account associated with the call. |
linkedid |
Identifier used to group related CDR rows for the same call. |
sequence |
Sequence number of the CDR row. |
src_normalized |
Normalized version of src used for joins. |
dst_normalized_new |
Normalized version of dst used for joins. |
cdr_key_concat |
Composite key used as a stable identifier for the CDR row. |
dst_normalized |
Normalized version of dst used for joins. |
cdr
Call detail records from the new Tin Can platform — one row per call leg event. Replaces legacy_cdr (Asterisk) for calls placed through the v2 platform.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
uuid |
SIP call UUID assigned by the platform; groups all event rows belonging to the same call leg. |
call_id |
SIP Call-ID header value; identifies the SIP dialog the call belongs to. |
event_sequence |
Monotonically increasing sequence number of this event row within the call (uuid). Combined with uuid forms the primary key. |
call_started_at |
Timestamp when the call leg started (UTC). |
ingested_at |
Timestamp when the row was ingested into the raw layer (UTC). |
src |
Calling party address (typically a phone number, extension, or SIP URI user). |
dst |
Called party address (typically a phone number, extension, or SIP URI user). |
direction |
Call direction (e.g. inbound, outbound, internal). |
duration |
Total call leg duration in seconds, including ring time. |
billsec |
Billable duration in seconds — time the call was actually answered/connected. |
disposition |
Final disposition of the call leg (e.g. ANSWERED, NO ANSWER, BUSY, FAILED). |
hangup_cause |
SIP hangup cause string indicating why the call leg ended (e.g. NORMAL_CLEARING, USER_BUSY, NO_ANSWER). |
lastapp |
Last dialplan application executed for the call leg. |
dcontext |
Dialplan context the call leg was processed in. |
codec_name |
Audio codec negotiated for the call leg (e.g. PCMU, PCMA, OPUS, G722). |
audio_in_mos |
Mean Opinion Score for inbound audio quality on the call leg (typically 1.0-5.0, higher is better), populated on every connected leg. This is the HEADLINE call-quality metric and the right starting point for "how good were the calls". It saturates near 4.5, where the large majority of calls sit, so it detects bad calls rather than ranking good ones — a ceiling value means nothing was wrong, not that the signal is uninformative. For the CAUSES behind a low score — packet loss, jitter buffer, echo cancellation, Wi-Fi signal — join raw_db.thingsboard.call_telemetry on call_id. The two agree: bucketing calls by this score shows packet loss and jitter rising monotonically as it falls. |
caller_id_name |
Display name from the calling party's caller ID. |
sip_from_uri |
Full SIP From URI for the call leg. |
sip_req_uri |
Full SIP Request URI for the call leg. |
sip_req_user |
User portion of the SIP Request URI. |
sip_user_agent |
SIP User-Agent header from the originating endpoint (device/softphone identifier). |
local_address |
Local network address (IP/host) handling the call leg on the platform side. |
community
Tin Can community records — a group (e.g. school class, team, or family circle) that a subscription owns and invites members into, so that kids can call each other. One row per community.
NOT the Shopify Communities group-buy program. That is an unrelated sales campaign — school and PTO bulk orders placed under a shared discount code — and lives in raw_db.shopify.metaobject_community. The two share a name and nothing else: there is no shared key, and any join between them is wrong even if it runs. Questions about bulk-order campaigns, discount codes, order volume, tier pricing or campaign windows are always about the Shopify table, never this one.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Tin Can community id; primary key for the community. |
key |
Stable opaque string key identifying the community (used in URLs and invite links). |
city |
City the community is associated with (e.g. the school's city). |
name |
Display name of the community shown to members. |
region |
State/region the community is associated with. |
created_at |
Timestamp when the community was created (UTC). |
updated_at |
Timestamp when the community was last updated (UTC). |
archived_at |
Timestamp when the community was archived; null if still active. |
description |
Free-text description of the community shown to members. |
highest_grade |
Highest school grade level associated with the community (integer; meaningful when community_type is school-related). |
community_type |
Category of community (e.g. school, team, family); determines which grade/graduation fields apply. |
graduation_month |
Month of the year (1-12) the community's class is scheduled to graduate; populated for school-type communities. |
community_member
Tin Can community membership records — links a child/parent pair to a community, with invite and lifecycle status. One row per member per community.
The community referenced here is the in-app calling feature (src_tincan.community), NOT the Shopify Communities group-buy program in raw_db.shopify.metaobject_community. That program has no membership table; its participants are order records.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Tin Can community membership id; primary key for the membership row. |
key |
Stable opaque string key identifying the membership (used in invite URLs). |
status |
Lifecycle status of the membership (e.g. invited, joined, removed, bounced). |
joined_at |
Timestamp when the member accepted the invite and joined the community; null if not yet joined. |
bounced_at |
Timestamp when the invite email bounced; null if delivered successfully. |
created_at |
Timestamp when the membership row was created (UTC). |
removed_at |
Timestamp when the member was removed from the community; null if still a member. |
updated_at |
Timestamp when the membership row was last updated (UTC). |
archived_at |
Timestamp when the membership was archived; null if still active. |
community_id |
Foreign key to community.id — the community this membership belongs to. |
invite_token |
One-time token included in the invite link to authenticate the join flow. |
parent_email |
Email address of the parent invited to the community. |
bounce_reason |
Provider-reported reason the invite email bounced; null when no bounce occurred. |
invite_sent_at |
Timestamp when the invite email was sent to parent_email. |
child_last_name |
Last name of the child associated with this membership. |
graduation_year |
Year the child is expected to graduate (4-digit year). |
subscription_id |
Foreign key to the Tin Can subscription that owns this membership; null when the membership predates a paid subscription. |
child_first_name |
First name of the child associated with this membership. |
parent_last_name |
Last name of the parent associated with this membership. |
parent_first_name |
First name of the parent associated with this membership. |
account
Tin Can account records — top-level customer account in the new Tin Can platform. One row per account.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique account id in Tin Can. |
key |
External-facing key (slug/uuid) for the account. |
name |
Human-readable account name. |
time_zone |
IANA time zone for the account. |
created_at |
Timestamp when the account record was created (UTC). |
updated_at |
Timestamp when the account record was last updated (UTC). |
archived_at |
Timestamp when the account was archived; null if active. |
customer_id |
Legacy Tin Can customer id this account is linked to. |
stripe_customer_id |
Stripe customer id linked to this Tin Can account. |
shopify_customer_id |
Shopify customer id linked to this Tin Can account. |
address
Tin Can address records used for billing, shipping, and emergency address purposes.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique address id in Tin Can. |
zip |
Postal code for the address. |
city |
City name for the address. |
name |
Friendly name or label for the address (e.g. Home, Office). |
state |
State or province for the address. |
country |
Country for the address. |
address1 |
Primary street address line. |
address2 |
Secondary street address line (apt, suite, unit). |
created_at |
Timestamp when the address record was created (UTC). |
updated_at |
Timestamp when the address record was last updated (UTC). |
external_id |
External system identifier (e.g. Twilio address SID) for the address. |
contact
Tin Can contact records — address book entries belonging to a subscription.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique contact id in Tin Can. |
key |
External-facing key (slug/uuid) for the contact. |
name |
Display name of the contact. |
created_at |
Timestamp when the contact was created (UTC). |
updated_at |
Timestamp when the contact was last updated (UTC). |
archived_at |
Timestamp when the contact was archived; null if active. |
subscription_id |
Tin Can subscription id this contact belongs to. |
contact_number
Phone numbers attached to Tin Can contacts. One row per (contact, phone number).
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique contact number id. |
key |
External-facing key (slug/uuid) for the contact number. |
label |
Label for the number (e.g. mobile, home, work). |
favorite |
Indicator whether the number is marked as a favorite. |
group_id |
Group id the number belongs to, when grouped. |
dial_plan |
Dial plan associated with the number. |
contact_id |
Tin Can contact id this number belongs to. |
created_at |
Timestamp when the row was created (UTC). |
updated_at |
Timestamp when the row was last updated (UTC). |
archived_at |
Timestamp when the row was archived; null if active. |
phone_number |
The phone number (E.164 format when normalized). |
request_status |
Status of any provisioning or request flow for the number. |
device
Tin Can device records — physical or virtual phone devices in the new Tin Can platform.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique device id in Tin Can. |
key |
External-facing key (slug/uuid) for the device. |
name |
Human-readable device name. |
avatar |
URL or identifier for the device avatar/icon. |
domain |
SIP/PBX domain the device is registered to. |
created_at |
Timestamp when the device record was created (UTC). |
routing_id |
Internal routing id used to address the device for call routing. |
updated_at |
Timestamp when the device record was last updated (UTC). |
archived_at |
Timestamp when the device was archived; null if active. |
device_type |
Device type (e.g. desk_phone, softphone, ata). |
mac_address |
MAC address of the device. |
gdms_account_id |
GDMS (Grandstream Device Management System) account id, when applicable. |
subscription_id |
Tin Can subscription id the device belongs to. |
thingsboard_device_id |
ThingsBoard device id used for telemetry, when applicable. |
emergency_address_status
Status records for emergency (E911) address registration with carriers.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique emergency address status id. |
status |
Current E911 registration status. Values are registered, unregistered, failed and pending_removal. Surfaced as emergency_address_status on dim_device. |
created_at |
Timestamp when the status row was created (UTC). |
updated_at |
Timestamp when the status row was last updated (UTC). |
last_checked |
Timestamp when the address registration was most recently checked. |
error_message |
Error message returned by the carrier, when registration failed. |
last_notified |
Timestamp when the customer was most recently notified about the status. |
subscription_id |
Tin Can subscription id the emergency address belongs to. One row per subscription — this is the only join in dim_device not made on a primary key, so the uniqueness test below is what keeps a second status row from silently doubling every device on that line. |
phone_number_sid |
Twilio phone number SID associated with the emergency address. |
twilio_address_sid |
Twilio address SID currently registered for emergency calling. |
new_twilio_address_sid |
New Twilio address SID pending registration, when applicable. |
subscription
Tin Can subscription records — billable units in the new Tin Can platform, typically one per phone line.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique subscription id in Tin Can. |
key |
External-facing key (slug/uuid) for the subscription. |
is_v2 |
True if the subscription is on the v2 (new) Tin Can platform. |
caller_id |
Outbound caller id name displayed for calls from this subscription. |
dnd_until |
Timestamp until which do-not-disturb is active for the subscription. |
account_id |
Tin Can account id this subscription belongs to. |
created_at |
Timestamp when the subscription was created (UTC). |
updated_at |
Timestamp when the subscription was last updated (UTC). |
archived_at |
Timestamp when the subscription was archived; null if active. |
dnd_enabled |
True if do-not-disturb is currently enabled. |
internal_id |
Internal numeric id used by downstream systems. |
phone_number |
Phone number (E.164) assigned to the subscription. |
twilio_phone_id |
Twilio phone number SID backing the subscription. |
emergency_enabled |
True if emergency (E911) calling is enabled for the subscription. |
onboarding_complete |
True if onboarding has been completed for the subscription. |
emergency_address_id |
Tin Can address id used as the registered emergency address. |
stripe_subscription_id |
Stripe subscription id linked to this Tin Can subscription, when present. |
time_condition
Time-based routing conditions (business-hours rules) defined per subscription.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique time condition row id. |
day |
Day of the week (0–6) the condition applies to. |
key |
External-facing key for the time condition. |
name |
Human-readable name of the time condition. |
type |
Condition type (e.g. business_hours, after_hours, holiday). |
active |
True if the time condition is currently active. |
end_time |
End time-of-day for the condition window. |
available |
True if availability is on (vs. off) during the window. |
created_at |
Timestamp when the row was created (UTC). |
start_time |
Start time-of-day for the condition window. |
updated_at |
Timestamp when the row was last updated (UTC). |
archived_at |
Timestamp when the row was archived; null if active. |
subscription_id |
Tin Can subscription id this condition belongs to. |
tincan_user
Tin Can user records — individual people with login access to a Tin Can account.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Unique Tin Can user id. |
key |
External-facing key (slug/uuid) for the user. |
email |
User email address. |
phone |
User phone number. |
is_admin |
True if the user has admin privileges on their account. |
last_name |
User last name. |
time_zone |
IANA time zone for the user. |
account_id |
Tin Can account id the user belongs to. |
created_at |
Timestamp when the user record was created (UTC). |
first_name |
User first name. |
updated_at |
Timestamp when the user record was last updated (UTC). |
archived_at |
Timestamp when the user was archived; null if active. |
sms_notifications |
True if the user has SMS notifications enabled. |
email_notifications |
True if the user has email notifications enabled. |
user_subscription
Many-to-many link between Tin Can users and subscriptions, with permissions.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
user_id |
Tin Can user id participating in the subscription. |
created_at |
Timestamp when the link row was created (UTC). |
updated_at |
Timestamp when the link row was last updated (UTC). |
archived_at |
Timestamp when the link was archived; null if active. |
permissions |
Permissions string (or JSON) granting capabilities to the user on the subscription. |
subscription_id |
Tin Can subscription id the user has access to. |
src_history
Historical call logs and participant data from FreePBX, Twilio, and related systems. Obsolete - do not use directly for reporting.
bi_call_logs_fusion_freepbx
Fused call logs from FreePBX for BI. Obsolete - do not use directly for reporting.
| Column | Description |
|---|---|
uniqueid |
Unique call identifier from the fused FreePBX logs. |
call_date |
Timestamp of the call. |
call_from |
Source identifier for the call. |
tc_call_from_name |
Human-readable label for call_from. |
call_is_from_tin_can |
True if call_from corresponds to a Tincan device or DID. |
dest_id_raw |
Raw destination identifier used for routing. |
dest_number_raw |
Normalized destination phone number. |
call_to |
Destination identifier for the call. |
tc_call_to_name |
Human-readable label for call_to. |
call_is_to_tin_can |
True if call_to corresponds to a Tincan device or DID. |
call_classification |
Type of call (for example, can_to_can, can_to_external, or external_to_can). |
is_voicemail_check |
True if the call was a voicemail check. |
disposition_cleaned |
Cleaned call disposition. |
call_was_answered |
True if the call had a human conversation. |
talk_time_corrected |
Billable talk time for the call in seconds. |
left_voicemail |
True if the caller left a voicemail. |
from_shopify_user_id |
Shopify user id for the caller, when available. |
to_shopify_user_id |
Shopify user id for the callee, when available. |
from_customer_email |
Customer email address for the caller, when available. |
to_customer_email |
Customer email address for the callee, when available. |
formatted_twilio_external_to_can_calls
Formatted Twilio external-to-Canada call records. Obsolete - do not use directly for reporting.
| Column | Description |
|---|---|
uniqueid |
Unique call identifier for the Twilio call. |
call_date |
Timestamp of the call. |
call_from |
Source phone number for the call. |
tc_call_from_name |
Human-readable label for call_from. |
call_is_from_tin_can |
True if call_from corresponds to a Tincan device or DID. |
dest_id_raw |
Raw destination identifier used for routing. |
dest_number_raw |
Normalized destination phone number. |
call_to |
Destination phone number for the call. |
tc_call_to_name |
Human-readable label for call_to. |
call_is_to_tin_can |
True if call_to corresponds to a Tincan device or DID. |
call_classification |
Type of call (for example, can_to_can, can_to_external, or external_to_can). |
is_voicemail_check |
True if the call was a voicemail check. |
disposition_cleaned |
Cleaned call disposition. |
call_was_answered |
True if the call had a human conversation. |
talk_time_corrected |
Billable talk time for the call in seconds. |
left_voicemail |
True if the caller left a voicemail. |
from_shopify_user_id |
Shopify user id for the caller, when available. |
to_shopify_user_id |
Shopify user id for the callee, when available. |
from_customer_email |
Customer email address for the caller, when available. |
to_customer_email |
Customer email address for the callee, when available. |
cdr_key_concat |
Composite key used as a stable identifier for the Twilio CDR row. |
all_dial_numbers
All dialed phone numbers. Obsolete - do not use directly for reporting.
| Column | Description |
|---|---|
dial_number |
Historical dial number used as a device identifier. |
domain_number |
Domain or customer number associated with the dial number. |
extension_number |
Internal extension number mapped to the dial number. |
caller_id_name |
Display name associated with the dial number. |
install_date |
Date the dial number was first installed or became active. |
outbound_caller_id_number |
Outbound caller id number associated with the dial number. |
is_tin_can_internal |
True if the dial number is classified as an internal Tin Can number. |
view_tc_participant_slice_daily_summary
Daily summary of Tincan participant slice metrics. Obsolete - do not use directly for reporting.
| Column | Description |
|---|---|
call_day |
Date of the calls included in the daily summary. |
day_of_week |
Day of week for call_day. |
this_participant_name |
Participant name for the device or dial number. |
this_participant_dial_number |
Participant dial number identifier. |
total_talk_duration |
Total talk time for the participant on the given day. |
successful_calls_participated_in |
Count of answered calls the participant took part in on the given day. |
calls_made |
Outbound calls placed by the participant on the given day. |
successful_calls_made |
Answered outbound calls by the participant on the given day. |
calls_received |
Inbound calls received by the participant on the given day. |
successful_calls_received |
Answered inbound calls received by the participant on the given day. |
num_interlocutors |
Distinct counterparties the participant interacted with on the given day. |
num_external_calls |
Number of calls between the participant and external numbers on the given day. |
num_successful_external_calls |
Answered calls between the participant and external numbers on the given day. |
num_voicemails_left |
Number of voicemails left by the participant on the given day. |
num_voicemails_received |
Number of voicemails received by the participant on the given day. |
diff_from_first_call_day |
Days since the participant’s first call day. |
participant_slice_underlying
Underlying participant slice detail for aggregations. Obsolete - do not use directly for reporting.
| Column | Description |
|---|---|
this_participant_dial_number |
Participant dial number identifier. |
this_participant_name |
Participant name for the dial number. |
call_day |
Date of the call. |
num_entries_forcall |
Number of participant entries associated with the call. |
uniqueid |
Unique call identifier. |
call_date |
Timestamp of the call. |
call_from |
Source identifier for the call. |
tc_call_from_name |
Human-readable label for call_from. |
call_is_from_tin_can |
True if call_from corresponds to a Tincan device or DID. |
dest_id_raw |
Raw destination identifier used for routing. |
dest_number_raw |
Normalized destination phone number. |
call_to |
Destination identifier for the call. |
tc_call_to_name |
Human-readable label for call_to. |
call_is_to_tin_can |
True if call_to corresponds to a Tincan device or DID. |
call_classification |
Type of call (for example, can_to_can, can_to_external, or external_to_can). |
is_voicemail_check |
True if the call was a voicemail check. |
disposition_cleaned |
Cleaned call disposition. |
call_was_answered |
True if the call had a human conversation. |
talk_time_corrected |
Billable talk time for the call in seconds. |
left_voicemail |
True if the caller left a voicemail. |
cdr_key_concat |
Composite key used as a stable identifier for the underlying CDR row. |
twilio_external_to_can_calls
Raw, un-formatted twilio call log records mapping external phone calls to TinCan accounts. Obsolete - do not use directly for reporting.
| Column | Description |
|---|---|
uniqueid |
Unique identifier for the call record. |
call_date |
Timestamp when the call took place. |
call_from |
Phone number the call originated from (numeric form). |
tc_call_from_name |
TinCan account/contact name associated with the originating number, if known. |
call_is_from_tin_can |
True if the originating number belongs to a TinCan device/account. |
dest_id_raw |
Raw destination identifier as captured from Twilio. |
dest_number_raw |
Raw destination phone number as captured from Twilio. |
call_to |
Phone number the call was placed to. |
tc_call_to_name |
TinCan account/contact name associated with the destination number, if known. |
call_is_to_tin_can |
True if the destination number belongs to a TinCan device/account. |
call_classification |
High-level classification of the call (e.g. inbound, outbound, internal). |
is_voicemail_check |
True if the call was a voicemail check rather than a conversation. |
disposition_cleaned |
Cleaned disposition value indicating how the call ended (answered, busy, no-answer, etc.). |
call_was_answered |
Indicator of whether the call was answered. |
talk_time_corrected |
Talk-time duration in seconds, corrected for known data anomalies. |
left_voicemail |
Indicates whether the caller left a voicemail. |
src_front
Front shared inbox / customer messaging platform data, loaded into RAW_DB.FRONT. Activity-level events and message-level facts used to model agent productivity and conversation quality.
INACTIVE FEED. Front was retired and support data moved to Zendesk (src_zendesk); these tables are frozen and retained for historical reporting only. Nothing new lands here -- for current support reporting use src_zendesk. Freshness is exempted on both tables for that reason.
events
Activity-level event log from Front. One row per agent action, message movement, or workflow event on a conversation, useful for time-in-state and activity attribution analysis.
| Column | Description |
|---|---|
activity_id |
Unique identifier for the activity event. |
type |
Type of activity (e.g. message_received, message_sent, assigned, archived). |
source |
Source channel or system that generated the activity. |
message_id |
Identifier of the message associated with the activity, when applicable. |
conversation_id |
Identifier of the Front conversation the activity belongs to. |
ticket_ids |
List of ticket identifiers linked to the conversation at the time of the activity. |
segment |
Segment number within the conversation (Front splits long-running conversations into segments). |
segment_start |
Start timestamp of the conversation segment containing this activity. |
segment_end |
End timestamp of the conversation segment containing this activity. |
direction |
Direction of the message activity (inbound or outbound). |
status |
Conversation status as of the most recent sync. |
status_at_activity_time |
Conversation status at the moment the activity occurred. |
inbox |
Name of the Front inbox the conversation lives in. |
inbox_api_id |
API identifier of the inbox. |
inbox_at_activity_time |
Inbox name at the time the activity occurred. |
inbox_api_ids_at_activity_time |
All inbox API ids associated with the conversation at activity time. |
previous_inbox_ids |
Inboxes the conversation had previously been routed to. |
message_date |
Timestamp of the message related to this activity. |
autoreply |
Indicator (1/0) for whether the activity was an automated reply. |
reaction_time |
Time (seconds) from message receipt to first agent reaction. |
total_reply_time |
Total reply time (seconds) accumulated across the conversation segment. |
handle_time |
Active agent handle time on the conversation, in seconds. |
response_time |
Time to respond to the customer, in seconds. |
ticket_resolution_time |
Time to resolve the linked ticket, in seconds. |
ticket_replies_to_resolution |
Number of replies that occurred before the ticket was resolved. |
attributed_to |
Teammate the activity is attributed to for reporting. |
assignee |
Teammate currently assigned to the conversation. |
author |
Teammate who authored the activity (e.g. the agent who sent a message). |
contact_name |
Name of the external contact (customer) on the conversation. |
contact_handle |
Handle (email/phone/etc.) of the external contact. |
account_names |
Account names associated with the contact. |
message_from |
Sender of the underlying message. |
message_to |
Primary recipient(s) of the underlying message. |
cc |
Carbon-copy recipients on the message. |
bcc |
Blind carbon-copy recipients on the message. |
extract |
Plain-text extract of the message body for previewing. |
tags |
Tags currently applied to the conversation. |
tag_api_ids |
API identifiers of the tags currently applied. |
tags_at_activity_time |
Tags that were applied at the moment of the activity. |
tag_api_ids_at_activity_time |
Tag API identifiers at activity time. |
tag_application_duration |
Duration (seconds) the tag had been applied. |
activity_api_id |
API identifier of the activity event. |
message_api_id |
API identifier of the related message. |
comment_api_id |
API identifier of the related internal comment, if any. |
conversation_api_id |
API identifier of the conversation. |
message_original_id |
Original (upstream) identifier of the message before Front renumbered it. |
new_conversation |
Indicator (1/0) for whether the activity opened a new conversation. |
first_response |
Indicator (1/0) for whether the activity was the first agent response on the conversation. |
business_hours |
Indicator (1/0) for whether the activity occurred within configured business hours. |
subject |
Subject line of the related message / conversation. |
account_name |
Single account name associated with the conversation. |
survey_rating |
CSAT/survey rating value attached to the conversation, when available. |
survey_comment |
Free-text comment from the customer survey, when available. |
segment_closed |
Indicator (1/0) that the conversation segment closed at this activity. |
segment_contains_messages |
Indicator (1/0) that the segment contains at least one message (vs only system events). |
last_segment_activity |
Timestamp of the most recent activity in the segment. |
added_tag |
Name of the tag added by this activity, if applicable. |
added_tag_api_id |
API id of the tag added by this activity. |
removed_tag |
Name of the tag removed by this activity, if applicable. |
removed_tag_api_id |
API id of the tag removed by this activity. |
segment_cumulative_teammates |
Cumulative list of teammates that touched the segment. |
messages
Message-level fact table from Front. One row per individual message, with reply-time, handle-time, and routing context for SLA and productivity reporting.
| Column | Description |
|---|---|
message_id |
Unique identifier of the Front message. |
conversation_id |
Identifier of the conversation the message belongs to. |
ticket_ids |
Linked ticket identifiers, if any. |
segment |
Conversation segment number this message falls in. |
direction |
Direction of the message (inbound or outbound). |
status |
Conversation status snapshot. |
inbox |
Inbox the message landed in. |
inbox_api_id |
API identifier of the inbox. |
inbox_at_activity_time |
Inbox name at the time the message was processed. |
inbox_api_ids_at_activity_time |
Inbox API ids at the time the message was processed. |
message_date |
Timestamp the message was sent or received. |
autoreply |
Indicator (1/0) for automated replies. |
reaction_time |
Time (seconds) until the first agent reaction. |
total_reply_time |
Total reply time accumulated, in seconds. |
handle_time |
Agent handle time, in seconds. |
response_time |
Time to respond, in seconds. |
attributed_to |
Teammate attributed for reporting. |
assignee |
Currently assigned teammate. |
author |
Teammate who authored the message (for outbound). |
contact_name |
External contact name. |
contact_handle |
External contact handle (email/phone/etc.). |
account_names |
Account names associated with the contact. |
message_from |
Sender of the message. |
message_to |
Primary recipient(s). |
cc |
CC recipients. |
bcc |
BCC recipients. |
extract |
Plain-text extract for preview. |
tags |
Tags applied to the conversation. |
tag_api_ids |
Tag API ids. |
message_api_id |
API identifier of the message. |
conversation_api_id |
API identifier of the conversation. |
new_conversation |
Indicator (1/0) that this message opened a new conversation. |
first_response |
Indicator (1/0) that this was the first agent response. |
business_hours |
Indicator (1/0) that the message occurred during business hours. |
subject |
Message subject line. |
segment_start |
Start timestamp of the conversation segment. |
segment_end |
End timestamp of the conversation segment. |
segment_closed |
Indicator (1/0) that the segment closed. |
last_segment_activity |
Timestamp of the most recent activity in the segment. |
segment_cumulative_teammates |
Cumulative list of teammates that participated in the segment. |
src_klaviyo
Klaviyo email/SMS marketing platform data loaded by Airbyte into RAW_DB.KLAVIYO. Used for marketing-attribution and customer-engagement reporting.
profiles
Klaviyo customer / subscriber profiles. One row per profile with email, SMS, and segment-membership attributes stored as nested objects.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
Klaviyo profile identifier. |
type |
Resource type as returned by the Klaviyo API (typically profile). |
links |
API hypermedia links payload for the profile resource. |
updated |
Timestamp the profile was last updated in Klaviyo. |
segments |
Nested object listing the Klaviyo segments the profile belongs to. |
attributes |
Nested object containing all profile attributes (email, phone, location, custom properties, etc.). |
relationships |
Nested object describing related Klaviyo resources (lists, segments). |
src_tiktok_ads
TikTok Ads platform data loaded by Airbyte into RAW_DB.TIKTOK_ADS. Includes campaign/ad-group/ad dimension tables and daily reports across the advertiser, campaign, ad-group, and ad levels for paid-marketing reporting.
campaigns
TikTok ad campaign dimension table. One row per campaign with budget, objective, and status attributes.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
budget |
Campaign budget in advertiser currency. |
bid_type |
Bidding strategy used by the campaign. |
roas_bid |
Target return-on-ad-spend bid, when applicable. |
objective |
Campaign objective (legacy field). |
budget_mode |
Budget mode (e.g. daily, lifetime). |
campaign_id |
TikTok campaign identifier. |
create_time |
Timestamp the campaign was created. |
modify_time |
Timestamp the campaign was last modified. |
advertiser_id |
TikTok advertiser account id that owns the campaign. |
campaign_name |
Campaign display name. |
campaign_type |
Campaign type classification. |
deep_bid_type |
Deep-event bid type used for app/web conversion campaigns. |
objective_type |
Modern objective type field (replaces legacy objective). |
is_new_structure |
True if the campaign uses the new TikTok Ads campaign structure. |
operation_status |
Operational status (enabled, paused, etc.) controlled by the advertiser. |
rf_campaign_type |
Reach & frequency campaign type, if applicable. |
secondary_status |
Secondary status (TikTok-side state such as in-review, rejected). |
optimization_goal |
Optimization goal configured for the campaign. |
app_promotion_type |
App-promotion type for app install campaigns. |
budget_optimize_on |
True if campaign budget optimization (CBO) is enabled. |
is_search_campaign |
True if the campaign targets TikTok search inventory. |
split_test_variable |
Variable being split-tested across ad groups, if any. |
is_smart_performance_campaign |
True if the campaign uses TikTok Smart Performance Campaign automation. |
ad_groups
TikTok ad group (adgroup) dimension table. One row per ad group with bidding, targeting, and scheduling attributes.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
app_id |
Promoted app identifier, when applicable. |
budget |
Ad-group budget in advertiser currency. |
gender |
Gender targeting setting. |
pacing |
Delivery pacing strategy. |
actions |
Configured action targeting payload. |
is_hfss |
True if the ad group is flagged as HFSS (high-fat/salt/sugar) per regional regulation. |
isp_ids |
ISP targeting list. |
package |
Promoted app package name. |
app_type |
App platform type. |
bid_type |
Bid type used for the ad group. |
carriers |
Mobile carrier targeting list. |
keywords |
Targeting keywords (comma-delimited). |
pixel_id |
TikTok pixel id used for conversion tracking. |
roas_bid |
Target return-on-ad-spend bid. |
bid_price |
Bid price in advertiser currency. |
feed_type |
Catalog feed type for shopping ads. |
frequency |
Frequency cap value. |
languages |
Language targeting list. |
adgroup_id |
TikTok ad group identifier. |
age_groups |
Age-group targeting list. |
catalog_id |
Catalog id used for product ads. |
dayparting |
Dayparting (hour-of-day/day-of-week) schedule string. |
placements |
Placement targeting list (e.g. TikTok, Pangle). |
action_days |
Action lookback window in days. |
budget_mode |
Budget mode (daily/lifetime). |
campaign_id |
Parent campaign id. |
carrier_ids |
Carrier targeting ids. |
category_id |
Product/content category id. |
create_time |
Timestamp the ad group was created. |
modify_time |
Timestamp the ad group was last modified. |
zipcode_ids |
Zip-code targeting ids. |
adgroup_name |
Ad group display name. |
audience_ids |
Custom audience targeting ids. |
deep_cpa_bid |
Deep-event CPA bid value. |
location_ids |
Geographic location targeting ids. |
advertiser_id |
Owning advertiser id. |
audience_rule |
Rule-based audience definition payload. |
audience_type |
Audience type classifier. |
billing_event |
Billing event used for delivery (CPC, CPM, etc.). |
campaign_name |
Parent campaign name (denormalized). |
deep_bid_type |
Deep-event bid type. |
delivery_mode |
Delivery mode setting. |
network_types |
Network type targeting list. |
schedule_type |
Schedule type (e.g. SCHEDULE_FROM_NOW, SCHEDULE_START_END). |
video_actions |
Configured video action targeting. |
ios_quota_type |
iOS quota type for SKAdNetwork tracking. |
placement_type |
Placement type (automatic vs manual). |
product_set_id |
Product set id for catalog ads. |
promotion_type |
Promotion type configured for the ad group. |
schedule_infos |
Detailed schedule definition payload. |
share_disabled |
True if sharing of the creative is disabled. |
spending_power |
Spending-power audience targeting. |
statistic_type |
Statistic type used for the ad group. |
ios14_targeting |
iOS14 targeting setting. |
min_ios_version |
Minimum required iOS version for the targeted audience. |
purchased_reach |
Purchased reach (RF campaigns). |
app_download_url |
App download URL for app-install ads. |
bid_display_mode |
Bid display mode used by the UI. |
comment_disabled |
True if comments are disabled on the ad creatives. |
device_model_ids |
Device model targeting ids. |
household_income |
Household-income targeting tiers. |
ios14_quota_type |
iOS14 quota type setting. |
is_new_structure |
True if using the new ad group structure. |
operation_status |
Advertiser-controlled status (enabled/paused/etc.). |
rf_estimated_cpr |
Estimated cost-per-reach for RF campaigns. |
scheduled_budget |
Scheduled budget value. |
secondary_status |
TikTok-side secondary status. |
brand_safety_type |
Brand-safety setting. |
conversion_window |
Conversion attribution window. |
operating_systems |
OS targeting list. |
optimization_goal |
Optimization goal for delivery. |
rf_purchased_type |
Purchase type for RF campaigns. |
schedule_end_time |
Scheduled end timestamp. |
contextual_tag_ids |
Contextual tag targeting ids. |
cpv_video_duration |
CPV video-duration setting. |
frequency_schedule |
Frequency cap schedule (days). |
next_day_retention |
Next-day retention optimization metric. |
optimization_event |
Conversion event optimized toward. |
action_category_ids |
Action-category targeting ids. |
device_price_ranges |
Device price-range targeting. |
min_android_version |
Minimum required Android version for targeting. |
schedule_start_time |
Scheduled start timestamp. |
skip_learning_phase |
Indicator for skipping the learning phase. |
targeting_expansion |
Targeting expansion / Smart Targeting payload. |
brand_safety_partner |
Third-party brand-safety partner identifier. |
conversion_bid_price |
Target conversion bid price. |
interest_keyword_ids |
Interest-keyword targeting ids. |
purchased_impression |
Purchased impression count for RF campaigns. |
excluded_audience_ids |
Excluded audience targeting ids. |
interest_category_ids |
Interest category targeting ids. |
search_result_enabled |
True if the ad group is enabled to serve in TikTok search results. |
auto_targeting_enabled |
True if automatic targeting expansion is enabled. |
blocked_pangle_app_ids |
Pangle app ids blocked from delivery. |
category_exclusion_ids |
Category exclusion ids. |
creative_material_mode |
Creative material mode (e.g. custom, smart). |
promotion_website_type |
Promoted website type for traffic ads. |
rf_estimated_frequency |
Estimated frequency for RF campaigns. |
split_test_adgroup_ids |
Sibling ad group ids in a split test. |
excluded_custom_actions |
Custom event exclusions. |
included_custom_actions |
Custom event inclusions. |
video_download_disabled |
True if video download is disabled for the creative. |
catalog_authorized_bc_id |
Business Center id authorized to use the catalog. |
inventory_filter_enabled |
True if inventory filtering is enabled. |
secondary_optimization_event |
Secondary optimization event for two-stage bidding. |
is_smart_performance_campaign |
True if the parent campaign is a Smart Performance Campaign. |
shopping_ads_retargeting_type |
Retargeting type for shopping ads. |
adgroup_app_profile_page_state |
App-profile-page state for shopping ads. |
excluded_pangle_audience_package_ids |
Pangle audience packages excluded. |
included_pangle_audience_package_ids |
Pangle audience packages included. |
ads
TikTok ad creative dimension table. One row per ad with creative payload, landing page, and tracking configuration.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
ad_id |
TikTok ad identifier. |
is_aco |
True if this is an Automated Creative Optimization (ACO) ad. |
ad_name |
Ad display name. |
ad_text |
Primary ad text/copy. |
card_id |
TikTok card id used in the creative. |
page_id |
TikTok page id used in the creative. |
sku_ids |
List of product SKU ids surfaced by the ad. |
ad_texts |
List of ad text variants for ACO. |
app_name |
Promoted app name. |
deeplink |
Deeplink URL for the ad. |
music_id |
Music asset id used in the creative. |
video_id |
Video asset id used in the creative. |
ad_format |
Ad format (single video, carousel, etc.). |
image_ids |
Image asset ids used. |
adgroup_id |
Parent ad-group id. |
catalog_id |
Catalog id for product ads. |
image_mode |
Image mode (e.g. single image, carousel). |
utm_params |
UTM parameter overrides for landing-page tracking. |
campaign_id |
Parent campaign id. |
create_time |
Timestamp the ad was created. |
identity_id |
TikTok identity id used to publish the ad. |
modify_time |
Timestamp the ad was last modified. |
adgroup_name |
Parent ad-group name (denormalized). |
display_name |
Display name shown to viewers. |
phone_number |
Phone number surfaced in the creative (lead-gen ads). |
playable_url |
Playable creative URL. |
advertiser_id |
Owning advertiser id. |
campaign_name |
Parent campaign name (denormalized). |
creative_type |
Creative type classifier. |
deeplink_type |
Deeplink type configuration. |
fallback_type |
Deeplink fallback type. |
identity_type |
Identity type used to publish the ad. |
call_to_action |
CTA text shown on the ad. |
dynamic_format |
Dynamic ad format setting. |
item_group_ids |
Catalog item-group ids surfaced. |
product_set_id |
Product set id for catalog ads. |
tiktok_item_id |
TikTok item id linked to the ad. |
disclaimer_text |
Disclaimer text payload. |
disclaimer_type |
Disclaimer type setting. |
tracking_app_id |
Tracking app id for measurement. |
dark_post_status |
Dark-post (unpublished) status. |
is_new_structure |
True if the ad uses the new TikTok ads structure. |
item_duet_status |
Duet permission setting for the ad. |
landing_page_url |
Primary landing page URL. |
operation_status |
Advertiser-controlled status. |
premium_badge_id |
Premium badge id displayed on the ad. |
secondary_status |
TikTok-side secondary status. |
call_to_action_id |
CTA identifier when using CTA library. |
landing_page_urls |
List of landing page URLs (multi-url ads). |
phone_region_code |
Region code for the displayed phone number. |
profile_image_url |
Profile image URL displayed alongside the ad. |
showcase_products |
Showcase products payload for shopping ads. |
tracking_pixel_id |
Tracking pixel id used for conversion tracking. |
vast_moat_enabled |
True if MOAT VAST tracking is enabled. |
click_tracking_url |
Third-party click tracking URL. |
item_stitch_status |
Stitch permission setting. |
optimization_event |
Optimization event configured at the ad level. |
avatar_icon_web_uri |
Avatar icon web URI for the identity. |
creative_authorized |
True if the creative is authorized for use. |
dynamic_destination |
Dynamic destination setting. |
carousel_image_index |
Index of the carousel image being referenced. |
tiktok_page_category |
TikTok page category classification. |
viewability_vast_url |
Viewability VAST tracking URL. |
brand_safety_vast_url |
Brand-safety VAST tracking URL. |
product_specific_type |
Product-specific creative type. |
shopping_deeplink_type |
Shopping deeplink type. |
impression_tracking_url |
Impression tracking URL. |
vertical_video_strategy |
Vertical video strategy setting. |
branded_content_disabled |
True if branded content is disabled. |
identity_authorized_bc_id |
Business Center id authorized to use the identity. |
phone_region_calling_code |
Calling code for the displayed phone number. |
disclaimer_clickable_texts |
Clickable disclaimer text payload. |
promotional_music_disabled |
True if promotional music is disabled. |
shopping_ads_deeplink_type |
Shopping ads deeplink type. |
shopping_ads_fallback_type |
Shopping ads deeplink fallback type. |
viewability_postbid_partner |
Post-bid viewability measurement partner. |
brand_safety_postbid_partner |
Post-bid brand-safety measurement partner. |
shopping_ads_video_package_id |
Shopping ads video package id. |
tracking_offline_event_set_ids |
Offline event set ids used for tracking. |
campaigns_reports_daily
TikTok campaign-level daily performance report. One row per campaign per day, with metrics and dimensions returned as nested objects from the TikTok Reporting API.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
ad_id |
Ad id (typically null at the campaign-report grain). |
metrics |
Nested object containing the metric values (impressions, clicks, spend, conversions, etc.) returned by the TikTok Reporting API. |
adgroup_id |
Ad-group id (typically null at the campaign-report grain). |
dimensions |
Nested object containing the dimensions used for the report. |
campaign_id |
Campaign id this row reports on. |
advertiser_id |
Owning advertiser id. |
stat_time_day |
Reporting day (truncated to day). |
stat_time_hour |
Reporting hour, when hourly reports are pulled. |
ad_groups_reports_daily
TikTok ad-group-level daily performance report. One row per ad group per day.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
ad_id |
Ad id (typically null at the ad-group-report grain). |
metrics |
Nested object containing performance metrics for the ad group. |
adgroup_id |
Ad-group id this row reports on. |
dimensions |
Nested object containing the report dimensions. |
campaign_id |
Parent campaign id. |
advertiser_id |
Owning advertiser id. |
stat_time_day |
Reporting day. |
stat_time_hour |
Reporting hour, when hourly reports are pulled. |
ads_reports_daily
TikTok ad-level daily performance report. One row per ad per day, used for creative-level performance analysis.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
ad_id |
Ad id this row reports on. |
metrics |
Nested object containing performance metrics for the ad. |
adgroup_id |
Parent ad-group id. |
dimensions |
Nested object containing the report dimensions. |
campaign_id |
Parent campaign id. |
advertiser_id |
Owning advertiser id. |
stat_time_day |
Reporting day. |
stat_time_hour |
Reporting hour, when hourly reports are pulled. |
advertisers_reports_daily
TikTok advertiser-level (account-level) daily performance report. One row per advertiser per day, used for top-level account spend and performance reporting.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
ad_id |
Ad id (null at the advertiser-report grain). |
metrics |
Nested object containing account-level metrics for the day. |
adgroup_id |
Ad-group id (null at the advertiser-report grain). |
dimensions |
Nested object containing the report dimensions. |
campaign_id |
Campaign id (null at the advertiser-report grain). |
advertiser_id |
Advertiser account id this row reports on. |
stat_time_day |
Reporting day. |
stat_time_hour |
Reporting hour, when hourly reports are pulled. |
src_zendesk
Zendesk Support data loaded by Airbyte into RAW_DB.ZENDESK. Includes core ticketing tables (tickets, comments, audits, metrics) plus reference dimensions (users, organizations, brands, groups, tags, ticket fields/forms) for customer-support reporting.
brands
Zendesk brand dimension table. One row per brand configured in the account.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
id |
Zendesk brand identifier. |
url |
API URL for the brand resource. |
logo |
Logo asset payload. |
name |
Brand display name. |
active |
True if the brand is active. |
default |
True if this is the account's default brand. |
brand_url |
Public-facing brand URL. |
subdomain |
Zendesk subdomain assigned to the brand. |
created_at |
Timestamp the brand was created. |
is_deleted |
True if the brand has been deleted. |
updated_at |
Timestamp the brand was last updated. |
host_mapping |
Host-mapping CNAME, when configured. |
has_help_center |
True if a Help Center is enabled for the brand. |
ticket_form_ids |
List of ticket form ids associated with the brand. |
help_center_state |
Help Center publication state (enabled, restricted, etc.). |
signature_template |
Default agent signature template for the brand. |
groups
Zendesk agent group dimension. One row per group used to route tickets to teams of agents.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
id |
Zendesk group identifier. |
url |
API URL for the group resource. |
name |
Group display name. |
default |
True if this is the default group. |
deleted |
True if the group has been deleted. |
is_public |
True if the group is public. |
created_at |
Timestamp the group was created. |
updated_at |
Timestamp the group was last updated. |
description |
Group description. |
organizations
Zendesk organization dimension. One row per customer organization linked to users and tickets.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
id |
Zendesk organization identifier. |
url |
API URL for the organization resource. |
name |
Organization display name. |
tags |
Tags applied to the organization. |
notes |
Internal notes on the organization. |
details |
Additional details on the organization. |
group_id |
Default group id for tickets from this organization. |
created_at |
Timestamp the organization was created. |
deleted_at |
Timestamp the organization was deleted (null if active). |
updated_at |
Timestamp the organization was last updated. |
external_id |
External identifier mapping the organization to an upstream system. |
domain_names |
Email domains associated with the organization. |
shared_tickets |
True if tickets are shared across users in the organization. |
shared_comments |
True if comments are shared across users in the organization. |
organization_fields |
Custom organization fields payload. |
satisfaction_ratings
Customer satisfaction (CSAT) ratings submitted by ticket requesters. One row per rating event.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
id |
Satisfaction rating identifier. |
url |
API URL for the rating resource. |
score |
Rating score (e.g. good, bad, offered). |
reason |
Reason text provided by the requester. |
comment |
Free-text comment from the requester. |
group_id |
Group id assigned to the ticket at rating time. |
reason_id |
Identifier of the canned reason chosen by the requester. |
ticket_id |
Ticket id this rating is for. |
created_at |
Timestamp the rating was submitted. |
updated_at |
Timestamp the rating was last updated. |
assignee_id |
User id of the agent assigned at the time of rating. |
requester_id |
User id of the ticket requester who submitted the rating. |
tags
Aggregated count of all tags in use across the Zendesk account. One row per tag.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
name |
Tag value. |
count |
Number of records currently tagged with this tag value. |
tickets
Zendesk ticket fact / dimension table. Core support ticket record with status, requester, assignee, brand, custom fields, and via channel.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
id |
Zendesk ticket identifier. |
url |
API URL for the ticket. |
via |
Nested object describing the channel/source the ticket was created through. |
tags |
Tags currently applied to the ticket. |
type |
Ticket type (question, incident, problem, task). |
due_at |
Due-at timestamp for tasks. |
fields |
Ticket field values payload. |
status |
Current ticket status. |
subject |
Ticket subject line. |
brand_id |
Brand the ticket is associated with. |
group_id |
Group currently assigned to the ticket. |
priority |
Ticket priority. |
is_public |
True if the ticket is public. |
recipient |
Original recipient address (for email-channel tickets). |
created_at |
Timestamp the ticket was created. |
problem_id |
Linked problem ticket id (for incident tickets). |
updated_at |
Timestamp the ticket was last updated. |
assignee_id |
User id of the assigned agent. |
description |
First-comment description of the ticket. |
external_id |
External system identifier mapped to the ticket. |
raw_subject |
Raw (un-rendered) subject line. |
email_cc_ids |
List of user ids on the email CC. |
follower_ids |
List of user ids following the ticket. |
followup_ids |
List of follow-up ticket ids generated from this ticket. |
requester_id |
User id of the ticket requester. |
submitter_id |
User id of the ticket submitter (may differ from requester for agent-created tickets). |
custom_fields |
Custom field values payload. |
has_incidents |
True if the ticket has linked incidents. |
forum_topic_id |
Linked forum topic id, if any. |
ticket_form_id |
Ticket form id used to create the ticket. |
organization_id |
Organization id linked to the requester. |
collaborator_ids |
List of collaborator user ids on the ticket. |
custom_status_id |
Custom status id, when custom statuses are enabled. |
allow_attachments |
True if attachments are permitted on the ticket. |
allow_channelback |
True if channelback (replying through the original channel) is allowed. |
generated_timestamp |
Generation timestamp used by Zendesk for ordering. |
satisfaction_rating |
Embedded satisfaction rating payload, if available. |
sharing_agreement_ids |
List of sharing-agreement ids the ticket is shared via. |
deleted_ticket_form_id |
Ticket form id when the form has been deleted. |
from_messaging_channel |
True if the ticket originated from a messaging channel. |
result_type |
API result type returned by Zendesk. |
ticket_audits
Audit log for ticket changes. One row per audit event capturing every change made to a ticket.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
id |
Audit event identifier. |
via |
Nested object describing the channel/source of the change. |
events |
Array of individual change events that occurred in this audit (status changes, comment additions, field updates, etc.). |
metadata |
Audit metadata payload (system info, custom client data). |
author_id |
User id of the actor who triggered the audit. |
ticket_id |
Ticket id the audit belongs to. |
created_at |
Timestamp the audit event occurred. |
attachments |
Attachments added in this audit event. |
ticket_comments
Comments on tickets, both public (replies to customer) and private (internal notes). One row per comment.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
id |
Comment identifier. |
via |
Nested object describing the channel/source the comment was posted through. |
body |
Comment body in the original format. |
type |
Comment type (Comment, VoiceComment, etc.). |
public |
True if the comment is public (visible to the requester). |
uploads |
Attachment upload tokens included with the comment. |
audit_id |
Audit id the comment was created in. |
metadata |
Comment metadata payload. |
author_id |
User id of the comment author. |
html_body |
HTML-rendered body of the comment. |
ticket_id |
Ticket id the comment belongs to. |
timestamp |
Unix timestamp of the comment. |
created_at |
Timestamp the comment was created. |
event_type |
Event type classifier used by Zendesk for the comment. |
plain_body |
Plain-text rendering of the comment body. |
attachments |
Attachments included with the comment. |
via_reference_id |
Reference id from the originating channel (e.g. external message id). |
ticket_fields
Ticket field configuration dimension. One row per system or custom ticket field.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
id |
Ticket field identifier. |
key |
Programmatic key for the field. |
tag |
Tag value associated with the field, for system fields. |
url |
API URL for the field resource. |
type |
Field data type (text, dropdown, multiselect, date, etc.). |
title |
Display title of the field shown to agents. |
active |
True if the field is active. |
position |
Display position of the field in forms. |
required |
True if the field is required for agents. |
raw_title |
Raw (un-rendered) title. |
removable |
True if the field can be removed. |
created_at |
Timestamp the field was created. |
updated_at |
Timestamp the field was last updated. |
description |
Field description shown to agents. |
sub_type_id |
Subtype identifier for typed fields. |
custom_statuses |
Custom statuses linked to this field, when applicable. |
raw_description |
Raw description text. |
title_in_portal |
Title displayed in the end-user portal. |
agent_description |
Agent-facing description. |
visible_in_portal |
True if visible to end users in the help-center portal. |
editable_in_portal |
True if editable by end users in the portal. |
required_in_portal |
True if required in the portal. |
raw_title_in_portal |
Raw title shown in the portal. |
collapsed_for_agents |
True if collapsed by default in the agent UI. |
custom_field_options |
Custom field options (for dropdown/multiselect fields). |
system_field_options |
System field options (for system fields like status/priority). |
regexp_for_validation |
Validation regular expression, when configured. |
ticket_forms
Ticket form dimension. One row per ticket form configured in the account.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
id |
Ticket form identifier. |
url |
API URL for the form resource. |
name |
Form display name. |
active |
True if the form is active. |
default |
True if this is the default form. |
position |
Display position of the form. |
raw_name |
Raw form name. |
created_at |
Timestamp the form was created. |
updated_at |
Timestamp the form was last updated. |
display_name |
Display name shown to end users. |
in_all_brands |
True if the form is available to all brands. |
agent_conditions |
Conditional-field rules configured for agents. |
end_user_visible |
True if visible to end users. |
raw_display_name |
Raw display name. |
ticket_field_ids |
List of ticket field ids included on the form. |
end_user_conditions |
Conditional-field rules configured for end users. |
restricted_brand_ids |
List of brand ids the form is restricted to (if not in_all_brands). |
ticket_metrics
Per-ticket aggregated metrics (reply time, full resolution time, on-hold time, etc.). One row per ticket capturing time-based KPIs.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
id |
Ticket metric identifier. |
url |
API URL for the metric resource. |
time |
Reporting time string returned by Zendesk. |
type |
Metric type classifier. |
metric |
Metric name. |
status |
Metric status payload. |
reopens |
Number of times the ticket was reopened after being solved. |
replies |
Number of public replies on the ticket. |
solved_at |
Timestamp the ticket was first solved. |
ticket_id |
Ticket id the metrics describe. |
created_at |
Timestamp the metric record was created. |
updated_at |
Timestamp the metric record was last updated. |
assigned_at |
Timestamp the ticket was first assigned. |
instance_id |
Instance id used by Zendesk for partitioning. |
_ab_updated_at |
Airbyte-supplied updated-at marker for change-data-capture. |
group_stations |
Number of distinct groups that worked the ticket. |
assignee_stations |
Number of distinct assignees that worked the ticket. |
status_updated_at |
Timestamp the status was last updated. |
assignee_updated_at |
Timestamp the assignee was last updated. |
generated_timestamp |
Generation timestamp used for ordering. |
requester_updated_at |
Timestamp the requester last updated the ticket. |
initially_assigned_at |
Timestamp the ticket was initially assigned to an agent. |
reply_time_in_minutes |
Reply time payload (calendar/business minutes). |
reply_time_in_seconds |
Reply time payload (calendar/business seconds). |
latest_comment_added_at |
Timestamp of the most recent comment on the ticket. |
on_hold_time_in_minutes |
On-hold time payload in minutes. |
custom_status_updated_at |
Timestamp the custom status was last updated. |
agent_wait_time_in_minutes |
Agent wait-time payload in minutes. |
requester_wait_time_in_minutes |
Requester wait-time payload in minutes. |
full_resolution_time_in_minutes |
Full-resolution time payload in minutes. |
first_resolution_time_in_minutes |
First-resolution time payload in minutes. |
ticket_metric_events
Event-level log of SLA metric breaches and updates. One row per metric-event change.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
id |
Metric event identifier. |
sla |
SLA configuration payload at the time of the event. |
time |
Event time string returned by Zendesk. |
type |
Event type (activate, breach, fulfill, pause, etc.). |
metric |
Metric the event applies to. |
status |
Status payload at the time of the event. |
deleted |
True if the event has been deleted. |
group_sla |
Group SLA payload, when applicable. |
ticket_id |
Ticket id this event belongs to. |
instance_id |
Instance id used by Zendesk for partitioning. |
users
Zendesk user dimension. One row per user (end user, agent, or admin) with role, contact, and organization metadata.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload. |
_airbyte_generation_id |
Airbyte generation identifier. |
id |
Zendesk user identifier. |
url |
API URL for the user resource. |
name |
User display name. |
role |
User role (end-user, agent, admin). |
tags |
Tags applied to the user. |
alias |
Alias displayed in lieu of the user's real name, when set. |
email |
User's primary email address. |
notes |
Internal notes on the user. |
phone |
User's primary phone number. |
photo |
User profile photo payload. |
active |
True if the user is active. |
locale |
User's configured locale. |
shared |
True if the user is shared from another Zendesk account. |
details |
Additional details on the user. |
verified |
True if the user's identity has been verified. |
chat_only |
True if the user only has chat access. |
locale_id |
Numeric locale identifier. |
moderator |
True if the user is a community moderator. |
role_type |
Numeric role-type classifier. |
signature |
Agent signature template. |
suspended |
True if the user has been suspended. |
time_zone |
User's configured time zone. |
created_at |
Timestamp the user was created. |
report_csv |
True if the user is permitted to export reports as CSV. |
updated_at |
Timestamp the user was last updated. |
external_id |
External system identifier mapped to the user. |
user_fields |
Custom user fields payload. |
shared_agent |
True if the user is a shared agent across accounts. |
last_login_at |
Timestamp of the user's last login. |
custom_role_id |
Custom-role id assigned to the user, when applicable. |
iana_time_zone |
IANA time zone string for the user. |
organization_id |
Organization id the user belongs to. |
default_group_id |
Default agent group id for the user. |
restricted_agent |
True if the agent has restricted access (only their assigned tickets). |
ticket_restriction |
Ticket-restriction setting for the user. |
permanently_deleted |
True if the user has been permanently deleted (vs soft-deleted). |
shared_phone_number |
True if the user shares their phone number with the account. |
only_private_comments |
True if the user can only post private comments. |
two_factor_auth_enabled |
True if two-factor authentication is enabled for the user. |
src_utilities_finance
Finance / FP&A data manually loaded into UTILITIES_DB.FINANCE. See docs/utilities/budget_table.md for the full narrative.
budget
Monthly budget projections under three recognition types — GAAP, CASH, and NON_FINANCIAL — in a single wide table. Each (version, month, recognition_type) is a unique row. The IS_CURRENT flag marks the active version; prior versions are retained as history.
| Column | Description |
|---|---|
version |
Budget version identifier (e.g. 2026-04-13_por_update). Each import carries a distinct version. |
year |
Budget year. |
quarter |
Quarter (1–4) corresponding to the month. |
month |
First day of the budgeted month (DATE). |
recognition_type |
One of GAAP, CASH, or NON_FINANCIAL. Determines which columns are populated on the row. |
is_current |
TRUE for rows belonging to the latest imported version. Filter on this (or use budget_current) for the active budget. |
loaded_at |
Timestamp when the row was imported. |
hardware_revenue |
Hardware revenue. On GAAP rows, recognized on fulfillment; on CASH rows, cash received from hardware sales. |
software_revenue |
Subscription revenue. On GAAP rows, recognized as earned; on CASH rows, cash received. |
total_revenue |
Hardware Revenue + Software Revenue (populated on both GAAP and CASH rows with values matching that recognition basis). |
software_cogs |
Software cost of goods sold. Populated on both GAAP and CASH rows (accrual vs cash basis). |
software_gp |
Software gross profit = Software Revenue − Software CoGS. Populated on both GAAP and CASH rows. |
software_gm |
Software gross margin = Software GP ÷ Software Revenue (decimal, e.g. 0.72 = 72%). Populated on both GAAP and CASH rows. |
opex |
Total operating expenses (S&M, Personnel, R&D, Professional Services, G&A, Depreciation). Populated on both GAAP (accrual) and CASH (paid) rows. |
hardware_cogs |
Cost of goods sold for hardware (GAAP rows only). |
hardware_gp |
Hardware Revenue − Hardware CoGS (GAAP rows only). |
hardware_gm |
Hardware GP ÷ Hardware Revenue (decimal; GAAP rows only). |
total_gp |
Hardware GP + Software GP (GAAP rows only). |
total_gm |
Total GP ÷ Total Revenue (decimal; GAAP rows only). |
ebit |
Earnings Before Interest & Taxes = Total GP − OpEx (GAAP rows only). |
inventory_cash_outlay |
Cash paid to purchase hardware inventory (CASH rows only). |
other_cogs |
Other cost of goods sold paid in cash (CASH rows only). |
taxes_financing_other |
Taxes, financing costs, and other cash outflows (CASH rows only). |
change_in_cash_from_operations |
Cash flow from operating activities (CASH rows only). |
change_in_cash_from_investing |
Cash flow from investing activities (CASH rows only). |
change_in_cash_from_financing |
Cash flow from financing activities (CASH rows only). |
net_change_in_cash |
Sum of Operations + Investing + Financing (CASH rows only). |
starting_cash |
Cash balance at start of month (CASH rows only). |
cash_balance_at_eom |
Starting Cash + Net Change in Cash (CASH rows only). |
units_sold |
Devices sold in the month — drives CASH hardware revenue (NON_FINANCIAL rows only). |
units_fulfilled |
Devices delivered to customers in the month — drives GAAP hardware revenue (NON_FINANCIAL rows only). |
paying_subscribers_monthly |
Monthly plan subscribers at end of month (NON_FINANCIAL rows only). |
paying_subscribers_annual |
Annual plan subscribers at end of month (NON_FINANCIAL rows only). |
paying_subscribers_total |
Monthly + Annual subscribers (NON_FINANCIAL rows only). |
budget_current
Convenience view over budget filtered to IS_CURRENT = TRUE. Monthly budget
projections for the active version only, under three recognition types —
GAAP, CASH, and NON_FINANCIAL. Each (month, recognition_type) is a unique row.
Column definitions mirror budget (kept in sync manually — see CLAUDE.local.md).
| Column | Description |
|---|---|
version |
Budget version identifier (e.g. 2026-04-13_por_update). Each import carries a distinct version. |
year |
Budget year. |
quarter |
Quarter (1–4) corresponding to the month. |
month |
First day of the budgeted month (DATE). |
recognition_type |
One of GAAP, CASH, or NON_FINANCIAL. Determines which columns are populated on the row. |
is_current |
Always TRUE in this view (it filters on IS_CURRENT = TRUE). |
loaded_at |
Timestamp when the row was imported. |
hardware_revenue |
Hardware revenue. On GAAP rows, recognized on fulfillment; on CASH rows, cash received from hardware sales. |
software_revenue |
Subscription revenue. On GAAP rows, recognized as earned; on CASH rows, cash received. |
total_revenue |
Hardware Revenue + Software Revenue (populated on both GAAP and CASH rows with values matching that recognition basis). |
software_cogs |
Software cost of goods sold. Populated on both GAAP and CASH rows (accrual vs cash basis). |
software_gp |
Software gross profit = Software Revenue − Software CoGS. Populated on both GAAP and CASH rows. |
software_gm |
Software gross margin = Software GP ÷ Software Revenue (decimal, e.g. 0.72 = 72%). Populated on both GAAP and CASH rows. |
opex |
Total operating expenses (S&M, Personnel, R&D, Professional Services, G&A, Depreciation). Populated on both GAAP (accrual) and CASH (paid) rows. |
hardware_cogs |
Cost of goods sold for hardware (GAAP rows only). |
hardware_gp |
Hardware Revenue − Hardware CoGS (GAAP rows only). |
hardware_gm |
Hardware GP ÷ Hardware Revenue (decimal; GAAP rows only). |
total_gp |
Hardware GP + Software GP (GAAP rows only). |
total_gm |
Total GP ÷ Total Revenue (decimal; GAAP rows only). |
ebit |
Earnings Before Interest & Taxes = Total GP − OpEx (GAAP rows only). |
inventory_cash_outlay |
Cash paid to purchase hardware inventory (CASH rows only). |
other_cogs |
Other cost of goods sold paid in cash (CASH rows only). |
taxes_financing_other |
Taxes, financing costs, and other cash outflows (CASH rows only). |
change_in_cash_from_operations |
Cash flow from operating activities (CASH rows only). |
change_in_cash_from_investing |
Cash flow from investing activities (CASH rows only). |
change_in_cash_from_financing |
Cash flow from financing activities (CASH rows only). |
net_change_in_cash |
Sum of Operations + Investing + Financing (CASH rows only). |
starting_cash |
Cash balance at start of month (CASH rows only). |
cash_balance_at_eom |
Starting Cash + Net Change in Cash (CASH rows only). |
units_sold |
Devices sold in the month — drives CASH hardware revenue (NON_FINANCIAL rows only). |
units_fulfilled |
Devices delivered to customers in the month — drives GAAP hardware revenue (NON_FINANCIAL rows only). |
paying_subscribers_monthly |
Monthly plan subscribers at end of month (NON_FINANCIAL rows only). |
paying_subscribers_annual |
Annual plan subscribers at end of month (NON_FINANCIAL rows only). |
paying_subscribers_total |
Monthly + Annual subscribers (NON_FINANCIAL rows only). |
src_thingsboard
Device data landed in S3 and loaded via Airbyte. Two tables that share a schema but not a grain, a format, or an identifier scheme:
thingsboard_reports is an hourly CSV snapshot of every device's ThingsBoard
server-side attributes — one row per device per report, keyed on the ThingsBoard
device UUID, with name holding the device MAC address.
call_telemetry is a Parquet stream of per-call VoIP quality measurements,
keyed on call_id, whose device_id is the Tin Can application's device key
rather than anything from ThingsBoard. The two tables do NOT join to each other
on any device identifier.
thingsboard_reports
Per-device snapshot of ThingsBoard server-side attributes and telemetry, one
row per device per imported report file. For each telemetry attribute
(e.g. fw_state, heap_min, wifi_rssi) there is a paired
*_last_activity_timestamp column holding the epoch-millisecond timestamp at
which that attribute was last updated on the device. All telemetry values are
stored as TEXT as exported by the CSV source. This table stores historical snapshots
so it is critical to only use the latest historical snapshot when doing current state
analysis. Otherwise, transactions will be overcounted, which is incorrect. It is
okay to use the historical snapshots for trend analysis but the default should
always be to use the latest historical snapshot.
BOUND THIS TABLE ON extracted_at BEFORE ANYTHING ELSE. It is the largest table
in the warehouse and its micro-partitions are ordered by extracted_at, so a
literal string bound prunes nearly all of it away. Three common patterns defeat
that pruning and scan the whole table instead: selecting the latest snapshot via
= (select max(extracted_at) ...), an unbounded
qualify row_number() over (partition by id order by extracted_at desc) = 1,
and casting the column with to_timestamp(...). Bound first, then dedupe inside
that window. See the extracted_at column and the ThingsBoard guide.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
ThingsBoard entity (device) UUID. |
name |
Device name as registered in ThingsBoard, typically the device MAC address (e.g. 20:6E:F1:B4:41:90). |
fw_state |
Firmware update state reported by the device (e.g. UPDATED, DOWNLOADING, 0 when unknown). |
heap_min |
Minimum free heap (bytes) observed on the device since boot, as TEXT. |
uptime_s |
Seconds since the device last booted, as TEXT. |
heap_free |
Currently free heap memory on the device (bytes), as TEXT. |
wifi_rssi |
Wi-Fi received signal strength indicator in dBm (e.g. -62), as TEXT. |
sip_status |
SIP client status reported by the device (e.g. ok, 0 when unknown). |
beta_cohort |
Beta cohort identifier the device is assigned to (0 for none). |
extracted_at |
When the report row was extracted at the source, and the column to filter this table on. TEXT, not a timestamp — a uniform 24-character ISO 8601 string (e.g. 2026-09-10T22:03:37.914Z). Compare it as a string and do NOT cast it. ISO 8601 sorts lexicographically in the same order as chronologically, so extracted_at >= '2026-09-10T20:00:00.000Z' prunes to a handful of micro-partitions while to_timestamp(extracted_at) >= ... reads most of the table. A bound built with to_char(dateadd(...)) still prunes, because current_timestamp() resolves at compile time. Every row in a given hourly batch shares one value, so this is also how you identify a snapshot. |
online_status |
Whether the device was online at report time (true/false as TEXT). |
sipservercert |
SIP server certificate status payload (JSON string, e.g. {"status":"unchanged",...}); 0 when unknown. |
device_profile |
ThingsBoard device profile assigned to the device (e.g. V1 Prod Beta, Tin Can Devices (Customer Activated)). |
sip_retry_count |
Number of SIP registration retries since last successful registration, as TEXT. |
firmware_version |
Firmware version string installed on the device (e.g. 1.6.8); 0 when unknown. |
lastactivitytime |
Epoch-millisecond timestamp (as TEXT) of the device's last activity on the ThingsBoard server. |
heap_largest_block |
Size in bytes (as TEXT) of the largest contiguous free heap block on the device. |
_ab_source_file_url |
Source CSV file path within the storage bucket that this row was loaded from. |
worker_wdt_reboot_count |
Count of watchdog-triggered worker reboots reported by the device, as TEXT. |
_ab_source_file_last_modified |
Last-modified timestamp of the source CSV file (ISO 8601 string). |
fw_state_last_activity_timestamp |
Epoch-millisecond timestamp (as TEXT) when fw_state was last updated on the device. |
heap_min_last_activity_timestamp |
Epoch-millisecond timestamp (as TEXT) when heap_min was last updated. |
uptime_s_last_activity_timestamp |
Epoch-millisecond timestamp (as TEXT) when uptime_s was last updated. |
heap_free_last_activity_timestamp |
Epoch-millisecond timestamp (as TEXT) when heap_free was last updated. |
wifi_rssi_last_activity_timestamp |
Epoch-millisecond timestamp (as TEXT) when wifi_rssi was last updated. |
firmware_version_last_updated_time |
Epoch-millisecond timestamp (as TEXT) when firmware_version was last updated on the device. |
sip_status_last_activity_timestamp |
Epoch-millisecond timestamp (as TEXT) when sip_status was last updated. |
beta_cohort_last_activity_timestamp |
Epoch-millisecond timestamp (as TEXT) when beta_cohort was last updated. |
online_status_last_activity_timestamp |
Epoch-millisecond timestamp (as TEXT) when online_status was last updated. |
sipservercert_last_activity_timestamp |
Epoch-millisecond timestamp (as TEXT) when sipservercert was last updated. |
sip_retry_count_last_activity_timestamp |
Epoch-millisecond timestamp (as TEXT) when sip_retry_count was last updated. |
lastactivitytime_last_activity_timestamp |
Epoch-millisecond timestamp (as TEXT) when lastactivitytime was last updated (i.e. when the server-side last-activity attribute itself changed). |
heap_largest_block_last_activity_timestamp |
Epoch-millisecond timestamp (as TEXT) when heap_largest_block was last updated. |
worker_wdt_reboot_count_last_activity_timestamp |
Epoch-millisecond timestamp (as TEXT) when worker_wdt_reboot_count was last updated. |
call_telemetry
One row per call leg reported by a device, written to S3 as Parquet by the call-telemetry export and loaded via Airbyte in incremental append mode. Carries VoIP quality measurements — RTP packet counts, jitter-buffer behavior, echo cancellation and Wi-Fi signal — alongside the call's duration and identifiers.
Grain is call_id, but the table is NOT unique on it. The export delivers
at-least-once, so a record can appear more than once, usually several times
within the same file and byte-identical across every business column.
Deduplicate before averaging anything:
qualify row_number() over (partition by call_id order by ts desc) = 1.
Counts, sums and distinct-device figures survive the duplication with only
slight inflation; an average of a per-call rate does not, because the
duplicates skew toward lossy calls.
A small number of calls each day report a corrupt rtp_lost — a value in the
tens of millions, larger than rtp_pkts_total, which cannot happen. They are
a rounding error by row count but they dominate any packet-loss aggregate: a
single such row can carry an entire day. ALWAYS guard with
where rtp_lost <= rtp_pkts_total. Unguarded, daily loss swings between a
fraction of a percent and almost 100%; guarded, it is flat and believable.
Do not treat call_quality as a measure of call quality — see that column.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
call_id |
Identifier for the call leg and the intended grain of the table, but NOT unique: the at-least-once export repeats some records verbatim. Use it as the partition key when deduplicating. |
call_seq |
Sequence number accompanying call_id. Fully determined by call_id — it adds nothing to the key and does not indicate multiple rows per call. Do not include it in a deduplication or join key. |
device_id |
Device that reported the call. Despite this table's ThingsBoard lineage the value is the Tin Can application's device key: it joins to raw_db.tincan.device.key and matches essentially every device. It does NOT join to thingsboard_reports.id or to dim_device.thingsboard_device_id — both match zero rows. To reach the device dimension go through tincan.device.routing_id to dim_device.routing_id. Distinct counts of this column are unaffected by the duplicate records. |
ts |
Call timestamp as epoch MILLISECONDS (13 digits), and the only true event time in the table. Convert with to_timestamp_ltz(ts, 3) to get Pacific; the session timezone is already Pacific, so no further conversion is needed. |
call_quality |
NOT a measure of call quality, despite the name and the good/fair/poor values. The label tracks call DURATION, not network performance: nearly every call longer than fifteen seconds is labeled poor while the median call in every duration band has zero packet loss. It appears to count cumulative events over the call rather than rating them, so long calls accumulate into poor however clean the connection. Do not use this column to answer questions about call quality, and do not report the share of calls by this label. Use packet_loss_pct, or better sum(rtp_lost) / sum(rtp_pkts_total), and the jitter-buffer columns. |
call_duration_s |
Length of the call leg in seconds. |
packet_loss_pct |
Packet loss on this call leg as a percentage, precomputed at the source. Carries the same corrupt rows as rtp_lost — values approaching 100% appear every day — so filter rtp_lost <= rtp_pkts_total before using it. The median call has zero loss. When aggregating, prefer the pooled sum(rtp_lost) / sum(rtp_pkts_total) over an average of this column, which weights a two-second call the same as a ten-minute one. Both need the guard. |
rtp_pkts_total |
Total RTP packets accounted for on the call leg, and the denominator of a pooled loss rate. Sane across the table; it is rtp_lost that misbehaves, and comparing the two is how the corrupt rows are identified. |
rtp_lost |
RTP packets lost on the call leg, and the numerator of a pooled loss rate. UNRELIABLE ON A SMALL MINORITY OF ROWS: on the order of a hundred calls a day it reports a value in the tens of millions that exceeds rtp_pkts_total, which is impossible — it looks like a counter reset or an uninitialized read. Always filter rtp_lost <= rtp_pkts_total. Without that guard a single row can move a whole day's loss rate from a fraction of a percent to near 100%. |
rtp_dup |
Duplicate RTP packets received on the call leg. |
rtp_ooo |
RTP packets that arrived out of order on the call leg. |
rtp_ts_jump |
Count of discontinuities in the RTP timestamp sequence, indicating a clock or stream break. |
jb_rx |
Packets received into the jitter buffer. |
jb_drop |
Packets discarded by the jitter buffer, typically because they arrived too late to play out. |
jb_gaps |
Gaps in jitter-buffer playout — moments where no audio was available to play. |
jb_underrun |
Jitter-buffer underruns, where playout outran the arriving audio. A direct correlate of audible choppiness. |
aec_ref_underrun |
Underruns on the acoustic echo canceller's reference signal. Elevated values point at echo or duplex problems rather than network loss. |
erle_db_final |
Echo Return Loss Enhancement at the end of the call, in dB. Higher is better — it measures how much echo the canceller removed. |
wifi_rssi |
Wi-Fi signal strength in dBm at the device, a negative number where closer to zero is stronger. Re-sampled per call, so it can differ slightly between otherwise identical duplicate records. |
year |
Partition value from the S3 path, stored as TEXT and derived from UTC — not a date, and not Pacific. A call placed in the Pacific evening lands in the NEXT day's partition. Filter on ts for anything date-sensitive. |
month |
Partition value from the S3 path, stored as TEXT (zero-padded, e.g. 09) and derived from UTC. See year. |
day |
Partition value from the S3 path, stored as TEXT (zero-padded, e.g. 14) and derived from UTC. See year. |
_ab_source_file_url |
Source Parquet file path within the storage bucket that this row was loaded from. Duplicate records almost always share this value. |
_ab_source_file_last_modified |
Last-modified timestamp of the source Parquet file (ISO 8601 string). Drives this table's freshness check. |
src_quickbooks
Accounting data (chart of accounts, transactions, lists) from QuickBooks Online via Airbyte.
accounts
QuickBooks Chart of Accounts — one row per general ledger account (assets, liabilities, equity, income, expenses).
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO account id; primary key for the chart of accounts. |
name |
Display name of the entity in QuickBooks. |
active |
Whether the entity is active in QuickBooks; inactive entities are hidden from most UI lists. |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
acctnum |
Account number / code assigned to the GL account in the chart of accounts. |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
parentref |
Reference to the parent account when this is a sub-account. |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
subaccount |
True when this account is a sub-account of another account (see parentref). |
accounttype |
High-level QBO account classification (e.g. Bank, Accounts Receivable, Income, Expense). |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
accountsubtype |
QBO account subtype that further refines accounttype (e.g. Checking, CostOfGoodsSold). |
classification |
Account classification group (Asset, Liability, Equity, Revenue, Expense). |
currentbalance |
Current balance of this account only (excluding sub-accounts) in the account's currency. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
fullyqualifiedname |
Fully qualified name including any parent prefix (e.g. Office:Rent for a sub-account named Rent under Office). |
currentbalancewithsubaccounts |
Current balance of this account plus all of its sub-accounts, in the account's currency. |
bills
Vendor bills (Accounts Payable transactions) entered in QuickBooks; one row per bill.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO bill id; primary key for bills. |
line |
Array of line item structs that make up the transaction; each line carries an Amount, DetailType, and detail subobject (e.g. SalesItemLineDetail). |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
balance |
Outstanding balance on the transaction in the transaction's currency (0 when fully paid/applied). |
duedate |
Date the transaction is due. |
txndate |
Transaction date as recorded in QuickBooks (the user-facing accounting date). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
totalamt |
Total amount of the transaction in the transaction's currency. |
docnumber |
User-visible reference / document number for the transaction (e.g. invoice number, check number). |
linkedtxn |
Array of references to other QBO transactions linked to this one (e.g. invoices paid by a payment). |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
vendorref |
QBO reference object pointing to the vendors entity for this transaction. |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
privatenote |
Free-text internal note on the transaction; not shown to customers/vendors. |
apaccountref |
QBO reference object for the Accounts Payable account used to record the liability. |
exchangerate |
Exchange rate from the transaction currency to the company's home currency at transaction time. |
salestermref |
QBO reference object for the sales term applied (links to terms). |
departmentref |
QBO reference object pointing to the departments entity this row is associated with. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
bill_payments
Payments applied to vendor bills; one row per bill payment transaction.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO bill payment id; primary key for bill payments. |
line |
Array of line structs that allocate the payment to specific bills (each with LinkedTxn pointing at a bill and an Amount). |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
paytype |
Payment method type (Check or CreditCard); determines which of checkpayment / creditcardpayment is populated. |
txndate |
Transaction date as recorded in QuickBooks (the user-facing accounting date). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
totalamt |
Total amount of the transaction in the transaction's currency. |
docnumber |
User-visible reference / document number for the transaction (e.g. invoice number, check number). |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
vendorref |
QBO reference object pointing to the vendors entity for this transaction. |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
apaccountref |
QBO reference object for the Accounts Payable account used to record the liability. |
checkpayment |
Check payment detail struct (populated when paytype = Check); includes BankAccountRef and PrintStatus. |
exchangerate |
Exchange rate from the transaction currency to the company's home currency at transaction time. |
departmentref |
QBO reference object pointing to the departments entity this row is associated with. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
creditcardpayment |
Credit card payment detail struct (populated when paytype = CreditCard); includes CCAccountRef. |
budgets
QuickBooks budget headers; one row per budget (the detail amounts are nested in budgetdetail).
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO budget id; primary key for budgets. |
name |
Display name of the entity in QuickBooks. |
active |
Whether the entity is active in QuickBooks; inactive entities are hidden from most UI lists. |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
enddate |
End of the budget period. |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
startdate |
Start of the budget period. |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
budgettype |
Budget type (e.g. ProfitAndLoss). |
budgetdetail |
Array of per-period, per-account budget amounts that make up this budget. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
budgetentrytype |
Granularity of budget entries (Yearly, Quarterly, or Monthly). |
classes
QuickBooks Classes used for class tracking (segmenting transactions by line of business, location, etc.).
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO class id; primary key for classes. |
name |
Display name of the entity in QuickBooks. |
active |
Whether the entity is active in QuickBooks; inactive entities are hidden from most UI lists. |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
subclass |
True when this class is a sub-class of another class (see parentref). |
parentref |
QBO reference object pointing to the parent entity in a hierarchical list (for sub-accounts, sub-classes, sub-departments, etc.). |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
fullyqualifiedname |
Fully qualified name including any parent prefix (e.g. Office:Rent for a sub-account named Rent under Office). |
credit_memos
Credit memos issued to customers (reduce a customer's balance or remain as an available credit); one row per credit memo.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO credit memo id; primary key for credit memos. |
line |
Array of line item structs that make up the transaction; each line carries an Amount, DetailType, and detail subobject (e.g. SalesItemLineDetail). |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
balance |
Outstanding balance on the transaction in the transaction's currency (0 when fully paid/applied). |
txndate |
Transaction date as recorded in QuickBooks (the user-facing accounting date). |
billaddr |
Billing address struct (line1-5, City, CountrySubDivisionCode, PostalCode, etc.). |
classref |
QBO reference object pointing to the classes entity used for class tracking on this row. |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
shipaddr |
Shipping address struct (line1-5, City, CountrySubDivisionCode, PostalCode, etc.). |
totalamt |
Total amount of the transaction in the transaction's currency. |
billemail |
Email address struct ({Address: ...}) used for billing communications. |
docnumber |
User-visible reference / document number for the transaction (e.g. invoice number, check number). |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
customfield |
Array of CustomField structs ({DefinitionId, Name, Type, StringValue}) defined on the transaction. |
customerref |
QBO reference object pointing to the customers entity for this transaction. |
emailstatus |
Status of any email delivery for the transaction (NotSet, NeedToSend, EmailSent). |
printstatus |
Print status for the transaction (NotSet, NeedToPrint, PrintComplete). |
customermemo |
Customer-visible memo struct ({value: ...}) shown on the printed/emailed transaction. |
exchangerate |
Exchange rate from the transaction currency to the company's home currency at transaction time. |
hometotalamt |
Total amount of the transaction converted to the company's home currency using exchangerate. |
salestermref |
QBO reference object for the sales term applied (links to terms). |
txntaxdetail |
Tax detail struct for the transaction (TotalTax, TaxLine array, TxnTaxCodeRef). |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
remainingcredit |
Portion of the credit memo not yet applied to any invoice, in the transaction's currency. |
applytaxafterdiscount |
Whether tax is applied to the line subtotal after the discount is subtracted (true) or before (false). |
customers
QuickBooks customer master records (also includes Jobs / sub-customers); one row per customer or job.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO customer id; primary key for customers. |
fax |
Fax phone struct ({FreeFormNumber: ...}). |
job |
True when this row is a Job (sub-customer) rather than a top-level customer. |
level |
Hierarchy depth of this customer/job (0 for top-level customers, 1+ for nested jobs). |
active |
Whether the entity is active in QuickBooks; inactive entities are hidden from most UI lists. |
mobile |
Mobile phone struct ({FreeFormNumber: ...}). |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
balance |
Customer's current open A/R balance excluding sub-jobs, in the customer's currency. |
taxable |
Whether the entity / line is subject to sales tax. |
webaddr |
Website struct ({URI: ...}) for the entity. |
billaddr |
Billing address struct (line1-5, City, CountrySubDivisionCode, PostalCode, etc.). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
shipaddr |
Shipping address struct (line1-5, City, CountrySubDivisionCode, PostalCode, etc.). |
givenname |
First (given) name of the person. |
parentref |
Reference to the parent customer when this row is a Job (sub-customer). |
resalenum |
Customer's resale certificate number, when provided. |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
familyname |
Last (family) name of the person. |
middlename |
Middle name of the person. |
companyname |
Company name associated with the entity. |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
displayname |
Unique display name shown in QuickBooks lists for this entity. |
primaryphone |
Primary phone struct ({FreeFormNumber: ...}). |
salestermref |
QBO reference object for the sales term applied (links to terms). |
billwithparent |
True when this Job's invoices roll up to and are billed with the parent customer. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
balancewithjobs |
Customer's current open A/R balance including all sub-jobs, in the customer's currency. |
paymentmethodref |
QBO reference object for the payment method used (links to payment_methods). |
primaryemailaddr |
Primary email address struct ({Address: ...}). |
printoncheckname |
Name to print on checks made out to / from this entity. |
defaulttaxcoderef |
QBO reference object for the default tax code applied to this customer's sales. |
fullyqualifiedname |
Fully qualified name including any parent prefix (e.g. Office:Rent for a sub-account named Rent under Office). |
preferreddeliverymethod |
Preferred way to deliver invoices to this customer (Print, Email, or None). |
departments
QuickBooks Departments (Locations) used to segment transactions by physical or organizational unit.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO department id; primary key for departments. |
name |
Display name of the entity in QuickBooks. |
active |
Whether the entity is active in QuickBooks; inactive entities are hidden from most UI lists. |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
parentref |
QBO reference object pointing to the parent entity in a hierarchical list (for sub-accounts, sub-classes, sub-departments, etc.). |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
subdepartment |
True when this department is a sub-department of another department (see parentref). |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
fullyqualifiedname |
Fully qualified name including any parent prefix (e.g. Office:Rent for a sub-account named Rent under Office). |
deposits
Bank deposit transactions in QuickBooks; one row per deposit, with the deposited items in the line array.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO deposit id; primary key for deposits. |
line |
Array of deposit line items, each pointing at the source transaction (payment, sales receipt, etc.) being deposited. |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
txndate |
Transaction date as recorded in QuickBooks (the user-facing accounting date). |
cashback |
Cash-back struct when part of the deposit was taken as cash (account, amount, memo). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
totalamt |
Total amount of the transaction in the transaction's currency. |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
privatenote |
Free-text internal note on the transaction; not shown to customers/vendors. |
exchangerate |
Exchange rate from the transaction currency to the company's home currency at transaction time. |
departmentref |
QBO reference object pointing to the departments entity this row is associated with. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
deposittoaccountref |
QBO reference object for the account funds were deposited into. |
employees
QuickBooks employee master records; one row per employee.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO employee id; primary key for employees. |
title |
Title or salutation prefix (e.g. Mr., Dr.). |
active |
Whether the entity is active in QuickBooks; inactive entities are hidden from most UI lists. |
gender |
Employee's gender as recorded in QBO (Male, Female, or null). |
mobile |
Mobile phone struct ({FreeFormNumber: ...}). |
suffix |
Name suffix (e.g. Jr., III). |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
billrate |
Default billable rate for the employee (used for time tracking against customers). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
birthdate |
Employee's date of birth. |
givenname |
First (given) name of the person. |
hireddate |
Date the employee was hired. |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
familyname |
Last (family) name of the person. |
middlename |
Middle name of the person. |
displayname |
Unique display name shown in QuickBooks lists for this entity. |
primaryaddr |
Primary address struct for the employee (line1-5, City, CountrySubDivisionCode, PostalCode). |
billabletime |
True when the employee's tracked time can be billed back to customers. |
organization |
True when this 'employee' record represents an organization rather than a person. |
primaryphone |
Primary phone struct ({FreeFormNumber: ...}). |
releaseddate |
Date the employee was released / terminated, when populated. |
employeenumber |
Employee number / payroll id assigned within the company. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
primaryemailaddr |
Primary email address struct ({Address: ...}). |
printoncheckname |
Name to print on checks made out to / from this entity. |
estimates
Customer estimates (quotes / proposals); one row per estimate. Estimates can be linked to invoices via linkedtxn.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO estimate id; primary key for estimates. |
line |
Array of line item structs that make up the transaction; each line carries an Amount, DetailType, and detail subobject (e.g. SalesItemLineDetail). |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
txndate |
Transaction date as recorded in QuickBooks (the user-facing accounting date). |
billaddr |
Billing address struct (line1-5, City, CountrySubDivisionCode, PostalCode, etc.). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
shipaddr |
Shipping address struct (line1-5, City, CountrySubDivisionCode, PostalCode, etc.). |
totalamt |
Total amount of the transaction in the transaction's currency. |
billemail |
Email address struct ({Address: ...}) used for billing communications. |
docnumber |
User-visible reference / document number for the transaction (e.g. invoice number, check number). |
linkedtxn |
Array of references to other QBO transactions linked to this one (e.g. invoices paid by a payment). |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
txnstatus |
Workflow status of the estimate (Pending, Accepted, Closed, Rejected). |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
customfield |
Array of CustomField structs ({DefinitionId, Name, Type, StringValue}) defined on the transaction. |
customerref |
QBO reference object pointing to the customers entity for this transaction. |
emailstatus |
Status of any email delivery for the transaction (NotSet, NeedToSend, EmailSent). |
printstatus |
Print status for the transaction (NotSet, NeedToPrint, PrintComplete). |
customermemo |
Customer-visible memo struct ({value: ...}) shown on the printed/emailed transaction. |
deliveryinfo |
Delivery info struct describing how the transaction was delivered to the customer (e.g. email DeliveryType and DeliveryTime). |
exchangerate |
Exchange rate from the transaction currency to the company's home currency at transaction time. |
hometotalamt |
Total amount of the transaction converted to the company's home currency using exchangerate. |
txntaxdetail |
Tax detail struct for the transaction (TotalTax, TaxLine array, TxnTaxCodeRef). |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
applytaxafterdiscount |
Whether tax is applied to the line subtotal after the discount is subtracted (true) or before (false). |
invoices
Customer invoices (Accounts Receivable transactions); one row per invoice.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO invoice id; primary key for invoices. |
line |
Array of line item structs that make up the transaction; each line carries an Amount, DetailType, and detail subobject (e.g. SalesItemLineDetail). |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
balance |
Outstanding balance on the transaction in the transaction's currency (0 when fully paid/applied). |
duedate |
Date the transaction is due. |
txndate |
Transaction date as recorded in QuickBooks (the user-facing accounting date). |
billaddr |
Billing address struct (line1-5, City, CountrySubDivisionCode, PostalCode, etc.). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
shipaddr |
Shipping address struct (line1-5, City, CountrySubDivisionCode, PostalCode, etc.). |
totalamt |
Total amount of the transaction in the transaction's currency. |
billemail |
Email address struct ({Address: ...}) used for billing communications. |
docnumber |
User-visible reference / document number for the transaction (e.g. invoice number, check number). |
linkedtxn |
Array of references to other QBO transactions linked to this one (e.g. invoices paid by a payment). |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
customfield |
Array of CustomField structs ({DefinitionId, Name, Type, StringValue}) defined on the transaction. |
customerref |
QBO reference object pointing to the customers entity for this transaction. |
emailstatus |
Status of any email delivery for the transaction (NotSet, NeedToSend, EmailSent). |
printstatus |
Print status for the transaction (NotSet, NeedToPrint, PrintComplete). |
privatenote |
Free-text internal note on the transaction; not shown to customers/vendors. |
customermemo |
Customer-visible memo struct ({value: ...}) shown on the printed/emailed transaction. |
deliveryinfo |
Delivery info struct describing how the transaction was delivered to the customer (e.g. email DeliveryType and DeliveryTime). |
exchangerate |
Exchange rate from the transaction currency to the company's home currency at transaction time. |
hometotalamt |
Total amount of the transaction converted to the company's home currency using exchangerate. |
salestermref |
QBO reference object for the sales term applied (links to terms). |
txntaxdetail |
Tax detail struct for the transaction (TotalTax, TaxLine array, TxnTaxCodeRef). |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
allowipnpayment |
True when the invoice may be paid via Intuit Payment Network (IPN). |
allowonlinepayment |
True when the invoice may be paid online by the customer. |
allowonlineachpayment |
True when the invoice may be paid online via ACH bank transfer. |
applytaxafterdiscount |
Whether tax is applied to the line subtotal after the discount is subtracted (true) or before (false). |
allowonlinecreditcardpayment |
True when the invoice may be paid online via credit card. |
items
QuickBooks Products and Services catalog; one row per item (Inventory, Non-Inventory, Service, Group, Category, etc.).
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO item id; primary key for items. |
name |
Display name of the entity in QuickBooks. |
type |
Item type (Inventory, NonInventory, Service, Group, Category, etc.). |
active |
Whether the entity is active in QuickBooks; inactive entities are hidden from most UI lists. |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
taxable |
Whether the entity / line is subject to sales tax. |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
qtyonhand |
Current quantity on hand for inventory items (null for non-inventory types). |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
unitprice |
Default sales price per unit, in the company's home currency. |
description |
Default description shown on sales transactions for this item. |
invstartdate |
Inventory start date — the date QBO began tracking on-hand quantity for this inventory item. |
purchasecost |
Default cost per unit when purchasing this item. |
purchasedesc |
Default description shown on purchase transactions for this item. |
trackqtyonhand |
True when QBO tracks quantity on hand for this item (inventory items). |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
assetaccountref |
QBO reference to the Inventory Asset account used for this item (inventory items). |
incomeaccountref |
QBO reference to the income account credited when this item is sold. |
expenseaccountref |
QBO reference to the expense / COGS account debited when this item is purchased or sold. |
fullyqualifiedname |
Fully qualified name including any parent prefix (e.g. Office:Rent for a sub-account named Rent under Office). |
journal_entries
Manual journal entries posted to the general ledger; one row per JE, with debit/credit lines in line.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO journal entry id; primary key for journal entries. |
line |
Array of journal entry lines, each with a JournalEntryLineDetail specifying PostingType (Debit/Credit), AccountRef, and optional Entity, Class, Department. |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
txndate |
Transaction date as recorded in QuickBooks (the user-facing accounting date). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
docnumber |
User-visible reference / document number for the transaction (e.g. invoice number, check number). |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
adjustment |
True when this JE is flagged as an adjusting entry (e.g. period-end accountant adjustments). |
taxrateref |
QBO reference to a tax rate associated with the entry, when applicable. |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
privatenote |
Free-text internal note on the transaction; not shown to customers/vendors. |
exchangerate |
Exchange rate from the transaction currency to the company's home currency at transaction time. |
txntaxdetail |
Tax detail struct for the transaction (TotalTax, TaxLine array, TxnTaxCodeRef). |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
payments
Customer payments received against invoices; one row per payment, with applications in line.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO payment id; primary key for customer payments. |
line |
Array of payment line structs that apply the payment to specific invoices (each with a LinkedTxn pointing at an invoice and an Amount). |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
txndate |
Transaction date as recorded in QuickBooks (the user-facing accounting date). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
totalamt |
Total amount of the transaction in the transaction's currency. |
linkedtxn |
Array of references to other QBO transactions linked to this one (e.g. invoices paid by a payment). |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
customerref |
QBO reference object pointing to the customers entity for this transaction. |
privatenote |
Free-text internal note on the transaction; not shown to customers/vendors. |
araccountref |
QBO reference object for the Accounts Receivable account used to record the receivable. |
exchangerate |
Exchange rate from the transaction currency to the company's home currency at transaction time. |
unappliedamt |
Portion of the payment not yet applied to any invoice, in the transaction's currency. |
paymentrefnum |
Customer-provided reference number for the payment (e.g. check number or external transaction id). |
processpayment |
True when QBO should process the payment electronically (e.g. via Intuit Payments) on save. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
paymentmethodref |
QBO reference object for the payment method used (links to payment_methods). |
deposittoaccountref |
QBO reference object for the account funds were deposited into. |
payment_methods
QuickBooks payment method list (Cash, Check, Visa, etc.); one row per method.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO payment method id; primary key for payment methods. |
name |
Display name of the entity in QuickBooks. |
type |
Payment method type (CREDIT_CARD or NON_CREDIT_CARD). |
active |
Whether the entity is active in QuickBooks; inactive entities are hidden from most UI lists. |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
purchases
Expense / check / credit card purchase transactions; one row per purchase, with expense lines in line.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO purchase id; primary key for purchase transactions. |
line |
Array of line item structs that make up the transaction; each line carries an Amount, DetailType, and detail subobject (e.g. SalesItemLineDetail). |
credit |
True when this purchase is a credit-card credit (refund) rather than a charge. |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
txndate |
Transaction date as recorded in QuickBooks (the user-facing accounting date). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
totalamt |
Total amount of the transaction in the transaction's currency. |
docnumber |
User-visible reference / document number for the transaction (e.g. invoice number, check number). |
entityref |
Reference to the entity the purchase was made with (vendor, customer, or employee), with type indicating which. |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
accountref |
QBO reference to the bank or credit-card account the purchase was paid from. |
purchaseex |
Extension struct holding additional QBO purchase fields not modeled at the top level. |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
paymenttype |
How the purchase was paid (Cash, Check, or CreditCard). |
printstatus |
Print status for the transaction (NotSet, NeedToPrint, PrintComplete). |
privatenote |
Free-text internal note on the transaction; not shown to customers/vendors. |
remittoaddr |
Address struct the payment is remitted to. |
exchangerate |
Exchange rate from the transaction currency to the company's home currency at transaction time. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
purchase_orders
Purchase orders issued to vendors; one row per PO, with ordered items in line.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO purchase order id; primary key for purchase orders. |
line |
Array of line item structs that make up the transaction; each line carries an Amount, DetailType, and detail subobject (e.g. SalesItemLineDetail). |
memo |
Memo text on the purchase order shown to the vendor. |
shipto |
QBO reference object for the customer / location goods are being shipped to. |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
duedate |
Date the transaction is due. |
txndate |
Transaction date as recorded in QuickBooks (the user-facing accounting date). |
classref |
QBO reference object pointing to the classes entity used for class tracking on this row. |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
postatus |
Purchase order status (Open or Closed). |
shipaddr |
Shipping address struct (line1-5, City, CountrySubDivisionCode, PostalCode, etc.). |
totalamt |
Total amount of the transaction in the transaction's currency. |
docnumber |
User-visible reference / document number for the transaction (e.g. invoice number, check number). |
linkedtxn |
Array of references to other QBO transactions linked to this one (e.g. invoices paid by a payment). |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
vendorref |
QBO reference object pointing to the vendors entity for this transaction. |
vendoraddr |
Address struct for the vendor as recorded on the purchase order. |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
customfield |
Array of CustomField structs ({DefinitionId, Name, Type, StringValue}) defined on the transaction. |
emailstatus |
Status of any email delivery for the transaction (NotSet, NeedToSend, EmailSent). |
privatenote |
Free-text internal note on the transaction; not shown to customers/vendors. |
apaccountref |
QBO reference object for the Accounts Payable account used to record the liability. |
exchangerate |
Exchange rate from the transaction currency to the company's home currency at transaction time. |
salestermref |
QBO reference object for the sales term applied (links to terms). |
txntaxdetail |
Tax detail struct for the transaction (TotalTax, TaxLine array, TxnTaxCodeRef). |
departmentref |
QBO reference object pointing to the departments entity this row is associated with. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
refund_receipts
Refund receipts issued to customers (cash refunds back out of a bank/credit-card account); one row per refund receipt.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO refund receipt id; primary key for refund receipts. |
line |
Array of line item structs that make up the transaction; each line carries an Amount, DetailType, and detail subobject (e.g. SalesItemLineDetail). |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
balance |
Outstanding balance on the transaction in the transaction's currency (0 when fully paid/applied). |
txndate |
Transaction date as recorded in QuickBooks (the user-facing accounting date). |
billaddr |
Billing address struct (line1-5, City, CountrySubDivisionCode, PostalCode, etc.). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
totalamt |
Total amount of the transaction in the transaction's currency. |
billemail |
Email address struct ({Address: ...}) used for billing communications. |
docnumber |
User-visible reference / document number for the transaction (e.g. invoice number, check number). |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
customfield |
Array of CustomField structs ({DefinitionId, Name, Type, StringValue}) defined on the transaction. |
customerref |
QBO reference object pointing to the customers entity for this transaction. |
printstatus |
Print status for the transaction (NotSet, NeedToPrint, PrintComplete). |
customermemo |
Customer-visible memo struct ({value: ...}) shown on the printed/emailed transaction. |
exchangerate |
Exchange rate from the transaction currency to the company's home currency at transaction time. |
hometotalamt |
Total amount of the transaction converted to the company's home currency using exchangerate. |
txntaxdetail |
Tax detail struct for the transaction (TotalTax, TaxLine array, TxnTaxCodeRef). |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
paymentmethodref |
QBO reference object for the payment method used (links to payment_methods). |
deposittoaccountref |
QBO reference to the bank / credit-card account the refund was paid out of. |
applytaxafterdiscount |
Whether tax is applied to the line subtotal after the discount is subtracted (true) or before (false). |
sales_receipts
Sales receipts for paid-in-full sales (no A/R involved); one row per sales receipt.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO sales receipt id; primary key for sales receipts. |
line |
Array of line item structs that make up the transaction; each line carries an Amount, DetailType, and detail subobject (e.g. SalesItemLineDetail). |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
balance |
Outstanding balance on the transaction in the transaction's currency (0 when fully paid/applied). |
txndate |
Transaction date as recorded in QuickBooks (the user-facing accounting date). |
billaddr |
Billing address struct (line1-5, City, CountrySubDivisionCode, PostalCode, etc.). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
shipaddr |
Shipping address struct (line1-5, City, CountrySubDivisionCode, PostalCode, etc.). |
totalamt |
Total amount of the transaction in the transaction's currency. |
billemail |
Email address struct ({Address: ...}) used for billing communications. |
docnumber |
User-visible reference / document number for the transaction (e.g. invoice number, check number). |
linkedtxn |
Array of references to other QBO transactions linked to this one (e.g. invoices paid by a payment). |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
customfield |
Array of CustomField structs ({DefinitionId, Name, Type, StringValue}) defined on the transaction. |
customerref |
QBO reference object pointing to the customers entity for this transaction. |
emailstatus |
Status of any email delivery for the transaction (NotSet, NeedToSend, EmailSent). |
printstatus |
Print status for the transaction (NotSet, NeedToPrint, PrintComplete). |
customermemo |
Customer-visible memo struct ({value: ...}) shown on the printed/emailed transaction. |
exchangerate |
Exchange rate from the transaction currency to the company's home currency at transaction time. |
hometotalamt |
Total amount of the transaction converted to the company's home currency using exchangerate. |
txntaxdetail |
Tax detail struct for the transaction (TotalTax, TaxLine array, TxnTaxCodeRef). |
paymentrefnum |
Customer-provided reference number for the payment captured on this sales receipt. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
paymentmethodref |
QBO reference object for the payment method used (links to payment_methods). |
deposittoaccountref |
QBO reference to the bank / Undeposited Funds account the receipt funds go into. |
applytaxafterdiscount |
Whether tax is applied to the line subtotal after the discount is subtracted (true) or before (false). |
tax_agencies
Tax agencies (government tax authorities) configured in QuickBooks; one row per agency.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO tax agency id; primary key for tax agencies. |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
displayname |
Display name of the tax agency (e.g. Washington State Department of Revenue). |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
taxtrackedonsales |
True when this agency's taxes are tracked on sales transactions. |
taxregistrationnumber |
Company's tax registration number with this agency, when provided. |
taxtrackedonpurchases |
True when this agency's taxes are tracked on purchase transactions. |
tax_codes
Tax codes used to classify the taxability of transactions and lines; one row per tax code.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO tax code id; primary key for tax codes. |
name |
Display name of the entity in QuickBooks. |
active |
Whether the entity is active in QuickBooks; inactive entities are hidden from most UI lists. |
hidden |
True when the tax code is hidden from the UI tax code picker. |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
taxable |
Whether the entity / line is subject to sales tax. |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
taxgroup |
True when this tax code represents a group of multiple underlying tax rates. |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
description |
Free-text description of the entity, shown to users in QuickBooks. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
salestaxratelist |
Struct containing the array of tax rates applied to sales transactions for this code. |
purchasetaxratelist |
Struct containing the array of tax rates applied to purchase transactions for this code. |
tax_rates
Individual tax rates referenced by tax codes; one row per rate.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO tax rate id; primary key for tax rates. |
name |
Display name of the entity in QuickBooks. |
active |
Whether the entity is active in QuickBooks; inactive entities are hidden from most UI lists. |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
agencyref |
QBO reference to the tax_agencies row this rate is remitted to. |
ratevalue |
Tax rate as a percentage (e.g. 8.5 means 8.5%). |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
description |
Free-text description of the entity, shown to users in QuickBooks. |
displaytype |
How the rate is shown in the UI (e.g. TaxOnAmount, TaxOnTax). |
specialtaxtype |
Special tax classification, when the rate is of a special type. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
effectivetaxrate |
Array of EffectiveTaxRate entries giving the rate value and the date range it is effective for. |
terms
Sales terms / payment terms used on customer and vendor transactions; one row per term.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO term id; primary key for sales terms. |
name |
Display name of the entity in QuickBooks. |
type |
Term type (STANDARD for net-X terms or DATE_DRIVEN for day-of-month terms). |
active |
Whether the entity is active in QuickBooks; inactive entities are hidden from most UI lists. |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
duedays |
Number of days from the transaction date until the balance is due (for STANDARD terms). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
discountdays |
Number of days after the transaction within which paying earns the early-payment discount. |
dayofmonthdue |
Day of the month the balance is due (for DATE_DRIVEN terms). |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
discountpercent |
Early-payment discount percentage (e.g. 2.0 for 2% off). |
duenextmonthdays |
For date-driven terms, the cutoff day-of-month after which the due date rolls into the following month. |
discountdayofmonth |
Day of the month by which payment must be received to earn the discount (for DATE_DRIVEN terms). |
time_activities
Time tracking entries for employees and vendors, optionally billable to a customer; one row per time activity.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO time activity id; primary key for time activities. |
hours |
Hours portion of the time spent (combined with minutes for total time). |
nameof |
Whether the time was logged by an Employee or a Vendor; determines which of employeeref / vendorref is populated. |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
sparse |
True when the entity payload returned by QBO is a sparse update (only changed fields populated). |
itemref |
QBO reference to the service item the time was logged against. |
minutes |
Minutes portion of the time spent (combined with hours for total time). |
taxable |
Whether the entity / line is subject to sales tax. |
txndate |
Transaction date as recorded in QuickBooks (the user-facing accounting date). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
hourlyrate |
Hourly rate used to compute billable amount for this activity. |
customerref |
QBO reference object pointing to the customers entity for this transaction. |
description |
Free-text description of the work performed during this time activity. |
employeeref |
QBO reference to the employees row whose time this activity records (populated when nameof = Employee). |
billablestatus |
Billability of the activity (Billable, NotBillable, or HasBeenBilled). |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
transfers
Bank transfers between two QuickBooks accounts; one row per transfer transaction.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO transfer id; primary key for bank transfers. |
amount |
Amount transferred, in the transaction's currency. |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
txndate |
Transaction date as recorded in QuickBooks (the user-facing accounting date). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
privatenote |
Free-text internal note on the transaction; not shown to customers/vendors. |
exchangerate |
Exchange rate from the transaction currency to the company's home currency at transaction time. |
toaccountref |
QBO reference to the account that receives the transferred funds. |
fromaccountref |
QBO reference to the account the transferred funds are drawn from. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
vendors
QuickBooks vendor master records; one row per vendor.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO vendor id; primary key for vendors. |
fax |
Fax phone struct ({FreeFormNumber: ...}). |
title |
Title or salutation prefix (e.g. Mr., Dr.). |
active |
Whether the entity is active in QuickBooks; inactive entities are hidden from most UI lists. |
mobile |
Mobile phone struct ({FreeFormNumber: ...}). |
suffix |
Name suffix (e.g. Jr., III). |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
acctnum |
Vendor's account number for this company (as assigned by the vendor). |
balance |
Current open A/P balance owed to this vendor, in the vendor's currency. |
termref |
QBO reference to the default sales term used for this vendor (links to terms). |
webaddr |
Website struct ({URI: ...}) for the entity. |
billaddr |
Billing address struct (line1-5, City, CountrySubDivisionCode, PostalCode, etc.). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
givenname |
First (given) name of the person. |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
familyname |
Last (family) name of the person. |
middlename |
Middle name of the person. |
vendor1099 |
True when the vendor is flagged as a 1099 contractor for U.S. tax reporting. |
companyname |
Company name associated with the entity. |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
displayname |
Unique display name shown in QuickBooks lists for this entity. |
primaryphone |
Primary phone struct ({FreeFormNumber: ...}). |
taxidentifier |
Vendor's tax id (e.g. SSN or EIN), when provided. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
primaryemailaddr |
Primary email address struct ({Address: ...}). |
printoncheckname |
Name to print on checks made out to / from this entity. |
vendor_credits
Vendor credits (credits received from vendors that offset future bills); one row per vendor credit.
| Column | Description |
|---|---|
_airbyte_raw_id |
Airbyte raw record id used for deduping/joining within the raw sync. |
_airbyte_extracted_at |
Timestamp when this row was extracted by Airbyte. |
_airbyte_meta |
Airbyte metadata payload for the extracted row. |
_airbyte_generation_id |
Airbyte generation identifier for the sync batch that produced this row. |
id |
QBO vendor credit id; primary key for vendor credits. |
line |
Array of line item structs that make up the transaction; each line carries an Amount, DetailType, and detail subobject (e.g. SalesItemLineDetail). |
domain |
QuickBooks data domain for the entity (e.g. QBO). |
txndate |
Transaction date as recorded in QuickBooks (the user-facing accounting date). |
metadata |
QBO ModificationMetaData object with CreateTime and LastUpdatedTime for the entity. |
totalamt |
Total amount of the transaction in the transaction's currency. |
docnumber |
User-visible reference / document number for the transaction (e.g. invoice number, check number). |
synctoken |
Optimistic-concurrency token returned by QBO; required when updating the entity in the source system. |
vendorref |
QBO reference object pointing to the vendors entity for this transaction. |
currencyref |
QBO reference object for the currency of the transaction or entity (e.g. {value: 'USD', name: 'United States Dollar'}). |
apaccountref |
QBO reference object for the Accounts Payable account used to record the liability. |
exchangerate |
Exchange rate from the transaction currency to the company's home currency at transaction time. |
departmentref |
QBO reference object pointing to the departments entity this row is associated with. |
airbyte_cursor |
Airbyte incremental cursor value used by the connector to track sync progress for this row. |
src_referral_candy
Referral program data from ReferralCandy, including campaign definitions and referral events.
campaigns
ReferralCandy referral campaigns; one row per campaign configured in the ReferralCandy account.
| Column | Description |
|---|---|
campaign_id |
Unique ReferralCandy campaign identifier; primary key. |
campaign_name |
Human-readable name of the referral campaign as configured in ReferralCandy (e.g. Tin Can Referral Program). |
campaign_state |
Current state of the campaign (e.g. ACTIVE, STOPPED). |
join_url |
Public URL where new advocates can join / sign up for this referral campaign. |
referrals
Individual referral events captured by ReferralCandy; one row per referral (a referring customer sending a referred prospect).
| Column | Description |
|---|---|
referral_email |
Email address of the referred person (the prospect who was referred into the program). |
referring_email |
Email address of the referring customer (the advocate who made the referral). |
referral_timestamp |
Timestamp when the referral was recorded by ReferralCandy. Timestamp is in UTC. |
campaign_id |
ReferralCandy campaign id this referral belongs to; foreign key to campaigns.campaign_id. |
external_reference_id |
ReferralCandy's unique identifier for this referral event; primary key for the table. |
src_lumanu
Creator and influencer payments from Lumanu, the platform Marketing uses to pay creators and manage their tax compliance. Loaded nightly by the "Import Lumanu" Retool Workflow, which calls the Lumanu REST API and rewrites every table with INSERT OVERWRITE.
READ BEFORE USING THIS SCHEMA:
(1) EVERY MONEY COLUMN IS AN INTEGER IN MINOR UNITS, not dollars. Each is paired with an
*_denomination column reading 'us_cents', so 100 means $1.00. Divide by 100. This is the
single most likely way to be wrong by a factor of one hundred.
(2) These tables are a FULL SNAPSHOT of Lumanu as of the last run, not an audit trail. The API offers no incremental filter of any kind, so each run replaces the table wholesale. A row that disappears from Lumanu disappears here, and historical values are restated rather than preserved.
(3) TOTAL CREATOR COST IS NOT JUST PAYABLES. Lumanu's own fee appears only on funding
(fee_amount, fee_percent). Summing payable.amount alone understates what Tin Can
actually spent. When adding the fee, FILTER funding ON BOTH method = 'invoice' AND
status = 'funded': balance records carry no fee, and an opened invoice's fee is charged
against money that has not left the account.
(4) CONTAINS THIRD-PARTY PII: creator names and email addresses on payable and partner, and
a billing contact email on funding.
payable
One row per payment obligation to a creator. The core spend record, and the table most questions about creator marketing should start from.
TWO STATUS COLUMNS, AND THEY ARE NOT INTERCHANGEABLE. status is the coarse commitment state and payable_status the finer operational one. will_pay DOES NOT MEAN PAID — it reads like a settled state but pairs with payable_status = 'awaiting_payee', meaning Tin Can has committed the money and the creator has not yet received it. Filtering on status in ('paid','will_pay') and summing amount therefore overstates cash actually disbursed. Use status = 'paid' for money out the door.
The Lumanu API returns status as null on a freshly created draft, so neither status column is guaranteed populated.
| Column | Description |
|---|---|
id |
Lumanu's UUID for the payable. Primary key. |
workspace_id |
The Lumanu workspace this payable belongs to; foreign key to workspace.id. |
project_id |
Project this payable is attributed to; foreign key to project.id. Nullable in the API, but payables are normally created against a project, so project-level attribution is generally available — measure coverage rather than assuming it is absent. Archived projects still own historical payables, which is why the loader requests them with include_archived. |
invoice_number |
Lumanu's own sequential invoice number, and the reference Marketing works from. IT IS ALSO THE CROSS-SYSTEM JOIN KEY TO META. Ads built from this payable's creator content carry it as utm_lpid inside src_facebook_ads.ad_creatives.url_tags, which links creator cost here to media spend on the Meta side. The same parameter reaches GA4 on click, so it also connects to sessions and orders. Coverage depends on Marketing following the ad-setup process — measure it rather than assuming every payable is referenced. |
vendor_email |
Email address of the creator being paid. CONTAINS PII. |
vendor_display_name |
Display name of the creator being paid, as held by Lumanu. CONTAINS PII. |
vendor_status |
Onboarding state of the payee at the time of the snapshot, e.g. awaiting signup. Describes the creator, not the payment. |
payee_lumanu_id |
Lumanu's stable identifier for the creator, and THE join key to partner.lumanu_id — verified against real data to resolve cleanly for every payable. Always use this for creator identity, never the typed-in creator-name custom field, which is free text and disagrees with partner.name on a meaningful share of rows. |
amount |
Payment amount as an INTEGER IN MINOR UNITS — see amount_denomination. 100 means $1.00. Divide by 100 for dollars. |
amount_denomination |
Unit amount is expressed in, currently always 'us_cents'. Tested with accepted_values so that a move to multi-currency fails the build rather than silently changing what every existing dollar calculation means. |
description |
Free-text description of the payment, written by whoever created it in Lumanu. |
due_date |
When the payment is due. Nullable. |
status |
Coarse commitment state. Observed values are paid and will_pay; Lumanu also documents approved, unapproved and canceled, and returns null for drafts. Deliberately NOT tested with accepted_values — the documented list has not been observed in full here, and Lumanu's documentation has proven unreliable on enums. will_pay is not paid. |
payable_status |
Finer operational state. Observed values are paid and awaiting_payee; Lumanu also documents not_approved, approved, scheduled, awaiting_payment, canceled and reversed. Use this when you need to know where in the payment pipeline something sits; use status for the simpler paid-or-not question. |
created_at |
When the payable was created in Lumanu. |
updated_at |
When the payable was last modified in Lumanu. NOT the freshness anchor — it goes stale whenever nobody edits a payable, which would produce false staleness alarms. |
custom_fields |
Object holding Marketing's custom fields for this payable, keyed by a normalized snake_case slug derived from each field's label — for example custom_fields:campaign_name::string. THE KEYS ARE DYNAMIC. Marketing can add, rename or remove custom fields in Lumanu at any time, and the loader rebuilds this map from whatever the API returns rather than from a fixed list. Consult custom_field_policy for the current set of fields, their types and their dropdown options rather than assuming the keys present today. TRAPS: every value is a STRING regardless of the field's declared type, so dates need casting. The usage-duration field holds bare numbers with the unit only in its label, except for a non-numeric perpetual-rights value — use try_cast, and note that an average over it silently excludes exactly the perpetual cases. The creator-name field is free text and does NOT reliably join to partner — it disagrees with partner.name on a meaningful share of rows. Use payee_lumanu_id for creator identity. The campaign-name field is free text with no validation in Lumanu and NO CLEANSING LAYER in the warehouse. Misspellings and inconsistent naming of the same campaign are expected and will not be corrected upstream, so a naive GROUP BY splits one campaign across several strings and understates each of them, with nothing in the output signalling it. Treat it as a label to be reconciled, not a reliable key. CONTAINS PII: the creator-name field holds a person's name. |
_loaded_at |
When the Retool Workflow last loaded this table. The freshness anchor. Uniform across all rows because each run fully overwrites the table. Populated with current_timestamp(), NOT sysdate() — sysdate() returns UTC as TIMESTAMP_NTZ and casting it into TIMESTAMP_TZ staples the session's offset onto a UTC reading, storing a time in the future by that offset, which would make freshness always pass and mask a stalled pipeline. |
_loaded_by |
Provenance of the load, e.g. 'retool_lumanu_workflow'. |
custom_field_policy
Definition of each custom field Marketing has configured on payables: its label, type, whether it is required, and the option list for dropdowns.
This table exists to be read alongside payable.custom_fields, which stores values but no metadata. It answers two questions that table cannot: what fields exist right now, and what the full set of allowed dropdown values is — including options that no payable happens to use yet.
It is also the schema-drift detector. When Marketing adds or renames a field, it shows up here rather than silently changing the shape of payable.custom_fields. Because the load is a full snapshot, only the CURRENT definition is kept: a renamed field leaves no trace of its former label, and every payable is restated under the new one.
| Column | Description |
|---|---|
id |
Lumanu's UUID for the policy. Primary key, and the STABLE identifier — labels get renamed, this does not. |
workspace_id |
The workspace this policy belongs to; foreign key to workspace.id. Injected by the loader — the Lumanu endpoint is workspace-scoped and does not return it in the row. |
label |
Display label as configured in Lumanu, e.g. 'Usage duration (days)'. The key used in payable.custom_fields is a normalized snake_case slug of this value, so casing and punctuation differences here do not reach the data. |
field_type |
Field type, lowercase: text, local_date, dropdown or file. Renamed from the API's type to avoid a bare type column. Note these are lowercase snake_case despite Lumanu's documentation showing CamelCase. |
is_required |
Whether Lumanu requires the field on new payables. Renamed from the API's required. This binds new payables only — historical rows created before a field existed, or before it became required, can still be empty. |
is_unique |
Whether Lumanu enforces distinct values across payables. Renamed from the API's unique. Applies to text fields only. |
dropdown_options |
Array of {id, value} objects for dropdown fields, empty for every other type. This is the authoritative list of allowed values — use it rather than selecting distinct values out of payable.custom_fields, which only shows options somebody has actually chosen. |
_loaded_at |
When the Retool Workflow last loaded this table. The freshness anchor. |
_loaded_by |
Provenance of the load, e.g. 'retool_lumanu_workflow'. |
partner
One row per creator (Lumanu calls them vendors or partners) associated with the workspace. The creator roster, including tax and compliance state.
This is the authoritative source for creator identity. Join it to payable on payable.payee_lumanu_id = partner.lumanu_id, never on a name — the creator-name custom field on payables is free text typed by whoever created the payment.
| Column | Description |
|---|---|
id |
Lumanu's UUID for the partner record. Primary key. |
workspace_id |
The workspace this partner is associated with; foreign key to workspace.id. Injected by the loader — the Lumanu endpoint is workspace-scoped and does not return it in the row. |
name |
Creator's name as held by Lumanu. CONTAINS PII. |
lumanu_id |
Lumanu's stable cross-workspace identifier for the creator. The join key to payable.payee_lumanu_id. |
email |
Creator's email address. CONTAINS PII. |
profile_image_url |
URL of the creator's profile image, when set. |
status |
Tax and compliance state, NOT a payment state. Tracks progress through W-9 and W-8 collection, e.g. missing_metadata_file_us_taxes, awaiting_w9_submission, completed_w9. Null until onboarding starts. Do not confuse with payable.status. |
tax_origin_country |
Country used to determine which tax form the creator must submit. |
tags |
Array of free-text tags applied to the creator in Lumanu. |
notes |
Free-text internal notes recorded against the creator. |
has_approval_grant |
Whether this partner has been granted approval rights in the workspace. |
created_at |
When the partner record was created in Lumanu. |
updated_at |
When the partner record was last modified. NOT the freshness anchor — it goes stale whenever a creator's details simply stop changing. |
_loaded_at |
When the Retool Workflow last loaded this table. The freshness anchor. |
_loaded_by |
Provenance of the load, e.g. 'retool_lumanu_workflow'. |
funding
One row per funding record. THIS TABLE HOLDS TWO STRUCTURALLY DIFFERENT KINDS OF RECORD, distinguished by method, and they must never be summed together.
method = 'invoice' is real money: Tin Can transferring funds into the Lumanu wallet against an invoice. These records carry Lumanu's fee.
method = 'balance' is an internal allocation of wallet funds already held, earmarked against payables. No money moves and no fee applies.
DO NOT SUM amount ACROSS METHODS. Doing so adds money transferred in to money earmarked out of funds already present, double-counting the same dollars and producing a figure that corresponds to nothing real. It is the easiest way to badly overstate creator spend.
NEVER USE THIS TABLE AS CREATOR SPEND — that comes from payable. This table's analytical value is fee_amount, the only place Lumanu's own charge appears anywhere in the schema, which must be added to paid payables to get true creator-marketing cost.
The funding-to-payable link is not exposed as a key — the list endpoint returns no payable ids — but it IS recoverable by reconciliation. Invoice records name what they cover in description, and their base_amount ties out to groups of paid payables. Reconcile on base_amount, never amount, which includes the fee. Treat the result as arithmetic rather than a join: one record can cover several campaigns at once, so allocating a fee to a single campaign is an apportionment and should be reported as an estimate.
FILTER ON status IN ANY COST FIGURE. Only funded records represent money that moved. Including an opened record's fee_amount charges Tin Can for a payment it has not made, and the resulting overstatement is small enough to pass unnoticed.
| Column | Description |
|---|---|
id |
Lumanu's UUID for the funding record. Primary key. |
workspace_id |
The workspace being funded; foreign key to workspace.id. |
amount |
Funding amount for this record as an INTEGER IN MINOR UNITS — see amount_denomination. Equals base_amount plus fee_amount when the fee is additive. DO NOT SUM THIS COLUMN WITHOUT FILTERING ON method — see the table description. Summing across methods double-counts. |
amount_denomination |
Unit amount is expressed in, currently always 'us_cents'. |
base_amount |
Funding amount before Lumanu's fee, in minor units. THIS is the column that reconciles against paid payables, not amount. Prefer it over subtracting fee_amount from amount, which is only correct when is_fee_additive is true. |
fee_amount |
Lumanu's fee on this funding, in minor units. Together with fee_percent, the only visibility into what the platform costs. ONLY COUNT THIS WHERE status = 'funded' — a fee on an opened invoice is charged against money that has not left the account. |
fee_percent |
Fee rate applied to this funding record, as a percentage. |
is_fee_additive |
Whether the fee was added on top of base_amount or taken out of it. Determines how amount, base_amount and fee_amount relate. |
method |
THE MOST IMPORTANT COLUMN ON THIS TABLE. invoice means real money transferred into the wallet against an invoice; balance means an internal earmark of funds already held, where nothing moves and no fee applies. Any aggregate over this table must filter on method first, or it mixes the two and double-counts. |
status |
State of the funding record. Observed values are funded (the transfer arrived) and opened (raised but not settled). Distinct from payable.status, which describes a payment to a creator rather than money coming in. No accepted_values test is applied because the observed set is not known to be complete. |
invoice_number |
Lumanu's sequential invoice number for this funding record. |
description |
Free-text description of the funding. |
due_date |
When the funding invoice is due. Nullable. |
po_number |
Purchase order number recorded against the funding, when supplied. |
bill_to |
Billing contact recorded on the funding invoice. |
company_name |
Company name recorded on the funding invoice. |
company_address_one |
First line of the billing address on the funding invoice. |
recipient_email |
Email the funding invoice was sent to. CONTAINS PII. |
additional_notes |
Free-text notes recorded against the funding. |
created_at |
When the funding record was created in Lumanu. |
updated_at |
When the funding record was last modified. NOT the freshness anchor. |
_loaded_at |
When the Retool Workflow last loaded this table. The freshness anchor. |
_loaded_by |
Provenance of the load, e.g. 'retool_lumanu_workflow'. |
project
One row per project — Lumanu's organizational container for grouping payables and tracking budget. Optional: a payable need not belong to one.
The loader deliberately requests archived projects as well as active ones, because archived projects still own historical payables. Without them, payable.project_id would join to nothing for older spend. Filter on archived when you want only live projects.
| Column | Description |
|---|---|
id |
Lumanu's UUID for the project. Primary key, and the target of payable.project_id. |
workspace_id |
The workspace this project belongs to; foreign key to workspace.id. Injected by the loader — the Lumanu endpoint is workspace-scoped and does not return it in the row. |
name |
Project name as shown in Lumanu. |
alias |
Short alias for the project, when set. |
description |
Free-text description of the project. |
po_number |
Purchase order number associated with the project, when set. |
budget_amount |
Project budget as an INTEGER IN MINOR UNITS — see budget_denomination. Nullable; a project need not carry a budget. |
budget_denomination |
Unit budget_amount is expressed in. Nullable, and null whenever no budget is set — which is why this column carries no accepted_values test. |
archived |
Whether the project has been archived in Lumanu. Archived projects are included in this table on purpose so that historical payables still resolve. |
created_at |
When the project was created in Lumanu. |
updated_at |
When the project was last modified. NOT the freshness anchor. |
_loaded_at |
When the Retool Workflow last loaded this table. The freshness anchor. |
_loaded_by |
Provenance of the load, e.g. 'retool_lumanu_workflow'. |
wallet_transaction
Bank-style ledger of the Lumanu wallet: one row per movement in or out, with a running balance. The lowest-level view of money in Lumanu, and the right table for reconciliation rather than for analysis of creator spend.
For campaign and creator questions use payable; this table records the mechanical movements those payments produce, plus deposits, withdrawals and fees.
| Column | Description |
|---|---|
id |
Lumanu's UUID for the transaction. Primary key. |
workspace_id |
The workspace whose wallet this transaction belongs to; foreign key to workspace.id. Injected by the loader — the Lumanu endpoint is workspace-scoped and does not return it in the row. |
description |
Free-text description of the transaction as recorded by Lumanu. |
amount |
Transaction amount as an INTEGER IN MINOR UNITS — see amount_denomination. |
amount_denomination |
Unit amount is expressed in, currently always 'us_cents'. |
balance_change |
Signed change to the wallet balance, in minor units. Negative for money leaving the wallet. Use this rather than amount when you need direction. |
ending_balance |
Wallet balance after this transaction, in minor units. |
status |
Whether the transaction is pending or processed. |
type |
Kind of movement — deposit, fee, payment, withdrawal or invoice. |
created_at |
When the transaction occurred. |
_loaded_at |
When the Retool Workflow last loaded this table. The freshness anchor. |
_loaded_by |
Provenance of the load, e.g. 'retool_lumanu_workflow'. |
workspace
One row per Lumanu workspace — the account container that owns creators, projects, payables and a wallet. Tin Can operates a single workspace, so this table is effectively a lookup, but every other table carries workspace_id so that a second workspace would not require reshaping.
| Column | Description |
|---|---|
id |
Lumanu's UUID for the workspace. Primary key, and the target of every workspace_id in this schema. |
display_name |
Workspace name as shown in Lumanu. |
profile_image_url |
URL of the workspace's profile image, when set. |
funding_fee_percent |
Default fee rate Lumanu applies to funding for this workspace. The per-record rate actually charged is on funding.fee_percent; this is the configured default. |
additive_funding_fee |
Whether the workspace's default fee is added on top of the funded amount or taken out of it. Mirrored per record by funding.is_fee_additive. |
vendor_invite_url |
Link used to invite creators into the workspace. |
created_at |
When the workspace was created in Lumanu. |
updated_at |
When the workspace was last modified. NOT the freshness anchor. |
_loaded_at |
When the Retool Workflow last loaded this table. The freshness anchor. |
_loaded_by |
Provenance of the load, e.g. 'retool_lumanu_workflow'. |
src_growthbook
Website experiment data from GrowthBook, the platform Product uses to run A/B tests on the Shopify storefront. The GrowthBook SDK and the Shopify Web Pixel write to an Amazon Firehose stream that lands these tables. GrowthBook reads them back over its own Snowflake connection to compute experiment results and stores no copy of its own, so this schema is the record.
EXPERIMENT RESULTS ARE READ IN THE GROWTHBOOK UI, NOT HERE. These tables hold only raw exposures and events. GrowthBook computes the metrics, the statistics and the verdicts from them, and it is where anyone asking how an experiment performed should look. This schema is deliberately NOT exposed to Hex — neither report role has access — because the traps below are easier to avoid than to steer an AI around.
READ BEFORE USING THIS SCHEMA:
(1) user_id IS NULL ON EVERY ROW OF BOTH TABLES. anonymous_id, a per-browser identifier, is
the only unit available. Nothing here can be tied to a customer, subscription or device
except by going through properties:order_id on a completed checkout and joining to
src_shopify.orders. The identity_map view was created to hold exactly that mapping and
is permanently empty because our tracking never captures a user id — do not join to it.
(2) TIMESTAMPS ARE TIMESTAMP_NTZ HOLDING UTC. They carry no timezone and our Snowflake session
is Pacific, so comparing them to current_timestamp(), or joining them to any analytics_db
model, is wrong by seven or eight hours AND IN THE DIRECTION THAT HIDES THE ERROR — the
newest row looks like the future rather than the past, so a staleness check passes
trivially instead of failing. properties:received_at is the same instant as an ISO string
with a Z, and is the easiest way to confirm this for yourself.
(3) properties:value CHANGES TYPE BY EVENT. It is a number on checkout_started and
checkout_completed but a quoted string on product_added_to_cart, so an uncast
comparison behaves differently depending on which events a query happens to include.
Always try_to_double(properties:value::text).
(4) THE CHECKOUT FUNNEL IS NOT A FUNNEL. checkout_completed OUTNUMBERS checkout_started,
because Shop Pay and Apple Pay bypass the checkout page entirely and this traffic is
overwhelmingly mobile. A completion rate computed as completed over started comes out above
100%. This is not a broken event: counting page_viewed rows on real checkout URLs gives
the same answer from an independent signal. Until the theme fires on accelerated checkout
paths, checkout_started CANNOT serve as a funnel denominator.
(5) AN EXPOSURE AND THE PAGE VIEW THAT TRIGGERED IT SHARE THE SAME SECOND, and sub-second
ordering decides which lands first. Filtering events on >= exposure_timestamp therefore
discards the exposure's own page view for a large share of visitors, which quietly wrecks
any per-visitor engagement measure while leaving purchase measures almost untouched. Allow
a small tolerance on the lower bound. GrowthBook's own metrics do this with a negative
metric delay.
events
One row per tracked website event. Only four event_name values exist — page_viewed, product_added_to_cart, checkout_started and checkout_completed — and there is no catch-all, so anything not on that list was never captured.
THE TWO SOURCES ARE NOT REDUNDANT, THEY ARE DISJOINT. shopify_web_pixel fires page_viewed, checkout_started and checkout_completed; shopify_theme fires product_added_to_cart and nothing else. No event type comes from both, so there is no double counting — but it does mean add-to-cart is instrumented in the theme rather than the pixel, and a theme change can break that one event while every other event keeps flowing. Product-detail-page work is the likely trigger.
Filter environment_name = 'production'. Staging and development rows exist in small numbers and are test traffic.
| Column | Description |
|---|---|
event_id |
Identifier for the event. NOT GUARANTEED UNIQUE — a small number of rows repeat, so dedupe before counting events as actions rather than as rows. |
event_timestamp |
When the event occurred. TIMESTAMP_NTZ HOLDING UTC — see the schema header. A handful of rows carry an implausible 1978 date; bound queries by date rather than trusting the minimum. |
event_name |
One of page_viewed, product_added_to_cart, checkout_started, checkout_completed. No other values occur. |
anonymous_id |
Per-browser identifier assigned by the Shopify storefront, and THE join key to experiment_exposures.anonymous_id. This is the unit of analysis for every experiment. It does not survive a device change or a cleared browser, so it is a browser rather than a person. |
user_id |
NULL ON EVERY ROW. Our tracking never populates it. See the schema header. |
source_name |
Which integration emitted the event — shopify_web_pixel or shopify_theme. Disjoint by event type; see the table description. |
environment_name |
Filter to 'production'. Staging and development rows are test traffic. |
properties |
VARIANT payload whose keys vary by event type. Common to all: received_at, url, user_agent. Add-to-cart also carries items, currency and value. Both checkout events carry checkout_token, client_id, currency and value; only checkout_completed carries order_id. properties:order_id IS THE BRIDGE OUT OF THIS SCHEMA. It matches src_shopify.orders.id for the overwhelming majority of completed checkouts, which is what makes it possible to attach real, refund-aware, cancellation-aware revenue to a website experiment. Prefer Shopify for money: properties:value records the shopper's own currency on international orders without converting, so summing it across orders adds pounds and Australian dollars to US dollars. No email address, name, address or payment detail appears anywhere in this payload. The url key does carry full query strings including ad click identifiers. |
experiment_exposures
One row each time the GrowthBook SDK evaluates an experiment for a visitor — NOT one row per visitor. The same visitor re-evaluates on later page views, so dedupe to the first exposure per anonymous_id before treating these as assignments. A visitor is only ever assigned to one variation, so deduping is safe.
NO FRESHNESS CHECK IS SET ON THIS TABLE ON PURPOSE. Exposures only arrive while an experiment is live, so a quiet table is the normal state between experiments and a staleness alert here would cry wolf. events is the table that answers "is the pipeline alive", because it flows regardless.
An experiment that has been stopped in the GrowthBook UI keeps trickling exposures for weeks as cached SDK payloads expire in visitors' browsers. A slow decay toward zero is that, not a failure.
Filter environment_name = 'production'.
| Column | Description |
|---|---|
exposure_id |
Identifier for the exposure event. NOT GUARANTEED UNIQUE; a small number repeat. |
exposure_timestamp |
When the visitor was assigned. TIMESTAMP_NTZ HOLDING UTC — see the schema header. A handful of rows carry an implausible 1978 date. |
experiment_id |
The experiment key as set in GrowthBook, e.g. home-value-props. Includes smoke tests and an A/A validation experiment alongside real ones, so filter deliberately rather than assuming every key is a live test. |
variation_id |
Which variation the visitor received, as a STRING ('0' for control, '1' for the first treatment). Not numeric, despite appearances. |
anonymous_id |
Per-browser identifier; joins to events.anonymous_id. The unit of analysis. See the schema header on why there is no person-level identifier available. |
user_id |
NULL ON EVERY ROW. Our tracking never populates it. See the schema header. |
source_name |
Which integration emitted the exposure; shopify_theme for storefront experiments. |
environment_name |
Filter to 'production'. Staging and development rows are test traffic. |
properties |
VARIANT payload carrying received_at, url and user_agent. user_agent is what the GrowthBook device dimension is derived from — check for iPad and tablet BEFORE mobile, because an iPad's user agent also contains "mobile" and testing in the other order files every tablet as a phone. |