Skip to content

Feature/campaign performance#84

Open
fivetran-catfritz wants to merge 9 commits into
mainfrom
feature/campaign-performance
Open

Feature/campaign performance#84
fivetran-catfritz wants to merge 9 commits into
mainfrom
feature/campaign-performance

Conversation

@fivetran-catfritz

@fivetran-catfritz fivetran-catfritz commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

PR Overview

Package version introduced in this PR:

  • v2.3.0

This PR addresses the following Issue/Feature(s):

  • GA-981323

Summary of changes:

  • Adds new models salesforce__campaign_performance and salesforce__campaign_daily_history.

Submission Checklist

  • Alignment meeting with the reviewer (if needed)
    • Timeline and validation requirements discussed
  • Provide validation details:
    • Validation Steps: Check for unintentional effects (e.g., add/run consistency & integrity tests)
    • Testing Instructions: Confirm the change addresses the issue(s)
    • Focus Areas: Complex logic or queries that need extra attention
  • Merge any relevant open PRs into this PR

Changelog

  • Draft changelog for PR
  • Final changelog for release review

@fivetran-catfritz fivetran-catfritz self-assigned this Jul 9, 2026
@fivetran-catfritz
fivetran-catfritz marked this pull request as ready for review July 15, 2026 16:24
@fivetran-catfritz fivetran-catfritz added the docs:ready Triggers the docs generator workflow. label Jul 15, 2026

@fivetran-savage fivetran-savage left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! Just a couple of suggestions before approval.

Comment thread CHANGELOG.md
| `salesforce__campaign_performance` | New model | — | One row per campaign | Requires the `campaign` source table. Conditionally joins `campaign_member` and `record_type`. |
| `salesforce__campaign_daily_history` | New model | — | One row per campaign per day | Disabled by default. Requires Salesforce History Mode and `salesforce__campaign_history_enabled: true`. |
| `salesforce__opportunity_enhanced` | New column | — | `opportunity_record_type_name` | Conditionally populated when `salesforce__record_type_enabled: true`. Joins `record_type` filtered to `sobject_type = 'Opportunity'`. |
| `stg_salesforce__campaign` | Column renamed | `record_type_id` | `campaign_member_record_type_id` | Reflects the Salesforce field `CampaignMemberRecordTypeId`, a campaign-level attribute. **Breaking for downstream models that reference `record_type_id` from this staging model.** |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think we should list the downstream models by name that reference record_type_id or are there too many?

Comment thread CHANGELOG.md
| `stg_salesforce__campaign_member` | New columns | — | `account_id`, `created_by_id`, `has_opted_out_of_email`, `last_modified_by_id`, `lead_or_contact_id`, `lead_or_contact_owner_id` | Added identity and engagement fields for more complete member-level analysis. |

## Feature Update
- `salesforce__campaign_performance` includes pipeline totals (`total_pipeline_amount`, `total_won_amount`), member volume (`campaign_member_count`, `responded_count`, `contact_count`, `lead_count`, `opted_out_of_email_count`), and ROI measures (`win_rate`, `cost_per_opportunity`, `cost_per_won_opportunity`, `roi`).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think specific metrics are needed as a separate feature update for a net-new end model. The general categories are already in the model description in the readme, which is sufficient.

member_count_check as (
select
e.campaign_id,
e.member_count as end_model_member_count,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
e.member_count as end_model_member_count,
e.campaign_member_count as end_model_member_count,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs:ready Triggers the docs generator workflow.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants