{"accountId":"acct_demo","clientId":"client_demo","dashboardReadiness":{"accountId":"acct_demo","clientId":"client_demo","status":"dashboard_complete","connectedProviders":[{"connectionId":"conn_close_crm","providerId":"close_crm","providerName":"Close CRM","category":"crm","eventTypes":["lead","deal"]},{"connectionId":"conn_google_ads","providerId":"google_ads","providerName":"Google Ads","category":"ad_source","eventTypes":["spend"]},{"connectionId":"conn_stripe","providerId":"stripe","providerName":"Stripe","category":"payment","eventTypes":["payment"]},{"connectionId":"conn_typeform","providerId":"typeform","providerName":"Typeform","category":"form","eventTypes":["lead"]}],"categories":["ad_source","crm","form","payment"],"eventTypes":["deal","lead","payment","spend"],"unlockedCardTypes":["recent_activity","ad_spend","campaign_performance","revenue","roas","roas_by_channel","leads_by_source","form_conversion","pipeline"],"capabilities":[{"cardType":"ad_spend","label":"Ad Spend","unlocked":true,"missingRequirements":[]},{"cardType":"campaign_performance","label":"Campaign Performance","unlocked":true,"missingRequirements":[]},{"cardType":"revenue","label":"Revenue","unlocked":true,"missingRequirements":[]},{"cardType":"roas","label":"ROAS","unlocked":true,"missingRequirements":[]},{"cardType":"roas_by_channel","label":"ROAS by Channel","unlocked":true,"missingRequirements":[]},{"cardType":"leads_by_source","label":"Leads by Source","unlocked":true,"missingRequirements":[]},{"cardType":"form_conversion","label":"Form Conversion","unlocked":true,"missingRequirements":[]},{"cardType":"pipeline","label":"Pipeline","unlocked":true,"missingRequirements":[]}],"missingCapabilities":[],"nextRequirements":[],"mvpAttributionPath":{"ready":true,"missingRequirements":[]},"dashboardComplete":true},"providers":[{"providerId":"google_ads","name":"Google Ads","phase":"mvp","phaseLabel":"Phase 1","category":"ad_source","categoryLabel":"Ad Source","authMethod":"oauth2","authLabel":"OAuth 2.0","tokenStrategy":"refresh_token","requiredPermissions":["adwords"],"setupNotes":["Requires Google Ads developer token and selected customer account."],"setupRequirements":[{"check":"customer_selected","type":"resource_selection","label":"Ad account selected"}],"setupSummary":"Ad account selected","capabilitySummary":"Unlocks Ad Spend, Campaign Performance, ROAS when paired with revenue","dashboardUnlocks":[{"id":"ad_spend","label":"Ad Spend"},{"id":"campaign_performance","label":"Campaign Performance"},{"id":"roas","label":"ROAS when paired with revenue"}],"launchProofGroups":[{"id":"ad_spend_source","label":"Ad spend source","requiredForMinimum":true}],"resourceSelection":{"requirementCheck":"customer_selected","resourceLabel":"Google Ads account","listButtonLabel":"Find ad accounts","inputLabel":"Selected Google Ads account","inputPlaceholder":"Selected Google Ads account","saveButtonLabel":"Save ad account"},"setupControls":{"pipelineMapping":null,"webhook":null},"credentialInput":null,"webhookCallbackUrl":null,"sync":{"mode":"polling","frequencyMinutes":360,"supportsBackfill":true,"defaultBackfillDays":90,"rawPayloadTypes":["campaign_daily_metrics"],"cursorFields":["customer_id","date"]},"syncLabel":"Every 6 hours","normalizers":[{"rawType":"campaign_daily_metrics","eventType":"spend"}],"producedEventTypes":["spend"],"producedEventLabels":["Spend"],"liveSmokeCheckId":"google_ads","connectionId":"conn_google_ads","connectionStatus":"connected","connected":true,"externalAccountId":null,"selectedResourceId":"1234567890","setup":{}},{"providerId":"meta_ads","name":"Meta Ads","phase":"mvp","phaseLabel":"Phase 1","category":"ad_source","categoryLabel":"Ad Source","authMethod":"oauth2","authLabel":"OAuth 2.0","tokenStrategy":"refresh_token","requiredPermissions":["ads_read","read_insights"],"setupNotes":["Requires selected ad account and app review before production use."],"setupRequirements":[{"check":"ad_account_selected","type":"resource_selection","label":"Ad account selected"}],"setupSummary":"Ad account selected","capabilitySummary":"Unlocks Ad Spend, Campaign Performance, ROAS when paired with revenue","dashboardUnlocks":[{"id":"ad_spend","label":"Ad Spend"},{"id":"campaign_performance","label":"Campaign Performance"},{"id":"roas","label":"ROAS when paired with revenue"}],"launchProofGroups":[{"id":"ad_spend_source","label":"Ad spend source","requiredForMinimum":true}],"resourceSelection":{"requirementCheck":"ad_account_selected","resourceLabel":"Meta ad account","listButtonLabel":"Find ad accounts","inputLabel":"Selected Meta ad account","inputPlaceholder":"Selected Meta ad account","saveButtonLabel":"Save ad account"},"setupControls":{"pipelineMapping":null,"webhook":null},"credentialInput":null,"webhookCallbackUrl":null,"sync":{"mode":"polling","frequencyMinutes":360,"supportsBackfill":true,"defaultBackfillDays":90,"rawPayloadTypes":["campaign_daily_insights","adset_daily_insights"],"cursorFields":["account_id","date_start"]},"syncLabel":"Every 6 hours","normalizers":[{"rawType":"campaign_daily_insights","eventType":"spend"},{"rawType":"adset_daily_insights","eventType":"spend"}],"producedEventTypes":["spend"],"producedEventLabels":["Spend"],"liveSmokeCheckId":"meta_ads","connectionId":"conn_meta_ads","connectionStatus":null,"connected":false,"externalAccountId":null,"selectedResourceId":null,"setup":{}},{"providerId":"close_crm","name":"Close CRM","phase":"mvp","phaseLabel":"Phase 1","category":"crm","categoryLabel":"CRM / Pipeline","authMethod":"oauth2","authLabel":"OAuth 2.0","tokenStrategy":"refresh_token","requiredPermissions":["leads_read","contacts_read","opportunities_read"],"setupNotes":["Pipeline stage mapping is required before attribution can calculate closed-won revenue."],"setupRequirements":[{"check":"pipeline_mapping_present","type":"setup","label":"Pipeline stages mapped"}],"setupSummary":"Pipeline stages mapped","capabilitySummary":"Unlocks Leads by Source, Pipeline, Revenue, ROAS when paired with spend","dashboardUnlocks":[{"id":"leads_by_source","label":"Leads by Source"},{"id":"pipeline","label":"Pipeline"},{"id":"revenue","label":"Revenue"},{"id":"roas","label":"ROAS when paired with spend"}],"launchProofGroups":[{"id":"lead_or_crm_source","label":"Lead/CRM source","requiredForMinimum":true},{"id":"revenue_source","label":"Revenue source","requiredForMinimum":true}],"resourceSelection":null,"setupControls":{"pipelineMapping":{"wonInputLabel":"Closed-won stages","wonInputPlaceholder":"Closed-won stages","lostInputLabel":"Lost stages","lostInputPlaceholder":"Lost stages","saveButtonLabel":"Save pipeline stages"},"webhook":null},"credentialInput":null,"webhookCallbackUrl":null,"sync":{"mode":"hybrid","frequencyMinutes":60,"supportsBackfill":true,"defaultBackfillDays":365,"rawPayloadTypes":["lead","contact","opportunity","status_change"],"cursorFields":["updated_after"]},"syncLabel":"Hourly","normalizers":[{"rawType":"lead","eventType":"lead"},{"rawType":"contact","eventType":"lead"},{"rawType":"opportunity","eventType":"deal"},{"rawType":"status_change","eventType":"deal"}],"producedEventTypes":["lead","deal"],"producedEventLabels":["Leads","Deals"],"liveSmokeCheckId":"close_crm","connectionId":"conn_close_crm","connectionStatus":"connected","connected":true,"externalAccountId":null,"selectedResourceId":null,"setup":{"pipelineMapping":{"wonStatusIds":["won"],"lostStatusIds":["lost"]}}},{"providerId":"typeform","name":"Typeform","phase":"mvp","phaseLabel":"Phase 1","category":"form","categoryLabel":"Form Builder","authMethod":"oauth2","authLabel":"OAuth 2.0","tokenStrategy":"refresh_token","requiredPermissions":["forms_read","responses_read","offline"],"setupNotes":["UTM hidden fields should be captured on forms for high-confidence attribution."],"setupRequirements":[{"check":"form_selected","type":"resource_selection","label":"Form selected"},{"check":"webhook_active","type":"webhook","label":"Webhook active"}],"setupSummary":"Form selected, Webhook active","capabilitySummary":"Unlocks Leads by Source, Form Conversion Rates","dashboardUnlocks":[{"id":"leads_by_source","label":"Leads by Source"},{"id":"form_conversion","label":"Form Conversion Rates"}],"launchProofGroups":[{"id":"lead_or_crm_source","label":"Lead/CRM source","requiredForMinimum":true}],"resourceSelection":{"requirementCheck":"form_selected","resourceLabel":"Typeform form","listButtonLabel":"Find forms","inputLabel":"Selected Typeform form","inputPlaceholder":"Selected Typeform form","saveButtonLabel":"Save form"},"setupControls":{"pipelineMapping":null,"webhook":{"callbackInputLabel":"Webhook callback URL","webhookInputLabel":"Webhook connection","webhookInputPlaceholder":"Webhook connection","saveButtonLabel":"Save webhook"}},"credentialInput":null,"webhookCallbackUrl":"http://127.0.0.1:3000/webhooks/acct_demo/client_demo/conn_typeform","sync":{"mode":"hybrid","frequencyMinutes":15,"supportsBackfill":true,"defaultBackfillDays":365,"rawPayloadTypes":["form_response"],"cursorFields":["after","submitted_at"]},"syncLabel":"Every 15 min","normalizers":[{"rawType":"form_response","eventType":"lead"}],"producedEventTypes":["lead"],"producedEventLabels":["Leads"],"liveSmokeCheckId":"typeform","connectionId":"conn_typeform","connectionStatus":"connected","connected":true,"externalAccountId":null,"selectedResourceId":"form_leads","setup":{"webhookId":"webhook_typeform"}},{"providerId":"stripe","name":"Stripe","phase":"mvp","phaseLabel":"Phase 1","category":"payment","categoryLabel":"Payment Processor","authMethod":"oauth2","authLabel":"OAuth 2.0","tokenStrategy":"refresh_token","requiredPermissions":["read_only"],"setupNotes":["This connector is for customer revenue data and is separate from SIRJ subscription billing."],"setupRequirements":[{"check":"webhook_active","type":"webhook","label":"Webhook active"}],"setupSummary":"Webhook active","capabilitySummary":"Unlocks Revenue, ROAS when paired with spend","dashboardUnlocks":[{"id":"revenue","label":"Revenue"},{"id":"roas","label":"ROAS when paired with spend"}],"launchProofGroups":[{"id":"revenue_source","label":"Revenue source","requiredForMinimum":true}],"resourceSelection":null,"setupControls":{"pipelineMapping":null,"webhook":{"callbackInputLabel":"Webhook callback URL","webhookInputLabel":"Webhook connection","webhookInputPlaceholder":"Webhook connection","saveButtonLabel":"Save webhook"}},"credentialInput":null,"webhookCallbackUrl":"http://127.0.0.1:3000/webhooks/acct_demo/client_demo/conn_stripe","sync":{"mode":"hybrid","frequencyMinutes":60,"supportsBackfill":true,"defaultBackfillDays":365,"rawPayloadTypes":["charge","customer","subscription_payment"],"cursorFields":["created","chargesStartingAfter","customersStartingAfter","subscriptionPaymentsStartingAfter"]},"syncLabel":"Hourly","normalizers":[{"rawType":"charge","eventType":"payment"},{"rawType":"subscription_payment","eventType":"payment"}],"producedEventTypes":["payment"],"producedEventLabels":["Payments"],"liveSmokeCheckId":"stripe_connect","connectionId":"conn_stripe","connectionStatus":"connected","connected":true,"externalAccountId":null,"selectedResourceId":null,"setup":{}},{"providerId":"hubspot","name":"HubSpot","phase":"phase_2","phaseLabel":"Phase 2","category":"crm","categoryLabel":"CRM / Pipeline","authMethod":"oauth2","authLabel":"OAuth 2.0","tokenStrategy":"refresh_token","requiredPermissions":["crm.objects.contacts.read","crm.objects.deals.read","crm.schemas.deals.read"],"setupNotes":["Deal pipeline stages can be selected for closed-won revenue mapping."],"setupRequirements":[],"setupSummary":"Ready after connect","capabilitySummary":"Unlocks Leads by Source, Pipeline, Revenue, ROAS when paired with spend","dashboardUnlocks":[{"id":"leads_by_source","label":"Leads by Source"},{"id":"pipeline","label":"Pipeline"},{"id":"revenue","label":"Revenue"},{"id":"roas","label":"ROAS when paired with spend"}],"launchProofGroups":[{"id":"lead_or_crm_source","label":"Lead/CRM source","requiredForMinimum":true},{"id":"revenue_source","label":"Revenue source","requiredForMinimum":true}],"resourceSelection":null,"setupControls":{"pipelineMapping":null,"webhook":null},"credentialInput":null,"webhookCallbackUrl":null,"sync":{"mode":"polling","frequencyMinutes":60,"supportsBackfill":true,"defaultBackfillDays":365,"rawPayloadTypes":["contact","deal"],"cursorFields":["contacts_after","deals_after"]},"syncLabel":"Hourly","normalizers":[{"rawType":"contact","eventType":"lead"},{"rawType":"deal","eventType":"deal"}],"producedEventTypes":["lead","deal"],"producedEventLabels":["Leads","Deals"],"liveSmokeCheckId":"hubspot","connectionId":"conn_hubspot","connectionStatus":null,"connected":false,"externalAccountId":null,"selectedResourceId":null,"setup":{}},{"providerId":"jobber","name":"Jobber","phase":"phase_2","phaseLabel":"Phase 2","category":"operations","categoryLabel":"Operations / Revenue","authMethod":"oauth2","authLabel":"OAuth 2.0","tokenStrategy":"refresh_token","requiredPermissions":["read_clients","read_jobs","read_quotes","read_invoices","read_payments"],"setupNotes":["Uses Jobber's GraphQL API to sync clients, jobs, quotes, invoices, and payments for operations revenue attribution."],"setupRequirements":[],"setupSummary":"Ready after connect","capabilitySummary":"Unlocks Pipeline, Revenue, ROAS when paired with spend","dashboardUnlocks":[{"id":"pipeline","label":"Pipeline"},{"id":"revenue","label":"Revenue"},{"id":"roas","label":"ROAS when paired with spend"}],"launchProofGroups":[{"id":"revenue_source","label":"Revenue source","requiredForMinimum":true}],"resourceSelection":null,"setupControls":{"pipelineMapping":null,"webhook":null},"credentialInput":null,"webhookCallbackUrl":null,"sync":{"mode":"polling","frequencyMinutes":180,"supportsBackfill":true,"defaultBackfillDays":365,"rawPayloadTypes":["client","job","quote","invoice","payment"],"cursorFields":["clientsAfter","jobsAfter","quotesAfter","invoicesAfter","paymentsAfter"]},"syncLabel":"Every 3 hours","normalizers":[{"rawType":"quote","eventType":"deal"},{"rawType":"job","eventType":"deal"},{"rawType":"payment","eventType":"payment"},{"rawType":"invoice","eventType":"payment"}],"producedEventTypes":["deal","payment"],"producedEventLabels":["Deals","Payments"],"liveSmokeCheckId":"jobber","connectionId":"conn_jobber","connectionStatus":null,"connected":false,"externalAccountId":null,"selectedResourceId":null,"setup":{}},{"providerId":"jotform","name":"Jotform","phase":"phase_2","phaseLabel":"Phase 2","category":"form","categoryLabel":"Form Builder","authMethod":"api_key","authLabel":"API Key","tokenStrategy":"api_key","requiredPermissions":["forms_read","submissions_read"],"setupNotes":["Requires a Jotform API key and selected form before submissions can sync."],"setupRequirements":[{"check":"form_selected","type":"resource_selection","label":"Form selected"}],"setupSummary":"Form selected","capabilitySummary":"Unlocks Leads by Source, Form Conversion Rates","dashboardUnlocks":[{"id":"leads_by_source","label":"Leads by Source"},{"id":"form_conversion","label":"Form Conversion Rates"}],"launchProofGroups":[{"id":"lead_or_crm_source","label":"Lead/CRM source","requiredForMinimum":true}],"resourceSelection":{"requirementCheck":"form_selected","resourceLabel":"Jotform form","listButtonLabel":"Find forms","inputLabel":"Selected Jotform form","inputPlaceholder":"Selected Jotform form","saveButtonLabel":"Save form"},"setupControls":{"pipelineMapping":null,"webhook":null},"credentialInput":{"label":"Jotform API key","placeholder":"Jotform API key"},"webhookCallbackUrl":null,"sync":{"mode":"polling","frequencyMinutes":15,"supportsBackfill":true,"defaultBackfillDays":365,"rawPayloadTypes":["submission"],"cursorFields":["offset"]},"syncLabel":"Every 15 min","normalizers":[{"rawType":"submission","eventType":"lead"}],"producedEventTypes":["lead"],"producedEventLabels":["Leads"],"liveSmokeCheckId":"jotform","connectionId":"conn_jotform","connectionStatus":null,"connected":false,"externalAccountId":null,"selectedResourceId":null,"setup":{}},{"providerId":"salesmsg","name":"Salesmsg","phase":"phase_2","phaseLabel":"Phase 2","category":"messaging","categoryLabel":"Messaging","authMethod":"api_key","authLabel":"API Key","tokenStrategy":"api_key","requiredPermissions":["messages_read","contacts_read"],"setupNotes":["Requires a Salesmsg API key with read access to message logs and contact activity."],"setupRequirements":[],"setupSummary":"Ready after connect","capabilitySummary":"Unlocks Recent Activity","dashboardUnlocks":[{"id":"recent_activity","label":"Recent Activity"}],"launchProofGroups":[{"id":"engagement_context","label":"Engagement context","requiredForMinimum":false}],"resourceSelection":null,"setupControls":{"pipelineMapping":null,"webhook":null},"credentialInput":{"label":"Salesmsg API key","placeholder":"Salesmsg API key"},"webhookCallbackUrl":null,"sync":{"mode":"polling","frequencyMinutes":60,"supportsBackfill":true,"defaultBackfillDays":365,"rawPayloadTypes":["message","contact_activity"],"cursorFields":["updated_after"]},"syncLabel":"Hourly","normalizers":[{"rawType":"message","eventType":"communication"},{"rawType":"contact_activity","eventType":"communication"}],"producedEventTypes":["communication"],"producedEventLabels":["Communication"],"liveSmokeCheckId":"salesmsg","connectionId":"conn_salesmsg","connectionStatus":null,"connected":false,"externalAccountId":null,"selectedResourceId":null,"setup":{}},{"providerId":"housecall_pro","name":"Housecall Pro","phase":"phase_3","phaseLabel":"Phase 3","category":"operations","categoryLabel":"Operations / Revenue","authMethod":"oauth2","authLabel":"OAuth 2.0","tokenStrategy":"refresh_token","requiredPermissions":["jobs_read","invoices_read","payments_read"],"setupNotes":["Syncs Housecall Pro jobs, invoices, and payments for operations revenue attribution."],"setupRequirements":[],"setupSummary":"Ready after connect","capabilitySummary":"Unlocks Pipeline, Revenue, ROAS when paired with spend","dashboardUnlocks":[{"id":"pipeline","label":"Pipeline"},{"id":"revenue","label":"Revenue"},{"id":"roas","label":"ROAS when paired with spend"}],"launchProofGroups":[{"id":"revenue_source","label":"Revenue source","requiredForMinimum":true}],"resourceSelection":null,"setupControls":{"pipelineMapping":null,"webhook":null},"credentialInput":null,"webhookCallbackUrl":null,"sync":{"mode":"polling","frequencyMinutes":180,"supportsBackfill":true,"defaultBackfillDays":365,"rawPayloadTypes":["job","invoice","payment"],"cursorFields":["updated_after"]},"syncLabel":"Every 3 hours","normalizers":[{"rawType":"job","eventType":"deal"},{"rawType":"invoice","eventType":"payment"},{"rawType":"payment","eventType":"payment"}],"producedEventTypes":["deal","payment"],"producedEventLabels":["Deals","Payments"],"liveSmokeCheckId":"housecall_pro","connectionId":"conn_housecall_pro","connectionStatus":null,"connected":false,"externalAccountId":null,"selectedResourceId":null,"setup":{}},{"providerId":"zenoti","name":"Zenoti","phase":"phase_3","phaseLabel":"Phase 3","category":"operations","categoryLabel":"Operations / Revenue","authMethod":"oauth2","authLabel":"OAuth 2.0","tokenStrategy":"refresh_token","requiredPermissions":["appointments_read","invoices_read","revenue_read"],"setupNotes":["Syncs Zenoti appointments, invoices, and revenue for medspa and wellness attribution."],"setupRequirements":[],"setupSummary":"Ready after connect","capabilitySummary":"Unlocks Pipeline, Revenue, ROAS when paired with spend","dashboardUnlocks":[{"id":"pipeline","label":"Pipeline"},{"id":"revenue","label":"Revenue"},{"id":"roas","label":"ROAS when paired with spend"}],"launchProofGroups":[{"id":"revenue_source","label":"Revenue source","requiredForMinimum":true}],"resourceSelection":null,"setupControls":{"pipelineMapping":null,"webhook":null},"credentialInput":null,"webhookCallbackUrl":null,"sync":{"mode":"polling","frequencyMinutes":180,"supportsBackfill":true,"defaultBackfillDays":365,"rawPayloadTypes":["appointment","invoice","revenue"],"cursorFields":["updated_after"]},"syncLabel":"Every 3 hours","normalizers":[{"rawType":"appointment","eventType":"deal"},{"rawType":"invoice","eventType":"payment"},{"rawType":"revenue","eventType":"payment"}],"producedEventTypes":["deal","payment"],"producedEventLabels":["Deals","Payments"],"liveSmokeCheckId":"zenoti","connectionId":"conn_zenoti","connectionStatus":null,"connected":false,"externalAccountId":null,"selectedResourceId":null,"setup":{}},{"providerId":"follow_up_boss","name":"Follow Up Boss","phase":"phase_3","phaseLabel":"Phase 3","category":"crm","categoryLabel":"CRM / Pipeline","authMethod":"api_key","authLabel":"API Key","tokenStrategy":"api_key","requiredPermissions":["people_read","appointments_read","deals_read","closings_read"],"setupNotes":["Requires a Follow Up Boss API key with read access to leads, appointments, deals, and closings."],"setupRequirements":[],"setupSummary":"Ready after connect","capabilitySummary":"Unlocks Leads by Source, Pipeline, Revenue, ROAS when paired with spend","dashboardUnlocks":[{"id":"leads_by_source","label":"Leads by Source"},{"id":"pipeline","label":"Pipeline"},{"id":"revenue","label":"Revenue"},{"id":"roas","label":"ROAS when paired with spend"}],"launchProofGroups":[{"id":"lead_or_crm_source","label":"Lead/CRM source","requiredForMinimum":true},{"id":"revenue_source","label":"Revenue source","requiredForMinimum":true}],"resourceSelection":null,"setupControls":{"pipelineMapping":null,"webhook":null},"credentialInput":{"label":"Follow Up Boss API key","placeholder":"Follow Up Boss API key"},"webhookCallbackUrl":null,"sync":{"mode":"polling","frequencyMinutes":60,"supportsBackfill":true,"defaultBackfillDays":365,"rawPayloadTypes":["person","appointment","deal","closing"],"cursorFields":["updated_after"]},"syncLabel":"Hourly","normalizers":[{"rawType":"person","eventType":"lead"},{"rawType":"appointment","eventType":"deal"},{"rawType":"deal","eventType":"deal"},{"rawType":"closing","eventType":"deal"}],"producedEventTypes":["lead","deal"],"producedEventLabels":["Leads","Deals"],"liveSmokeCheckId":"follow_up_boss","connectionId":"conn_follow_up_boss","connectionStatus":null,"connected":false,"externalAccountId":null,"selectedResourceId":null,"setup":{}},{"providerId":"tiktok_ads","name":"TikTok Ads","phase":"phase_3","phaseLabel":"Phase 3","category":"ad_source","categoryLabel":"Ad Source","authMethod":"oauth2","authLabel":"OAuth 2.0","tokenStrategy":"refresh_token","requiredPermissions":["advertiser_read","reporting_read"],"setupNotes":["Requires a selected TikTok advertiser account before campaign spend can sync."],"setupRequirements":[{"check":"advertiser_selected","type":"resource_selection","label":"Advertiser selected"}],"setupSummary":"Advertiser selected","capabilitySummary":"Unlocks Ad Spend, Campaign Performance, ROAS when paired with revenue","dashboardUnlocks":[{"id":"ad_spend","label":"Ad Spend"},{"id":"campaign_performance","label":"Campaign Performance"},{"id":"roas","label":"ROAS when paired with revenue"}],"launchProofGroups":[{"id":"ad_spend_source","label":"Ad spend source","requiredForMinimum":true}],"resourceSelection":{"requirementCheck":"advertiser_selected","resourceLabel":"TikTok advertiser","listButtonLabel":"Find advertisers","inputLabel":"Selected TikTok advertiser","inputPlaceholder":"Selected TikTok advertiser","saveButtonLabel":"Save advertiser"},"setupControls":{"pipelineMapping":null,"webhook":null},"credentialInput":null,"webhookCallbackUrl":null,"sync":{"mode":"polling","frequencyMinutes":360,"supportsBackfill":true,"defaultBackfillDays":90,"rawPayloadTypes":["campaign_daily_report"],"cursorFields":["advertiser_id","date"]},"syncLabel":"Every 6 hours","normalizers":[{"rawType":"campaign_daily_report","eventType":"spend"}],"producedEventTypes":["spend"],"producedEventLabels":["Spend"],"liveSmokeCheckId":"tiktok_ads","connectionId":"conn_tiktok_ads","connectionStatus":null,"connected":false,"externalAccountId":null,"selectedResourceId":null,"setup":{}},{"providerId":"quickbooks","name":"QuickBooks","phase":"phase_2","phaseLabel":"Phase 2","category":"payment","categoryLabel":"Payment Processor","authMethod":"oauth2","authLabel":"OAuth 2.0","tokenStrategy":"refresh_token","requiredPermissions":["com.intuit.quickbooks.accounting"],"setupNotes":["Select the QuickBooks company (realm) whose invoices and payments feed revenue."],"setupRequirements":[{"check":"company_selected","type":"resource_selection","label":"Company selected"}],"setupSummary":"Company selected","capabilitySummary":"Unlocks Revenue, ROAS when paired with spend","dashboardUnlocks":[{"id":"revenue","label":"Revenue"},{"id":"roas","label":"ROAS when paired with spend"}],"launchProofGroups":[{"id":"revenue_source","label":"Revenue source","requiredForMinimum":true}],"resourceSelection":{"requirementCheck":"company_selected","resourceLabel":"Company","listButtonLabel":"Find companys","inputLabel":"Selected company","inputPlaceholder":"Selected company","saveButtonLabel":"Save company"},"setupControls":{"pipelineMapping":null,"webhook":null},"credentialInput":null,"webhookCallbackUrl":null,"sync":{"mode":"polling","frequencyMinutes":120,"supportsBackfill":true,"defaultBackfillDays":365,"rawPayloadTypes":["invoice","payment"],"cursorFields":["invoicePosition","paymentPosition"]},"syncLabel":"Every 2 hours","normalizers":[{"rawType":"invoice","eventType":"deal"},{"rawType":"payment","eventType":"payment"}],"producedEventTypes":["deal","payment"],"producedEventLabels":["Deals","Payments"],"liveSmokeCheckId":"quickbooks","connectionId":"conn_quickbooks","connectionStatus":null,"connected":false,"externalAccountId":null,"selectedResourceId":null,"setup":{}},{"providerId":"gohighlevel","name":"GoHighLevel","phase":"phase_2","phaseLabel":"Phase 2","category":"crm","categoryLabel":"CRM / Pipeline","authMethod":"oauth2","authLabel":"OAuth 2.0","tokenStrategy":"refresh_token","requiredPermissions":["contacts.readonly","opportunities.readonly"],"setupNotes":["Select the GoHighLevel location (sub-account) for this client."],"setupRequirements":[{"check":"location_selected","type":"resource_selection","label":"Location selected"}],"setupSummary":"Location selected","capabilitySummary":"Unlocks Leads by Source, Pipeline, Revenue, ROAS when paired with spend","dashboardUnlocks":[{"id":"leads_by_source","label":"Leads by Source"},{"id":"pipeline","label":"Pipeline"},{"id":"revenue","label":"Revenue"},{"id":"roas","label":"ROAS when paired with spend"}],"launchProofGroups":[{"id":"lead_or_crm_source","label":"Lead/CRM source","requiredForMinimum":true},{"id":"revenue_source","label":"Revenue source","requiredForMinimum":true}],"resourceSelection":{"requirementCheck":"location_selected","resourceLabel":"Location","listButtonLabel":"Find locations","inputLabel":"Selected location","inputPlaceholder":"Selected location","saveButtonLabel":"Save location"},"setupControls":{"pipelineMapping":null,"webhook":null},"credentialInput":null,"webhookCallbackUrl":null,"sync":{"mode":"polling","frequencyMinutes":60,"supportsBackfill":true,"defaultBackfillDays":365,"rawPayloadTypes":["contact","opportunity"],"cursorFields":["contactsAfter","opportunitiesAfter"]},"syncLabel":"Hourly","normalizers":[{"rawType":"contact","eventType":"lead"},{"rawType":"opportunity","eventType":"deal"}],"producedEventTypes":["lead","deal"],"producedEventLabels":["Leads","Deals"],"liveSmokeCheckId":"gohighlevel","connectionId":"conn_gohighlevel","connectionStatus":null,"connected":false,"externalAccountId":null,"selectedResourceId":null,"setup":{}},{"providerId":"callrail","name":"CallRail","phase":"phase_2","phaseLabel":"Phase 2","category":"call_tracking","categoryLabel":"Call Tracking","authMethod":"api_key","authLabel":"API Key","tokenStrategy":"api_key","requiredPermissions":["calls_read"],"setupNotes":["Requires a CallRail API key and the account whose calls should be tracked as leads."],"setupRequirements":[{"check":"account_selected","type":"resource_selection","label":"Account selected"}],"setupSummary":"Account selected","capabilitySummary":"Adds connected data to the tenant dashboard","dashboardUnlocks":[],"launchProofGroups":[],"resourceSelection":{"requirementCheck":"account_selected","resourceLabel":"Account","listButtonLabel":"Find accounts","inputLabel":"Selected account","inputPlaceholder":"Selected account","saveButtonLabel":"Save account"},"setupControls":{"pipelineMapping":null,"webhook":null},"credentialInput":{"label":"CallRail API key","placeholder":"CallRail API key"},"webhookCallbackUrl":null,"sync":{"mode":"polling","frequencyMinutes":30,"supportsBackfill":true,"defaultBackfillDays":90,"rawPayloadTypes":["call"],"cursorFields":["callsPage"]},"syncLabel":"Every 30 min","normalizers":[{"rawType":"call","eventType":"lead"}],"producedEventTypes":["lead"],"producedEventLabels":["Leads"],"liveSmokeCheckId":"callrail","connectionId":"conn_callrail","connectionStatus":null,"connected":false,"externalAccountId":null,"selectedResourceId":null,"setup":{}},{"providerId":"google_lsa","name":"Google Local Services","phase":"phase_2","phaseLabel":"Phase 2","category":"ad_source","categoryLabel":"Ad Source","authMethod":"oauth2","authLabel":"OAuth 2.0","tokenStrategy":"refresh_token","requiredPermissions":["adwords"],"setupNotes":["Requires a Google Ads developer token and the Local Services customer account."],"setupRequirements":[{"check":"customer_selected","type":"resource_selection","label":"Ad account selected"}],"setupSummary":"Ad account selected","capabilitySummary":"Unlocks Ad Spend, Campaign Performance, ROAS when paired with revenue","dashboardUnlocks":[{"id":"ad_spend","label":"Ad Spend"},{"id":"campaign_performance","label":"Campaign Performance"},{"id":"roas","label":"ROAS when paired with revenue"}],"launchProofGroups":[{"id":"ad_spend_source","label":"Ad spend source","requiredForMinimum":true}],"resourceSelection":{"requirementCheck":"customer_selected","resourceLabel":"Ad account","listButtonLabel":"Find ad accounts","inputLabel":"Selected ad account","inputPlaceholder":"Selected ad account","saveButtonLabel":"Save ad account"},"setupControls":{"pipelineMapping":null,"webhook":null},"credentialInput":null,"webhookCallbackUrl":null,"sync":{"mode":"polling","frequencyMinutes":360,"supportsBackfill":true,"defaultBackfillDays":90,"rawPayloadTypes":["local_services_lead","account_report"],"cursorFields":["leadPageToken","reportDate"]},"syncLabel":"Every 6 hours","normalizers":[{"rawType":"local_services_lead","eventType":"lead"},{"rawType":"account_report","eventType":"spend"}],"producedEventTypes":["lead","spend"],"producedEventLabels":["Leads","Spend"],"liveSmokeCheckId":"google_lsa","connectionId":"conn_google_lsa","connectionStatus":null,"connected":false,"externalAccountId":null,"selectedResourceId":null,"setup":{}}]}