Skip to main content
RD Station is a marketing automation and lead generation platform that helps businesses attract, convert, and nurture leads. It provides tools for email marketing, landing page creation, lead scoring, and marketing analytics to improve conversion rates and customer acquisition.

Configuring RD Station as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the RD Station option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

  1. Click Next and you’ll be prompted to login with your account to grant permissions for Nekt to extract data from your RD Station Marketing account.
  2. After successful authentication, you’ll be prompted to configure additional settings:
    • Start Date: The earliest record date to sync. This defines the starting point for data extraction - only records created or modified after this date will be synchronized.
    • Enable Contact Custom Fields: Define whether the user should have access to details about contacts or not. Should be used with caution since the extraction time can increase significantly when enabled, as it requires an additional request for each contact.
    • Contacts Extraction Mode: Define which segmentation lists the connector should extract. Each segmentation will be extracted to a separate table in your Lakehouse.
      • Entire Lead Base: Extract all contacts from your account.
      • Segmentation Lists: Extract only contacts from specific segmentation lists.
      • Entire Lead Base and Segmentation Lists: Extract contacts from both the entire base and from specified segmentation lists.
    Please note contacts who are in different segmentation lists may be extracted multiple times.
    • Segmentation List IDs: The IDs of the segmentation lists to extract contacts from if you want to filter only specific lists to speed up extraction. If not provided, contacts from all segmentation lists will be extracted.
  3. Click Next.

2. Select streams

  1. The next step is letting us know which streams you want to bring. You can select entire groups of streams or only a subset of them.
    Tip: The stream can be found more easily by typing its name.
    The analytics_funnel stream is only available for RD accounts with access to the Advanced plan.The analytics_email_stats, analytics_workflow_email_stats and analytics_conversion_assets streams are only available for RD accounts with access to the Professional plan.The contact_events and contact_details streams are only available if you extract the entire lead base, either by selecting Entire Lead Base or Entire Lead Base and Segmentation Lists.
  2. Click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select the layer, a name for each table (which will contain the fetched data) and the type of sync.
  • Layer: companies in the Growth plan can choose in which layer the tables with the extracted data will be placed.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
  • Sync Type: depending on the data you are bringing to the lake, you can choose between INCREMENTAL and FULL_TABLE. Read more about Sync Types here.
Click Next.

4. Configure data source

Describe your data source for easy identification within your organization. You can inform things like what data it brings, to which team it belongs, etc. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can define some additional settings (if available).
  • Configure Delta Log Retention and determine for how log we should store old states of this table as it gets updated. Read more about this resource here.
  • Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
Click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Below you’ll find all available data streams from RD Station and their corresponding fields:
Stream for managing segmentation lists in your RD Station account. Segmentations allow you to group contacts based on specific criteria for targeted marketing campaigns.Key Fields:
FieldTypeDescription
idStringUnique identifier for the segmentation
nameStringName of the segmentation list
standardBooleanWhether this is a standard/default segmentation
process_statusStringCurrent processing status of the segmentation
created_atTimestampWhen the segmentation was created
updated_atTimestampWhen the segmentation was last updated
linksArrayArray of API links related to the segmentation
Stream for extracting contacts from segmentation lists. When extracting from the entire lead base, a single segmentation_contacts table is created. When extracting from specific segmentation lists, separate tables are created with the naming pattern segmentation_contacts_{segmentation_id}.Key Fields:
FieldTypeDescription
uuidStringUnique identifier for the contact
nameStringFull name of the contact
emailStringEmail address of the contact
last_conversion_dateTimestampDate of the last conversion event
created_atTimestampWhen the contact was created
updated_atTimestampWhen the contact was last updated
linksArrayArray of API links related to the contact
Detailed contact information including custom fields. This stream is only available when extracting the entire lead base and requires enabling the “Contact Custom Fields” option.
Note: Enabling this stream significantly increases extraction time as it requires an additional API request for each contact.
Key Fields:
FieldTypeDescription
uuidStringUnique identifier for the contact
nameStringFull name of the contact
emailStringPrimary email address
job_titleStringJob title of the contact
birthdateStringDate of birth
bioStringBiography or description
websiteStringPersonal or company website
personal_phoneStringPersonal phone number
mobile_phoneStringMobile phone number
cityStringCity of residence
stateStringState or province
countryStringCountry
twitterStringTwitter handle
facebookStringFacebook profile
linkedinStringLinkedIn profile
tagsArrayArray of tags assigned to the contact
extra_emailsArrayAdditional email addresses
legal_basesArrayArray of legal consent information
legal_bases.categoryStringCategory of the legal base
legal_bases.typeStringType of consent
legal_bases.statusStringConsent status
linksArrayArray of API links related to the contact
updated_atTimestampWhen the contact was last updated
+ Custom FieldsVariesAny custom fields defined in your RD Station account
Stream for extracting conversion events associated with contacts. This stream is only available when extracting the entire lead base.Key Fields:
FieldTypeDescription
idStringUnique identifier for the event
contact_uuidStringUUID of the associated contact
event_typeStringType of event (e.g., CONVERSION)
event_familyStringFamily/category of the event
event_identifierStringIdentifier of the conversion asset
event_timestampTimestampWhen the event occurred
payload.conversion_identifierStringIdentifier of the conversion point
payload.traffic_sourceStringSource of the traffic (e.g., organic, paid)
payload.traffic_mediumStringMedium of the traffic (e.g., cpc, email)
payload.traffic_campaignStringCampaign associated with the traffic
payload.+ Custom FieldsVariesAny custom fields captured during conversion
Stream for managing email marketing campaigns and their settings.Key Fields:
FieldTypeDescription
idStringUnique identifier for the campaign
nameStringName of the campaign
statusStringCurrent status of the campaign
total_itemsIntegerNumber of items/emails in the campaign
created_atTimestampWhen the campaign was created
updated_atTimestampWhen the campaign was last updated
userObjectObject containing information about the campaign creator
user.emailStringEmail of the user who created the campaign
user.linksArrayAPI links related to the user
Stream for managing individual email communications within campaigns.Key Fields:
FieldTypeDescription
idStringUnique identifier for the email
nameStringName of the email
statusStringCurrent status of the email
typeStringType of email
leads_countIntegerNumber of leads targeted by this email
send_atTimestampScheduled send time
created_atTimestampWhen the email was created
updated_atTimestampWhen the email was last updated
campaign_idStringID of the parent campaign
component_template_idStringID of the template used
is_predictive_sendingBooleanWhether predictive sending is enabled
sending_is_imminentBooleanWhether sending is about to happen
behavior_score_infoObjectObject containing behavior score settings
behavior_score_info.disengagedBooleanWhether to include disengaged contacts
behavior_score_info.engagedBooleanWhether to include engaged contacts
behavior_score_info.indeterminateBooleanWhether to include indeterminate contacts
Stream for managing marketing automation workflows.Key Fields:
FieldTypeDescription
idStringUnique identifier for the workflow
nameStringName of the workflow
user_email_createdStringEmail of the user who created the workflow
user_email_updatedStringEmail of the user who last updated the workflow
created_atTimestampWhen the workflow was created
updated_atTimestampWhen the workflow was last updated
configurationsObjectObject containing workflow settings
configurations.statusStringCurrent status of the workflow
Stream for managing landing pages used for lead capture.Key Fields:
FieldTypeDescription
idStringUnique identifier for the landing page
titleStringTitle of the landing page
statusStringCurrent status (e.g., published, draft)
conversion_identifierStringIdentifier used for tracking conversions
has_active_experimentBooleanWhether an A/B test is currently active
had_experimentBooleanWhether the page has had A/B tests in the past
created_atTimestampWhen the landing page was created
updated_atTimestampWhen the landing page was last updated
Stream for managing embeddable forms that can be placed on external websites.Key Fields:
FieldTypeDescription
idStringUnique identifier for the form
titleStringTitle of the form
statusStringCurrent status of the form
conversion_identifierStringIdentifier used for tracking conversions
created_atTimestampWhen the form was created
updated_atTimestampWhen the form was last updated
Stream for managing popup forms and lead capture overlays.Key Fields:
FieldTypeDescription
idStringUnique identifier for the popup
titleStringTitle of the popup
statusStringCurrent status of the popup
conversion_identifierStringIdentifier used for tracking conversions
triggerStringTrigger condition for displaying the popup
created_atTimestampWhen the popup was created
updated_atTimestampWhen the popup was last updated
Daily funnel analytics showing lead progression through marketing stages. Only available for accounts with the Advanced plan.Key Fields:
FieldTypeDescription
reference_dayTimestampDate of the analytics data
visitors_countIntegerNumber of website visitors
contacts_countIntegerNumber of new contacts generated
qualified_contacts_countIntegerNumber of qualified contacts (MQLs)
opportunities_countIntegerNumber of opportunities created
sales_countIntegerNumber of closed sales
Email campaign performance statistics. Only available for accounts with the Professional plan.Key Fields:
FieldTypeDescription
query_date_startTimestampStart date of the query period
query_date_endTimestampEnd date of the query period
campaign_idStringID of the campaign
campaign_nameStringName of the campaign
send_atTimestampWhen the email was sent
contacts_countIntegerNumber of contacts targeted
email_dropped_countIntegerNumber of emails dropped
email_delivered_countIntegerNumber of emails delivered
email_bounced_countIntegerNumber of emails bounced
email_opened_countIntegerNumber of emails opened
email_clicked_countIntegerNumber of emails clicked
email_unsubscribed_countIntegerNumber of unsubscribes
email_spam_reported_countIntegerNumber of spam reports
email_delivered_rateFloatDelivery rate
email_opened_rateFloatOpen rate
email_clicked_rateFloatClick rate
email_spam_reported_rateFloatSpam report rate
Email performance statistics for workflow automation emails. Only available for accounts with the Professional plan.Key Fields:
FieldTypeDescription
query_date_startTimestampStart date of the query period
query_date_endTimestampEnd date of the query period
workflow_idStringID of the workflow
workflow_nameStringName of the workflow
workflow_action_idStringID of the workflow action
email_nameStringName of the email
created_atTimestampWhen the workflow was created
updated_atTimestampWhen the workflow was last updated
contacts_countIntegerNumber of contacts processed
count_processedIntegerTotal processed count
email_dropped_countIntegerNumber of emails dropped
email_delivered_countIntegerNumber of emails delivered
email_hard_bounced_unique_countIntegerUnique hard bounces
email_soft_bounced_unique_countIntegerUnique soft bounces
email_bounced_unique_countIntegerTotal unique bounces
email_opened_unique_countIntegerUnique opens
email_clicked_unique_countIntegerUnique clicks
email_unsubscribed_countIntegerNumber of unsubscribes
email_spam_reported_countIntegerNumber of spam reports
email_delivered_rateFloatDelivery rate
email_opened_rateFloatOpen rate
email_clicked_rateFloatClick rate
email_spam_reported_rateFloatSpam report rate
Performance statistics for conversion assets (landing pages, forms, popups). Only available for accounts with the Professional plan.Key Fields:
FieldTypeDescription
query_date_startTimestampStart date of the query period
query_date_endTimestampEnd date of the query period
asset_idStringUnique identifier of the asset
asset_identifierStringConversion identifier of the asset
asset_typeStringType of asset (landing_page, form, popup)
asset_created_atTimestampWhen the asset was created
asset_updated_atTimestampWhen the asset was last updated
visits_countIntegerNumber of visits to the asset
conversion_countIntegerNumber of conversions
conversion_rateFloatConversion rate (conversions/visits)

Use Cases for Data Analysis

This guide outlines valuable business intelligence use cases when consolidating RD Station data, along with ready-to-use SQL queries that you can run on Explorer.

Lead Generation Analysis

1. Marketing Funnel Performance

Track the progression of leads through your marketing funnel over time to identify bottlenecks and opportunities. Business Value:
  • Identify which funnel stages have the highest drop-off rates
  • Track conversion rates between funnel stages
  • Monitor trends in lead generation and sales performance
  • Optimize marketing strategies based on funnel insights

SQL query

WITH
    daily_funnel AS (
        SELECT
            DATE(reference_day) AS reference_date,
            visitors_count,
            contacts_count,
            qualified_contacts_count,
            opportunities_count,
            sales_count,
            CAST(contacts_count AS DOUBLE) * 100.0 / NULLIF(visitors_count, 0) AS visitor_to_contact_rate,
            CAST(qualified_contacts_count AS DOUBLE) * 100.0 / NULLIF(contacts_count, 0) AS contact_to_mql_rate,
            CAST(opportunities_count AS DOUBLE) * 100.0 / NULLIF(qualified_contacts_count, 0) AS mql_to_opportunity_rate,
            CAST(sales_count AS DOUBLE) * 100.0 / NULLIF(opportunities_count, 0) AS opportunity_to_sale_rate
        FROM
            nekt_raw.rd_station_analytics_funnel
        WHERE
            DATE(reference_day) >= CURRENT_DATE - INTERVAL '30' DAY
    )
SELECT
    reference_date,
    visitors_count,
    contacts_count,
    qualified_contacts_count,
    opportunities_count,
    sales_count,
    ROUND(visitor_to_contact_rate, 2) AS visitor_to_contact_pct,
    ROUND(contact_to_mql_rate, 2) AS contact_to_mql_pct,
    ROUND(mql_to_opportunity_rate, 2) AS mql_to_opportunity_pct,
    ROUND(opportunity_to_sale_rate, 2) AS opportunity_to_sale_pct
FROM
    daily_funnel
ORDER BY
    reference_date DESC
reference_datevisitors_countcontacts_countqualified_contacts_countopportunities_countsales_countvisitor_to_contact_pctcontact_to_mql_pctmql_to_opportunity_pctopportunity_to_sale_pct
2024-11-2712,450234451231.8819.2326.6725.00
2024-11-2611,890212381021.7817.9226.3220.00
2024-11-2510,23418932821.8516.9325.0025.00
2024-11-248,92014528611.6319.3121.4316.67
2024-11-239,45616731721.7718.5622.5828.57
2024-11-2214,230289521442.0317.9926.9228.57

2. Lead Source Attribution

Analyze which traffic sources and campaigns generate the most conversions to optimize marketing spend. Business Value:
  • Identify the most effective traffic sources for lead generation
  • Understand which campaigns drive the highest conversion rates
  • Allocate marketing budget more effectively
  • Track ROI by marketing channel

SQL query

WITH
    source_conversions AS (
        SELECT
            COALESCE(payload.traffic_source, 'Direct') AS traffic_source,
            COALESCE(payload.traffic_medium, 'None') AS traffic_medium,
            COALESCE(payload.traffic_campaign, 'None') AS traffic_campaign,
            COUNT(DISTINCT contact_uuid) AS unique_leads,
            COUNT(*) AS total_conversions
        FROM
            nekt_raw.rd_station_contact_events
        WHERE
            event_type = 'CONVERSION'
            AND DATE(event_timestamp) >= CURRENT_DATE - INTERVAL '30' DAY
        GROUP BY
            payload.traffic_source,
            payload.traffic_medium,
            payload.traffic_campaign
    )
SELECT
    traffic_source,
    traffic_medium,
    traffic_campaign,
    unique_leads,
    total_conversions,
    ROUND(CAST(total_conversions AS FLOAT64) / unique_leads, 2) AS conversions_per_lead
FROM
    source_conversions
ORDER BY
    unique_leads DESC
traffic_sourcetraffic_mediumtraffic_campaignunique_leadstotal_conversionsconversions_per_lead
googlecpcblack_friday_20244568921.96
googleorganicNone3124231.36
facebookpaidproduct_launch2343451.47
DirectNoneNone1892341.24
instagrampaidbrand_awareness1561891.21
linkedincpcb2b_campaign891121.26
emailnewsletterweekly_digest781451.86

Email Marketing Performance

3. Campaign Email Performance

Analyze the performance of email campaigns to optimize email marketing strategies. Business Value:
  • Identify top-performing email campaigns
  • Track engagement metrics over time
  • Reduce unsubscribe and spam report rates
  • Improve email deliverability and click-through rates

SQL query

WITH
    campaign_metrics AS (
        SELECT
            campaign_name,
            campaign_id,
            SUM(contacts_count) AS total_contacts,
            SUM(email_delivered_count) AS total_delivered,
            SUM(email_opened_count) AS total_opens,
            SUM(email_clicked_count) AS total_clicks,
            SUM(email_bounced_count) AS total_bounces,
            SUM(email_unsubscribed_count) AS total_unsubscribes,
            SUM(email_spam_reported_count) AS total_spam_reports,
            AVG(email_delivered_rate) AS avg_delivery_rate,
            AVG(email_opened_rate) AS avg_open_rate,
            AVG(email_clicked_rate) AS avg_click_rate
        FROM
            nekt_raw.rd_station_analytics_email_stats
        WHERE
            DATE(query_date_start) >= CURRENT_DATE - INTERVAL '30' DAY
        GROUP BY
            campaign_name,
            campaign_id
    )
SELECT
    campaign_name,
    total_contacts,
    total_delivered,
    total_opens,
    total_clicks,
    ROUND(avg_delivery_rate * 100, 2) AS delivery_rate_pct,
    ROUND(avg_open_rate * 100, 2) AS open_rate_pct,
    ROUND(avg_click_rate * 100, 2) AS click_rate_pct,
    total_bounces,
    total_unsubscribes,
    ROUND(
        CAST(total_clicks AS DOUBLE) * 100.0 / NULLIF(total_opens, 0),
        2
    ) AS click_to_open_rate
FROM
    campaign_metrics
ORDER BY
    total_delivered DESC
campaign_nametotal_contactstotal_deliveredtotal_openstotal_clicksdelivery_rate_pctopen_rate_pctclick_rate_pcttotal_bouncestotal_unsubscribesclick_to_open_rate
Black Friday 202445,23043,89018,9204,56097.0443.1110.391,3408924.10
Product Launch28,45027,56012,3403,89096.8744.7714.128905631.53
Weekly Newsletter34,56033,4508,9201,23496.7926.673.691,11012313.83
Nurturing Sequence12,89012,4505,6701,89096.5845.5415.184403433.33
Re-engagement8,4507,8902,34045693.3729.665.785607819.49

4. Workflow Automation Performance

Track the effectiveness of automated email workflows to optimize nurturing sequences. Business Value:
  • Identify high-performing automation workflows
  • Compare email performance across different workflow steps
  • Optimize workflow sequences based on engagement data
  • Reduce drop-off in nurturing campaigns

SQL query

WITH
    workflow_metrics AS (
        SELECT
            workflow_name,
            workflow_id,
            email_name,
            SUM(contacts_count) AS total_contacts,
            SUM(email_delivered_count) AS total_delivered,
            SUM(email_opened_unique_count) AS unique_opens,
            SUM(email_clicked_unique_count) AS unique_clicks,
            SUM(email_hard_bounced_unique_count) AS hard_bounces,
            SUM(email_soft_bounced_unique_count) AS soft_bounces,
            SUM(email_unsubscribed_count) AS total_unsubscribes,
            AVG(email_opened_rate) AS avg_open_rate,
            AVG(email_clicked_rate) AS avg_click_rate
        FROM
            nekt_raw.rd_station_analytics_workflow_email_stats
        WHERE
            DATE(query_date_start) >= CURRENT_DATE - INTERVAL '30' DAY
        GROUP BY
            workflow_name,
            workflow_id,
            email_name
    )
SELECT
    workflow_name,
    email_name,
    total_contacts,
    total_delivered,
    unique_opens,
    unique_clicks,
    ROUND(avg_open_rate * 100, 2) AS open_rate_pct,
    ROUND(avg_click_rate * 100, 2) AS click_rate_pct,
    ROUND(
        CAST(unique_clicks AS DOUBLE) * 100.0 / NULLIF(unique_opens, 0),
        2
    ) AS click_to_open_rate,
    hard_bounces + soft_bounces AS total_bounces,
    total_unsubscribes
FROM
    workflow_metrics
ORDER BY
    workflow_name,
    total_delivered DESC
workflow_nameemail_nametotal_contactstotal_deliveredunique_opensunique_clicksopen_rate_pctclick_rate_pctclick_to_open_ratetotal_bouncestotal_unsubscribes
Onboarding FlowWelcome Email8,9208,6705,2301,89060.3221.8036.1425012
Onboarding FlowGetting Started7,4507,2303,8901,23453.8117.0731.7222018
Onboarding FlowPro Tips6,1205,9802,89089048.3314.8830.8014023
Nurturing CampaignCase Study4,5604,4301,89056742.6612.8030.001308
Nurturing CampaignProduct Demo3,8903,7801,67048944.1812.9429.2811011
Re-activationWe Miss You2,3402,12056712326.755.8021.6922045

Conversion Asset Analysis

5. Landing Page and Form Performance

Analyze the performance of landing pages, forms, and popups to optimize conversion rates. Business Value:
  • Identify top-performing conversion assets
  • Track conversion rates across different asset types
  • Prioritize optimization efforts on high-traffic, low-conversion assets
  • Compare performance across different time periods

SQL query

WITH
    asset_performance AS (
        SELECT
            asset_type,
            asset_identifier,
            asset_id,
            SUM(visits_count) AS total_visits,
            SUM(conversion_count) AS total_conversions,
            AVG(conversion_rate) AS avg_conversion_rate
        FROM
            nekt_raw.rd_station_analytics_conversion_assets
        WHERE
            DATE(query_date_start) >= CURRENT_DATE - INTERVAL '30' DAY
        GROUP BY
            asset_type,
            asset_identifier,
            asset_id
    )
SELECT
    asset_type,
    asset_identifier,
    total_visits,
    total_conversions,
    ROUND(avg_conversion_rate * 100, 2) AS conversion_rate_pct,
    CASE
        WHEN total_visits > 100 AND avg_conversion_rate < 0.02 THEN 'High traffic, low conversion - optimize!'
        WHEN total_visits > 100 AND avg_conversion_rate >= 0.05 THEN 'High performer'
        WHEN total_visits <= 100 AND avg_conversion_rate >= 0.05 THEN 'Good conversion, needs more traffic'
        ELSE 'Monitor'
    END AS recommendation
FROM
    asset_performance
ORDER BY
    total_visits DESC
asset_typeasset_identifiertotal_visitstotal_conversionsconversion_rate_pctrecommendation
landing_pageblack-friday-202412,4501,89015.18High performer
landing_pageproduct-demo-request8,9205676.36High performer
formnewsletter-signup5,6704568.04High performer
landing_pageebook-download4,230781.84High traffic, low conversion - optimize!
popupexit-intent-offer3,8902346.01High performer
formcontact-us2,3401898.08Good conversion, needs more traffic
landing_pagewebinar-registration1,8901457.67Good conversion, needs more traffic

6. Contact Base Analysis

Analyze your contact base to understand lead acquisition trends and engagement patterns. Business Value:
  • Understand lead acquisition trends over time
  • Identify periods of high contact growth
  • Track conversion activity patterns
  • Monitor contact database health

SQL query

WITH
    contact_stats AS (
        SELECT
            DATE_TRUNC('month', created_at) AS acquisition_month,
            COUNT(DISTINCT uuid) AS new_contacts,
            COUNT(DISTINCT CASE 
                WHEN last_conversion_date IS NOT NULL 
                THEN uuid 
            END) AS contacts_with_conversion,
            MIN(created_at) AS earliest_contact,
            MAX(last_conversion_date) AS latest_conversion
        FROM
            nekt_raw.rd_station_segmentation_contacts
        WHERE
            created_at IS NOT NULL
        GROUP BY
            DATE_TRUNC('month', created_at)
    )
SELECT
    acquisition_month,
    new_contacts,
    contacts_with_conversion,
    ROUND(
        CAST(contacts_with_conversion AS DOUBLE) * 100.0 / NULLIF(new_contacts, 0),
        2
    ) AS conversion_rate_pct,
    SUM(new_contacts) OVER (ORDER BY acquisition_month) AS cumulative_contacts
FROM
    contact_stats
ORDER BY
    acquisition_month DESC
acquisition_monthnew_contactscontacts_with_conversionconversion_rate_pctcumulative_contacts
2024-11-012,8902,45084.7845,670
2024-10-013,1202,78089.1042,780
2024-09-012,7802,34084.1739,660
2024-08-012,4502,12086.5336,880
2024-07-012,6702,23083.5234,430
2024-06-012,3401,98084.6231,760

Time-Based Analysis

Identify patterns in lead generation and conversion activity throughout the week. Business Value:
  • Optimize campaign scheduling based on engagement patterns
  • Identify best days for email sends
  • Plan content publication strategy
  • Allocate resources effectively based on expected activity

SQL query

WITH
    daily_conversions AS (
        SELECT
            DATE(event_timestamp) AS conversion_date,
            DATE_FORMAT(DATE(event_timestamp), '%W') AS day_of_week,
            COUNT(*) AS total_conversions,
            COUNT(DISTINCT contact_uuid) AS unique_leads,
            COUNT(DISTINCT payload.conversion_identifier) AS unique_assets
        FROM
            nekt_raw.rd_station_contact_events
        WHERE
            event_type = 'CONVERSION'
            AND DATE(event_timestamp) >= CURRENT_DATE - INTERVAL '30' DAY
        GROUP BY
            DATE(event_timestamp),
            DATE_FORMAT(DATE(event_timestamp), '%W')
    ),
    weekly_averages AS (
        SELECT
            day_of_week,
            AVG(total_conversions) AS avg_conversions,
            AVG(unique_leads) AS avg_leads,
            AVG(unique_assets) AS avg_assets,
            COUNT(*) AS days_counted
        FROM
            daily_conversions
        GROUP BY
            day_of_week
    )
SELECT
    day_of_week,
    ROUND(avg_conversions, 1) AS avg_daily_conversions,
    ROUND(avg_leads, 1) AS avg_daily_leads,
    ROUND(avg_assets, 1) AS avg_assets_used,
    days_counted,
    CASE
        WHEN avg_conversions >= (SELECT MAX(avg_conversions) * 0.8 FROM weekly_averages) THEN 'Peak Day'
        WHEN avg_conversions <= (SELECT MIN(avg_conversions) * 1.2 FROM weekly_averages) THEN 'Low Day'
        ELSE 'Average'
    END AS day_classification
FROM
    weekly_averages
ORDER BY
    CASE day_of_week
        WHEN 'Monday' THEN 1
        WHEN 'Tuesday' THEN 2
        WHEN 'Wednesday' THEN 3
        WHEN 'Thursday' THEN 4
        WHEN 'Friday' THEN 5
        WHEN 'Saturday' THEN 6
        WHEN 'Sunday' THEN 7
    END
day_of_weekavg_daily_conversionsavg_daily_leadsavg_assets_useddays_countedday_classification
Monday45.238.48.24Average
Tuesday52.844.69.14Peak Day
Wednesday56.447.29.44Peak Day
Thursday48.641.88.64Average
Friday42.136.27.84Average
Saturday18.415.64.24Low Day
Sunday12.810.43.14Low Day

Implementation Notes

API Behaviors & Limits

  • The connector automatically retries failed API requests up to 5 times using exponential backoff to gracefully handle transient network errors during data extractions.

Data Quality Considerations

  • The contact_events and contacts_details streams require extracting the entire lead base. Plan for longer extraction times if your database is large.
  • Analytics streams (funnel, email stats, workflow stats, conversion assets) are only available with Professional or Advanced plans.
  • When using the “Enable Contact Custom Fields” option, extraction time increases significantly due to individual API calls per contact.

Best Practices

  • Start with the core streams (segmentations, segmentation_contacts, campaigns, emails) before enabling advanced analytics.
  • Use segmentation list filtering if you only need specific segments to reduce extraction time.
  • Schedule extractions during off-peak hours if you have a large contact database.
  • For real-time reporting needs, consider using incremental syncs with daily triggers.

Troubleshooting

IssuePossible causeSolution
Error getting access token in logsInvalid or expired credentials, or network issueRe-authenticate your RD Station account. If the issue persists, check the exact error message logged by Nekt to identify HTTP or connection failures.
Error getting segmentation lists in logsInsufficient permissions or API downtimeEnsure your connected account has the correct permissions to fetch segmentations. Review the detailed error logged in Nekt for specific API responses.

Skills for agents

Download RD Station skills file

RD Station connector documentation as plain markdown, for use in AI agent contexts.