{% set id_deal_pipelines_excluded = "('15380854')" %} {% set generic_account_manager_names = "('HOST SERVICES')" %} {% set guardhog_customer_conversion_source = "('GUARDHOG CUSTOMER CONVERSION')" %} with stg_hubspot__deals as (select * from {{ ref("stg_hubspot__deals") }}), stg_seed__hubspot_account_owner as ( select * from {{ ref("stg_seed__hubspot_account_owner") }} ), stg_hubspot__deal_pipeline_stages as ( select * from {{ ref("stg_hubspot__deal_pipeline_stages") }} ), stg_hubspot__deal_pipelines as ( select * from {{ ref("stg_hubspot__deal_pipelines") }} ) select d.id_deal, d.deal_name, d.contract_signed_date_utc, d.onboarding_date_utc, d.live_date_utc, d.cancellation_date_utc, d.account_manager, -- Following logic discussed with Alex A. on 2025-05-19 to determine the -- onboarding owner case -- 1. If the cloned onboarding owner is not null, use that. This should reflect -- most of the cases. when d.onboarding_owner__cloned_ is not null then d.onboarding_owner__cloned_ -- 2. If the cloned onboarding owner is null and the onboarding owner is not -- null, use the second. It should cover few exceptional cases. when d.onboarding_owner__cloned_ is null and d.onboarding_owner is not null then d.onboarding_owner -- 3. If the deal is a conversion from Guardhog to Truvi, the onboarding owner -- should always be the HubSpot account owner. when upper(d.deal_source) in {{ guardhog_customer_conversion_source }} then hao.hubspot_account_owner -- 4. If the onboarding owner is null and the account manager is in the generic -- account manager names, use the HubSpot account owner. This is because is -- actually a Sales person that handles the onboarding. when d.onboarding_owner__cloned_ is null and upper(d.account_manager) in {{ generic_account_manager_names }} then hao.hubspot_account_owner -- For all other cases, set the onboarding owner to null. else null end as onboarding_owner, dp.deal_pipeline_name as deal_pipeline, dps.stage_name as deal_hubspot_stage, d.cancellation_category, d.cancellation_details, d.amount_of_properties, d.last_contacted_date_utc, d.amount_times_contacted, d.integration_type, d.dashboard_type, d.pricing_structure, d.partnership_services, d.expressed_service_interest, d.created_at_utc, d.created_date_utc, d.updated_at_utc, d.updated_date_utc from stg_hubspot__deals d left join stg_hubspot__deal_pipeline_stages dps on d.id_deal_stage = dps.id_stage left join stg_hubspot__deal_pipelines dp on dps.id_deal_pipeline = dp.id_deal_pipeline left join stg_seed__hubspot_account_owner hao on d.id_hubspot_account_owner = hao.id_hubspot_account_owner -- Exclude Guardhog pipelines where dps.id_deal_pipeline not in {{ id_deal_pipelines_excluded }}