[{"id":"/docs/getting-started/first-steps","kind":"guide","title":"First steps","breadcrumb":"Getting started › First steps","body":"Create your account and get set up in a few minutes. Setup takes a few minutes. Create an account , verify your email, and connect LinkedIn Ads. Data starts flowing right after that. Creating your ZenABM account..","keywords":"","href":"/docs/getting-started/first-steps"},{"id":"/docs/getting-started/first-steps#create-your-account","kind":"guide","title":"Create your account","breadcrumb":"Getting started › First steps","body":"Sign up. Head to the sign-up page and create your account with your work email. Verify your email. Click the link in the verification email we send you. This confirms your account and unlocks setup. Connect LinkedIn Ads. Choose the LinkedIn account that has access to your Ads, then pick the ad account you want to sync. Full walkthrough: Connecting LinkedIn.","keywords":"","href":"/docs/getting-started/first-steps#create-your-account"},{"id":"/docs/getting-started/first-steps#what-happens-after-setup","kind":"guide","title":"What happens after setup","breadcrumb":"Getting started › First steps","body":"Your first sync pulls in 90 days of your historical LinkedIn data, so you'll see companies and campaign performance right away. This may take up to 5 minutes.","keywords":"","href":"/docs/getting-started/first-steps#what-happens-after-setup"},{"id":"/docs/getting-started/first-steps#recommended-next-steps","kind":"guide","title":"Recommended next steps","breadcrumb":"Getting started › First steps","body":"Connect your CRM. Link HubSpot or Salesforce to connect ads to real pipeline and revenue. Invite your team. Bring in the people who'll use ZenABM day to day. See Invite team members. Know your data. Read Understanding your data to see how we fetch and store your LinkedIn data.","keywords":"","href":"/docs/getting-started/first-steps#recommended-next-steps"},{"id":"/docs/getting-started/connect-linkedin","kind":"guide","title":"Connecting LinkedIn","breadcrumb":"Getting started › Connecting LinkedIn","body":"Link your LinkedIn Ads account — the data source everything runs on. LinkedIn Ads is the core data source in ZenABM. Connecting it brings in your campaigns, ad sets, creatives, spend, and the companies your ads reached. Selecting LinkedIn Ads account during setup..","keywords":"","href":"/docs/getting-started/connect-linkedin"},{"id":"/docs/getting-started/connect-linkedin#how-to-connect","kind":"guide","title":"How to connect","breadcrumb":"Getting started › Connecting LinkedIn","body":"Start the connection. From setup, click Connect LinkedIn. You're sent to linkedin.com to authorize ZenABM's app. Sign in with the LinkedIn account that has access to your Ad Account. Review and approve the scopes. LinkedIn shows you the exact data scopes (3) we request before you approve anything. See what we request below for what each one does. Pick your ad account. If you manage more than one LinkedIn ad account, select the one you want to sync. You need ad account access. The LinkedIn user you connect with must have access to the ad account you want to sync. If you don't see your ad account in the list, check your permissions in LinkedIn Campaign Manager.","keywords":"","href":"/docs/getting-started/connect-linkedin#how-to-connect"},{"id":"/docs/getting-started/connect-linkedin#what-we-request-from-linkedin","kind":"guide","title":"What we request from LinkedIn","breadcrumb":"Getting started › Connecting LinkedIn","body":"ZenABM asks for three scopes, and nothing else. LinkedIn's own wording for each: Scope LinkedIn's description radsreporting Retrieve reporting for member's advertising accounts rwads Manage member's advertising accounts rorganizationsocial Retrieve member's organizations' posts, including any comments, likes and other engagement data What we don't take. There's no scope here for your LinkedIn profile, your connections, your inbox, or anything about individual members. LinkedIn aggregates ad reporting before it reaches us. See what we store and under whose rules.","keywords":"","href":"/docs/getting-started/connect-linkedin#what-we-request-from-linkedin"},{"id":"/docs/getting-started/connect-linkedin#what-gets-synced","kind":"guide","title":"What gets synced","breadcrumb":"Getting started › Connecting LinkedIn","body":"Campaigns, ad sets, and creatives, with spend and performance. The companies your ads reached and how they engaged. Audience detail such as industry, seniority, job function, company size, and location. Your first sync pulls in historical data. After that, ZenABM refreshes automatically each week.","keywords":"","href":"/docs/getting-started/connect-linkedin#what-gets-synced"},{"id":"/docs/getting-started/connect-linkedin#reconnecting","kind":"guide","title":"Reconnecting","breadcrumb":"Getting started › Connecting LinkedIn","body":"LinkedIn access can expire. If it does, we will send you an email with the steps to take. Nothing is lost, and syncing resumes where it left off. Connecting LinkedIn is required to get the ZenABM platform working for you. All other integrations are optional.","keywords":"","href":"/docs/getting-started/connect-linkedin#reconnecting"},{"id":"/docs/getting-started/connect-linkedin#recommended-next-steps","kind":"guide","title":"Recommended next steps","breadcrumb":"Getting started › Connecting LinkedIn","body":"Connect your CRM. Link HubSpot or Salesforce to connect ads to real pipeline and revenue. Invite your team. Bring in the people who'll use ZenABM day to day. See Invite team members. Know your data. Read Understanding your data to see how we fetch and store your LinkedIn data.","keywords":"","href":"/docs/getting-started/connect-linkedin#recommended-next-steps"},{"id":"/docs/getting-started/connect-hubspot","kind":"guide","title":"Connecting HubSpot","breadcrumb":"Getting started › Connecting HubSpot","body":"Connect HubSpot to tie ad engagement to deals and revenue. Connecting HubSpot links your ad engagement to revenue. It brings your deals, pipelines, lifecycle stages and contacts into ZenABM, which powers influenced revenue, Deals, Contacts and automatic ABM stage tracking. HubSpot settings in ZenABM once connected. Choose pipelines, deals and the fields to sync..","keywords":"","href":"/docs/getting-started/connect-hubspot"},{"id":"/docs/getting-started/connect-hubspot#how-to-connect","kind":"guide","title":"How to connect","breadcrumb":"Getting started › Connecting HubSpot","body":"Authorize ZenABM. From CRM Sync, choose Connect HubSpot and approve access in HubSpot. It takes a couple of clicks. Review and approve the scopes. HubSpot shows you the exact scopes we request before you approve anything. See what we request below for what each one does. You need permission in HubSpot. The person connecting needs rights to authorize apps in HubSpot. If the approval screen blocks you, ask a HubSpot admin to run the connection.","keywords":"","href":"/docs/getting-started/connect-hubspot#how-to-connect"},{"id":"/docs/getting-started/connect-hubspot#what-we-request-from-hubspot","kind":"guide","title":"What we request from HubSpot","breadcrumb":"Getting started › Connecting HubSpot","body":"ZenABM asks for nine scopes, and nothing else. HubSpot's own wording for each: Scope HubSpot's description crm.objects.companies.read View properties and other details about companies. crm.objects.companies.write View properties and create, delete, or make changes to companies. crm.objects.contacts.read View properties and other details about contacts. crm.objects.custom.write Create, delete, or make changes to custom objects. crm.objects.deals.read View properties and other details about deals. crm.schemas.companies.read View details about property settings for companies. crm.schemas.companies.write Create, delete, or make changes to property settings for companies. crm.schemas.deals.read View details about property settings for deals. oauth Basic scope required for the OAuth connection itself.","keywords":"","href":"/docs/getting-started/connect-hubspot#what-we-request-from-hubspot"},{"id":"/docs/getting-started/connect-hubspot#what-it-unlocks","kind":"guide","title":"What it unlocks","breadcrumb":"Getting started › Connecting HubSpot","body":"Dashboard. Influenced revenue lands on your dashboard, with deals tied back to the accounts your ads reached. Sources. Multi-touch attribution across every channel, with CRM outcomes attached. Contacts. The real people behind your accounts, populated from your HubSpot records. Deals. Your HubSpot deals, connected to the accounts and ads that influenced them. Company Journey. CRM context next to ad engagement, in order, on every company profile.","keywords":"","href":"/docs/getting-started/connect-hubspot#what-it-unlocks"},{"id":"/docs/getting-started/connect-hubspot#going-deeper","kind":"guide","title":"Going deeper","breadcrumb":"Getting started › Connecting HubSpot","body":"Choosing custom properties, syncing engagement data back to HubSpot, setting your influence threshold and window, and reconciling company matching are covered in HubSpot.","keywords":"","href":"/docs/getting-started/connect-hubspot#going-deeper"},{"id":"/docs/getting-started/connect-salesforce","kind":"guide","title":"Connecting Salesforce","breadcrumb":"Getting started › Connecting Salesforce","body":"Connect Salesforce to bring your opportunities into ZenABM. Connecting Salesforce brings your opportunities into ZenABM, so the accounts your ads reach can be linked to real pipeline and closed revenue. Salesforce settings in ZenABM once connected. Sync opportunities and choose which engagement fields write back to the Account object..","keywords":"","href":"/docs/getting-started/connect-salesforce"},{"id":"/docs/getting-started/connect-salesforce#how-to-connect","kind":"guide","title":"How to connect","breadcrumb":"Getting started › Connecting Salesforce","body":"Authorize ZenABM. From CRM Sync, choose Connect Salesforce and approve access in Salesforce. Sync your opportunities. ZenABM pulls in your opportunities and keeps them up to date. Match your companies. Reconcile ZenABM companies to the right Salesforce accounts so attribution lines up. Most match automatically; you can fix the rest by hand. You need permission in Salesforce. The person connecting needs rights to authorize connected apps. If approval is blocked, ask a Salesforce admin to run the connection.","keywords":"","href":"/docs/getting-started/connect-salesforce#how-to-connect"},{"id":"/docs/getting-started/connect-salesforce#what-it-unlocks","kind":"guide","title":"What it unlocks","breadcrumb":"Getting started › Connecting Salesforce","body":"Opportunities in ZenABM: see the deals attached to advertised accounts in Deals. Revenue attribution: connect ad engagement to pipeline and closed revenue. Account context: Salesforce detail alongside ad engagement on company profiles. Matching is what makes it trustworthy. Attribution is only as accurate as your company matching. Spending a few minutes fixing mismatches upfront saves misleading reports later.","keywords":"","href":"/docs/getting-started/connect-salesforce#what-it-unlocks"},{"id":"/docs/getting-started/connect-salesforce#going-deeper","kind":"guide","title":"Going deeper","breadcrumb":"Getting started › Connecting Salesforce","body":"Company matching and the rest of the settings are covered in Salesforce.","keywords":"","href":"/docs/getting-started/connect-salesforce#going-deeper"},{"id":"/docs/getting-started/invite-team","kind":"guide","title":"Invite team members","breadcrumb":"Getting started › Invite team members","body":"Add your teammates and give them the right access. ZenABM is more useful when your whole team is in it: marketers reading the reports, sales acting on the engaged accounts. Inviting teammates takes a moment, and there is no seat limit. Team settings in ZenABM.","keywords":"","href":"/docs/getting-started/invite-team"},{"id":"/docs/getting-started/invite-team#invite-someone","kind":"guide","title":"Invite someone","breadcrumb":"Getting started › Invite team members","body":"Open team settings. Go to your team settings, where you'll see current members and any pending invitations. Send an invitation. Enter your teammate's email and assign their role. They accept. They'll get an email invitation. Once accepted, they land in your team with the access you gave them.","keywords":"","href":"/docs/getting-started/invite-team#invite-someone"},{"id":"/docs/getting-started/invite-team#managing-your-team","kind":"guide","title":"Managing your team","breadcrumb":"Getting started › Invite team members","body":"Members and roles: see everyone in the team and adjust what they can do. Pending invitations: track who hasn't accepted yet, and resend if needed. Team name: set how your team appears in ZenABM. Switching teams: if you belong to more than one team, you can switch between them.","keywords":"","href":"/docs/getting-started/invite-team#managing-your-team"},{"id":"/docs/getting-started/understanding-your-data","kind":"guide","title":"Understanding your data","breadcrumb":"Getting started › Understanding your data","body":"How we fetch and store your data Almost everything in ZenABM is built on LinkedIn ad reporting data. It is worth knowing how we fetch it, how we store it, and where it comes with caveats.","keywords":"","href":"/docs/getting-started/understanding-your-data"},{"id":"/docs/getting-started/understanding-your-data#what-we-fetch","kind":"guide","title":"What we fetch","breadcrumb":"Getting started › Understanding your data","body":"ZenABM pulls your LinkedIn ad reporting at three levels, and stores each one separately rather than deriving it from the others: Ad account. Overall interactions across the whole ad account, across all of your Campaigns. Campaign. Interactions with the Campaign pivot, aggregated for each of your LinkedIn Campaigns. Ad set. Interactions per ad set, the most granular level.","keywords":"","href":"/docs/getting-started/understanding-your-data#what-we-fetch"},{"id":"/docs/getting-started/understanding-your-data#how-often-it-syncs","kind":"guide","title":"How often it syncs","breadcrumb":"Getting started › Understanding your data","body":"Data is fetched in weekly intervals, every Monday (00:00 GMT). Your first sync backfills 90 days of your historical data; after that, each Monday adds the week that just closed.","keywords":"","href":"/docs/getting-started/understanding-your-data#how-often-it-syncs"},{"id":"/docs/getting-started/understanding-your-data#why-weekly-and-why-our-numbers-are-more-accurate-than-native-campaign-manager","kind":"guide","title":"Why weekly, and why our numbers are more accurate than native Campaign Manager","breadcrumb":"Getting started › Understanding your data","body":"LinkedIn's own accuracy guidance says demographic metrics are approximated to protect member privacy, and that to minimize the effect of that approximation you should request a full time period instead of adding up daily metrics for that time period. What this means in practice: the more granular your query, the more data will be obfuscated to protect LinkedIn members' privacy. ZenABM requests and stores data over longer time periods and subtracts the differences. That often lets our users see more detailed data than the native Campaign Manager does.","keywords":"","href":"/docs/getting-started/understanding-your-data#why-weekly-and-why-our-numbers-are-more-accurate-than-native-campaign-manager"},{"id":"/docs/getting-started/understanding-your-data#what-we-store-and-under-whose-rules","kind":"guide","title":"What we store, and under whose rules","breadcrumb":"Getting started › Understanding your data","body":"We store the data exposed by LinkedIn's API, in compliance with all of their Data Storage Requirements for the Marketing API Program, which set how long each type of data may be retained.","keywords":"","href":"/docs/getting-started/understanding-your-data#what-we-store-and-under-whose-rules"},{"id":"/docs/getting-started/understanding-your-data#what-this-unlocks","kind":"guide","title":"What this unlocks","breadcrumb":"Getting started › Understanding your data","body":"Storing all three levels of granularity side by side is what lets us show how a single Company performed across your different motions. You can see which Campaigns and which Ad Sets reached it, when, and to what degree. That is the raw material for accurate company journeys, and for connecting ad activity to the deals attached to those accounts.","keywords":"","href":"/docs/getting-started/understanding-your-data#what-this-unlocks"},{"id":"/docs/getting-started/understanding-your-data#the-important-caveat-numbers-wont-always-roll-up","kind":"guide","title":"The important caveat: numbers won't always roll up","breadcrumb":"Getting started › Understanding your data","body":"LinkedIn's reporting API is approximate by design, and comes with hard restrictions. The practical consequence: Sums won't tie out, and that's expected. Adding up clicks from all your ad sets will often (but not always!) be less than the clicks reported on their parent campaign. Adding up all campaigns will often be less than the ad account total. Nothing is missing. It follows the logic stated above: the more granular the query, the more obfuscated the results. LinkedIn says as much directly: you'll see inconsistencies when \"adding campaign level data and comparing it to account level data,\" and their advice is to \"select the highest reporting level you want to view.\" So read each level for what it is. Use ad account totals for overall performance, campaign figures for campaign performance, and ad set figures for ad set reporting. Don't treat the lower levels as a decomposition of the higher ones.","keywords":"","href":"/docs/getting-started/understanding-your-data#the-important-caveat-numbers-wont-always-roll-up"},{"id":"/docs/getting-started/understanding-your-data#where-youll-see-this-data","kind":"guide","title":"Where you'll see this data","breadcrumb":"Getting started › Understanding your data","body":"Dashboard. The ad account view, with overall spend, revenue and account movement. See Dashboard. Company Insights. Per-company engagement, stages, deals and activity, built from the company breakdown. See Companies. Job Title Insights. Which roles and personas your ads reached. See Job Titles.","keywords":"","href":"/docs/getting-started/understanding-your-data#where-youll-see-this-data"},{"id":"/docs/overview/dashboard","kind":"guide","title":"Dashboard","breadcrumb":"Overview › Dashboard","body":"Your ABM program at a glance — spend, revenue and account movement. The Dashboard is your home screen and your executive summary. In one scroll it answers your questions about pipeline, ad spend, and campaign effectiveness. The dashboard, with the context picker, LinkedIn ad metrics, Zena, and revenue metrics..","keywords":"","href":"/docs/overview/dashboard"},{"id":"/docs/overview/dashboard#start-by-picking-your-context","kind":"guide","title":"Start by picking your context","breadcrumb":"Overview › Dashboard","body":"ZenABM analytics can be scoped to specific time periods (pre-defined or custom), and to the context of your data.","keywords":"","href":"/docs/overview/dashboard#start-by-picking-your-context"},{"id":"/docs/overview/dashboard#the-time-period","kind":"guide","title":"The time period","breadcrumb":"Overview › Dashboard","body":"Choose a preset (This month, Last month, This quarter, Last quarter, Year to date) or set a Custom range. Turn on Compare and every metric gains a \"vs\" figure and a percentage change against the previous period, so you're reading a trend rather than a number.","keywords":"","href":"/docs/overview/dashboard#the-time-period"},{"id":"/docs/overview/dashboard#what-counts-as-influenced","kind":"guide","title":"What counts as influenced","breadcrumb":"Overview › Dashboard","body":"The dropdown next to the dates decides which interactions the dashboard counts: Option What it counts LinkedIn Influenced All LinkedIn interactions in the selected time period All ABM Campaigns Data from every ABM campaign in the selected time period A specific ABM campaign Just that one program. Search for it by name Choosing the time period and what counts as influenced..","keywords":"","href":"/docs/overview/dashboard#what-counts-as-influenced"},{"id":"/docs/overview/dashboard#linkedin-ad-metrics","kind":"guide","title":"LinkedIn Ad Metrics","breadcrumb":"Overview › Dashboard","body":"The top card is your raw LinkedIn performance for the selected time period: impressions, clicks, engagements and ad spend. These come straight from LinkedIn's API, synced daily. They are cumulative totals for the window you picked, not a sum of your campaigns. Don't expect these to equal your campaigns added up. Ad-account totals are measured independently from campaign and ad set figures, so they won't tie out. That's LinkedIn's reporting working as designed. See why the numbers don't roll up.","keywords":"","href":"/docs/overview/dashboard#linkedin-ad-metrics"},{"id":"/docs/overview/dashboard#ask-zena","kind":"guide","title":"Ask Zena","breadcrumb":"Overview › Dashboard","body":"Use our AI Agent, Zena, to dig deeper into your data. Zena is loaded with expert knowledge and has access to all of your data on demand.","keywords":"","href":"/docs/overview/dashboard#ask-zena"},{"id":"/docs/overview/dashboard#revenue-metrics","kind":"guide","title":"Revenue Metrics","breadcrumb":"Overview › Dashboard","body":"See how your LinkedIn ABM motion affects the pipeline and deals at a glance.","keywords":"","href":"/docs/overview/dashboard#revenue-metrics"},{"id":"/docs/overview/dashboard#influenced-pipeline-by-month","kind":"guide","title":"Influenced Pipeline by Month","breadcrumb":"Overview › Dashboard","body":"A month-by-month table tying spend to outcomes: Column What it means Ad Spend What you spent that month Pipeline Created Pipeline from accounts your ads influenced Closed Won Revenue that landed Pipeline per $ Pipeline generated for every dollar spent ROAS Return on ad spend The bottom row totals spend, pipeline and closed won, and averages pipeline-per-dollar and ROAS across the whole range.","keywords":"","href":"/docs/overview/dashboard#influenced-pipeline-by-month"},{"id":"/docs/overview/dashboard#influenced-revenue--pipeline","kind":"guide","title":"Influenced Revenue & Pipeline","breadcrumb":"Overview › Dashboard","body":"A bar chart breaking down the total influenced pipeline: how much ABM/LinkedIn influenced open deals, Closed Won and Closed Lost.","keywords":"","href":"/docs/overview/dashboard#influenced-revenue--pipeline"},{"id":"/docs/overview/dashboard#campaign-effectiveness","kind":"guide","title":"Campaign Effectiveness","breadcrumb":"Overview › Dashboard","body":"Effectiveness metrics for a deeper read on the impact of your LinkedIn Ads. Companies Targeted. How many Companies your program reached. This metric is not available in native Campaign Manager (it operates on Audience numbers). Revenue & ACV. Influenced revenue, and average contract value. Pipeline / $ and ROAS. What each dollar of ad spend returned. Ad Spend & Total Influenced Pipeline. The headline spend and pipeline figures for the period. Influenced pipeline by month, the revenue chart, and the Campaign Effectiveness tiles.. Where these numbers come from. Ad Spend comes from LinkedIn. Pipeline and revenue come from your CRM, synced daily. The link between them is company matching plus your influence window, both set up in the HubSpot or Salesforce settings pages.","keywords":"","href":"/docs/overview/dashboard#campaign-effectiveness"},{"id":"/docs/overview/dashboard#funnel-breakdown","kind":"guide","title":"Funnel breakdown","breadcrumb":"Overview › Dashboard","body":"Funnel breakdown relies on your ABM Stages configuration. Companies in ABM Stages: how many accounts currently sit in each stage, from Identified through Aware, Interested, Considering, Selecting, Customer, and Lost. This is your funnel as it stands today. Companies Moving ABM Stages: how many accounts entered each stage during the period. Hover any bar to see the count, the previous period's count, and the change. Companies in ABM Stages, Companies Moving ABM Stages, and Top Engaged Companies.. Diagnose problems quickly and save ad spend. ABM Stages are a leading metric for the health of your campaigns. If you see companies stuck at the top of the funnel and not progressing down fast enough, that's a symptom worth investigating.","keywords":"","href":"/docs/overview/dashboard#funnel-breakdown"},{"id":"/docs/overview/dashboard#how-to-use-it","kind":"guide","title":"How to use it","breadcrumb":"Overview › Dashboard","body":"Start your week here. Set Compare on, and look for what changed: a spend jump, new engaged accounts, or accounts advancing stages. Answer \"what is ABM getting us?\" with Revenue Metrics and Campaign Effectiveness. That's the board-ready part. Spot stalls. If accounts pile into one stage and stop entering the next, your funnel has a bottleneck. Drill down. Click any company to open its company page.","keywords":"","href":"/docs/overview/dashboard#how-to-use-it"},{"id":"/docs/overview/dashboard#where-the-dashboards-data-comes-from","kind":"guide","title":"Where the dashboard's data comes from","breadcrumb":"Overview › Dashboard","body":"LinkedIn. Impressions, clicks, engagements and spend, synced weekly, every Monday. Your CRM. Pipeline, closed won and ACV, synced daily from HubSpot or Salesforce. ABM Stages. Both funnel widgets, driven by the stage rules you wrote. Engagement scoring. The lifetime engagement score behind Top Engaged Companies.","keywords":"","href":"/docs/overview/dashboard#where-the-dashboards-data-comes-from"},{"id":"/docs/abm/campaigns","kind":"guide","title":"ABM Campaigns","breadcrumb":"ABM › ABM Campaigns","body":"Detailed analytics for all your ABM Campaings on LinkedIn ABM Campaigns group your LinkedIn Campaigns and Ad Sets into one object, so you can read the analytics for a whole motion in one place.","keywords":"","href":"/docs/abm/campaigns"},{"id":"/docs/abm/campaigns#the-common-use-case-different-target-account-lists","kind":"guide","title":"The common use case: different target account lists","breadcrumb":"ABM › ABM Campaigns","body":"Running several LinkedIn Campaigns at the same Audience makes the data almost impossible to read. With ABM Campaigns you tag which Campaigns belong to which motion. Common ways to split them: By objective: colder and warmer layers By region: US Campaigns separate from the UK Campaigns Separate funnels and history: how far a Company went in each of your motions The ABM Campaigns Insights tab shows every motion side by side, with pipeline created, revenue, ad spend and pipeline per dollar..","keywords":"","href":"/docs/abm/campaigns#the-common-use-case-different-target-account-lists"},{"id":"/docs/abm/campaigns#the-upsides-of-using-abm-campaigns","kind":"guide","title":"The upsides of using ABM Campaigns","breadcrumb":"ABM › ABM Campaigns","body":"Separate analytics per motion. Each motion gets its own spend, engagement, stage breakdown and influenced revenue, instead of everything averaging together. Scoped to a time range. Add a start and end date, and the analytics count only that window. A Q3 play stays a Q3 play and leaves your overall data alone. Comparable. Once the motions are separate, you can tell which one is working.","keywords":"","href":"/docs/abm/campaigns#the-upsides-of-using-abm-campaigns"},{"id":"/docs/abm/campaigns#how-to-set-one-up","kind":"guide","title":"How to set one up","breadcrumb":"ABM › ABM Campaigns","body":"Create the campaign. Give it a clear name and set the start date. ZenABM calculates influence from that date and discards interactions that happened before it. Select LinkedIn campaigns and ad sets. One ABM Campaign can hold many campaigns or ad sets. Pipeline influence, revenue attribution and Company journeys then count only the interactions from this subset. Set the number of target accounts (optional). Your own estimate of how many Companies this motion should reach. Watch it work. Come back to the overview for live metrics, monthly spend, the stage breakdown and the deals tied to your accounts.","keywords":"","href":"/docs/abm/campaigns#how-to-set-one-up"},{"id":"/docs/abm/campaigns#what-each-abm-campaign-shows-you","kind":"guide","title":"What each ABM Campaign shows you","breadcrumb":"ABM › ABM Campaigns","body":"Companies. The Companies that engaged with this ABM Campaign, and how engaged they are. Stage breakdown. How many accounts sit in each of your ABM stages right now for this ABM Campaign. Influenced revenue. The pipeline and revenue this program influenced. Deals. CRM deals connected to the Companies in this ABM Campaign.","keywords":"","href":"/docs/abm/campaigns#what-each-abm-campaign-shows-you"},{"id":"/docs/abm/campaigns#best-practices","kind":"guide","title":"Best practices","breadcrumb":"ABM › ABM Campaigns","body":"Split anything you'd compare. Regions, verticals and competitor plays are the usual suspects. If two groups deserve separate verdicts, give them separate ABM Campaigns. Create one per distinct motion. Use an ABM Campaign when you want to read the results of one part of your LinkedIn Ads without the rest of your programs mixed in. Use the dates. They keep old data out of the analytics.","keywords":"","href":"/docs/abm/campaigns#best-practices"},{"id":"/docs/abm/campaigns#how-do-i-control-which-companies-enter-an-abm-campaign","kind":"guide","title":"How do I control which Companies enter an ABM Campaign?","breadcrumb":"ABM › ABM Campaigns","body":"Companies enter through the LinkedIn Campaigns and Ad Sets you added to the ABM Campaign. When a Company engages with one of them after the start date, ZenABM adds that Company for you. You cannot assign or remove a Company for ABM Campaign manually.","keywords":"","href":"/docs/abm/campaigns#how-do-i-control-which-companies-enter-an-abm-campaign"},{"id":"/docs/abm/campaigns#what-is-the-number-of-target-accounts-field-for","kind":"guide","title":"What is the \"Number of Target Accounts\" field for?","breadcrumb":"ABM › ABM Campaigns","body":"You type in how many Companies you expect this ABM Campaign to reach. It is your own target. The number changes nothing about the ABM Campaign. Targeting, delivery, budget and Company membership all ignore it. It gives your reported reach a point of comparison. It will move into the upcoming Target Management feature, where you will be able to track your target against the actual reach. Plan limits. The number of ABM Campaigns you can run depends on your plan. If you hit the limit, finish or archive a completed program, or upgrade for more.","keywords":"","href":"/docs/abm/campaigns#what-is-the-number-of-target-accounts-field-for"},{"id":"/docs/abm/stages","kind":"guide","title":"ABM Stages","breadcrumb":"ABM › ABM Stages","body":"Track how accounts move across your funnel - and easily identify the Interested accounts. ABM Stages make account scoring easy. Instead of building and maintaining complicated scoring logic inside your CRM, you define stages in ZenABM as simple conditions, built from your LinkedIn ad data, your HubSpot data, or both. Every account is then scored and placed automatically. You do not need a HubSpot/Salesforce/CRM connection to use ABM Stages. They can work on LinkedIn data alone. Your stages in order, each with the conditions that put an account there..","keywords":"","href":"/docs/abm/stages"},{"id":"/docs/abm/stages#how-stages-work","kind":"guide","title":"How stages work","breadcrumb":"ABM › ABM Stages","body":"You define an ordered set of stages that mirror your funnel. Each stage has a set of conditions. When an account meets them, ZenABM places it in that stage. As accounts engage more, or as deals progress in your CRM, they move on their own. There is nothing to maintain by hand. Context matters. ABM Stages are calculated both at the general level and separately for each of your ABM Campaigns.","keywords":"","href":"/docs/abm/stages#how-stages-work"},{"id":"/docs/abm/stages#building-conditions","kind":"guide","title":"Building conditions","breadcrumb":"ABM › ABM Stages","body":"A stage is one or more condition blocks, combined with AND (all must be true) or OR (any can be true). Every condition is the same shape: pick a condition type, a metric, a comparison, and a value. Building a condition from condition type, metric, comparison and value, chained with OR.. There are four condition types: LinkedIn Metrics. Impressions, clicks, engagements, CTR, CPC and cost. For example, \"clicks greater than or equal to 5\". Lifecycle Stage. A company's HubSpot lifecycle stage, such as \"Sales Qualified Lead\". Deal Stage. A specific CRM deal stage, or that an account has an open deal. Custom Property. Any HubSpot property at the Company level. Ideal for external data sources you track, like webinar attendance, whitepaper downloads, form fills on your website and more. Combine CRM & LinkedIn Data. Combine CRM data (like Employee Range) with LinkedIn metrics. For example, \"Aware\" could be at least 50 impressions for 1-10 employees OR at least 250 impressions for 50-250 org size.","keywords":"","href":"/docs/abm/stages#building-conditions"},{"id":"/docs/abm/stages#setting-it-up","kind":"guide","title":"Setting it up","breadcrumb":"ABM › ABM Stages","body":"Check the defaults. Each account starts with some default stages. Your start date: define an ABM Campaign. We use the earliest start date among your active ABM Campaigns as the cut-off point for stages calculation. Set up at least one ABM Campaign. Define your Customer and Lost stages. Define Customer and Lost right away to get revenue attribution working. We highly recommend using a Deal/Opportunity for both. For example: Customer is a Deal in stage Closed Won. Let it sync. ABM Stages sync once a day, at midnight.","keywords":"","href":"/docs/abm/stages#setting-it-up"},{"id":"/docs/abm/stages#what-stages-give-you","kind":"guide","title":"What stages give you","breadcrumb":"ABM › ABM Stages","body":"The right accounts at the right time. Scoring surfaces which accounts are Interested now, so Sales works the ones that are ready. Leading indicators of campaign health. Accounts entering a stage move long before pipeline does, which makes it the earliest read on whether a motion is working. See Dashboard. Journeys overall and per motion. See an account's full stage history, and its progress within a specific ABM Campaign. Stages where your team works. Stage is written back onto the HubSpot company record (or Salesforce Account). The ABM stage and windowed LinkedIn metrics, synced onto the HubSpot company record..","keywords":"","href":"/docs/abm/stages#what-stages-give-you"},{"id":"/docs/abm/stages#reading-the-results","kind":"guide","title":"Reading the results","breadcrumb":"ABM › ABM Stages","body":"You can click on any Stage Badge to see its dedicated page. Entering vs. progressing. For each stage, see accounts arriving and accounts moving on, so you can spot where they stall. Per-company history. Every account carries a full stage history: where it went, and how long it spent at each step. On the dashboard. Companies in ABM Stages is your funnel today; Companies Moving ABM Stages is momentum.","keywords":"","href":"/docs/abm/stages#reading-the-results"},{"id":"/docs/abm/stages#best-practices","kind":"guide","title":"Best practices","breadcrumb":"ABM › ABM Stages","body":"Use time-boxed conditions. Use ZenABM's own time-boxed fields to keep stages fresh. For example: Interested companies are the ones with at least 5 clicks in the last 30 days. Pull in external HubSpot signals. Whitepaper downloads, webinar attendance, form fills: anything living in a HubSpot property can drive a stage. Ad engagement plus a whitepaper download is a much stronger signal than either on its own. Stage order matters. We evaluate stages in reverse-waterfall order, starting from the lowest and moving up towards Identified. If a Company meets any stage condition, it is not evaluated further, so make sure the lower stages are meaningful. Keep making adjustments. If everyone piles into one stage, your thresholds are too loose or too tight. Adjust and recalculate. LinkedIn-only conditions work on their own. Lifecycle, deal and custom-property conditions need a connected CRM. See HubSpot or Salesforce.","keywords":"","href":"/docs/abm/stages#best-practices"},{"id":"/docs/abm/intents","kind":"guide","title":"Intents","breadcrumb":"ABM › Intents","body":"Tag and segment LinkedIn Ad Sets and Campaigns by their messaging Intents tell you what an account is interested in: a product line, a use case, or a specific campaign theme. Intents land in your CRM, so keep them easy to understand for everyone, including Sales. Intents are assigned to Companies based on them clicking on Ad Sets/Campaigns. ZenABM's Intents Page.","keywords":"","href":"/docs/abm/intents"},{"id":"/docs/abm/intents#when-to-use-intents","kind":"guide","title":"When to use intents","breadcrumb":"ABM › Intents","body":"Tag specific LinkedIn Campaigns or Ad Sets with the messaging that they cover. We generally advise doing this at the Campaign level, for more meaningful data (the details are here). Campaigns will have Ad Sets with different formats that often speak about the same thing. Common examples: A competitor-takedown Campaign A specific feature Campaign (\"AI Analytics\", \"Product Onboarding\", etc.) A problem-focused Campaign (\"Forecasting\", \"Logistics oversight\", etc.)","keywords":"","href":"/docs/abm/intents#when-to-use-intents"},{"id":"/docs/abm/intents#how-to-set-up-an-intent","kind":"guide","title":"How to set up an intent","breadcrumb":"ABM › Intents","body":"Create the intent. Give it a clear, specific name. This is how it will appear in the platform and in your CRM, so keep it understandable for everyone, both in Marketing and in Sales. Choose where it applies. This is the key decision. You can associate an intent at the ad set level or the campaign level (and with specific companies). See below for which to pick. We recommend using Campaign or both.","keywords":"","href":"/docs/abm/intents#how-to-set-up-an-intent"},{"id":"/docs/abm/intents#ad-set-level-vs-campaign-level","kind":"guide","title":"Ad set level vs. Campaign level","breadcrumb":"ABM › Intents","body":"Because a Campaign contains several Ad Sets, where you attach an intent changes how precise it is: Ad set level: more precise, harder to detect. Because of LinkedIn's data policy (\"the more granular you query, the more obfuscated the data is\"), it is more difficult to cross the required thresholds to detect enough Clicks per ad set at the Company level. Campaign level: broader. Attach the intent to the whole campaign when every ad set beneath it represents the same messaging/offer. It is simpler to manage, it covers all current and future ad sets in that campaign, and it is meaningfully easier to capture the data. You can define separate Intents at the Ad Set level and at its Campaign level. Keep in mind that the data will not always roll up, due to the nature of LinkedIn's API. Which should I choose?. Start at the Campaign level if a campaign is built around one clear theme. It's less to maintain. Drop to the ad set level when a single campaign mixes themes and you need cleaner signal. You can always refine later.","keywords":"","href":"/docs/abm/intents#ad-set-level-vs-campaign-level"},{"id":"/docs/abm/intents#best-practices","kind":"guide","title":"Best practices","breadcrumb":"ABM › Intents","body":"Name intents for your team. \"Interested in SSO\" is more useful to sales than \"Q3 creative v2\". Pair intents with stages. An account that is Interested (ABM Stage) and shows AI Analytics intent is a strong, specific signal to act on, and it makes the outreach message easy to write around the detected theme.","keywords":"","href":"/docs/abm/intents#best-practices"},{"id":"/docs/insights/companies","kind":"guide","title":"Companies","breadcrumb":"Data Insights › Companies","body":"All of the Companies you're advertising to. Companies is the most important screen in ZenABM. It lists every company that has engaged with your ads, with its engagement score, ABM stage, intents, touchpoint data and engagement metrics. The Companies insights table with engagement scores, stages, and deals..","keywords":"","href":"/docs/insights/companies"},{"id":"/docs/insights/companies#the-engagement-score","kind":"guide","title":"The engagement score","breadcrumb":"Data Insights › Companies","body":"ZenABM calculates a LinkedIn Ads engagement score from clicks (times two) and engagements, divided by impressions. That gives us a good feel for the engagement level, which we then classify on a 1-5 scale. Every company gets a: lifetime engagement score, based on all of their interactions to date current engagement score, based on the selected time period in the Companies Insights table Dive deeper. Click any company name to open its own page, with cross-channel performance, the people who engaged, its stage, intents, deals and a full activity feed.","keywords":"","href":"/docs/insights/companies#the-engagement-score"},{"id":"/docs/insights/companies#common-things-youll-do-here","kind":"guide","title":"Common things you'll do here","breadcrumb":"Data Insights › Companies","body":"Find accounts to action. Sort by clicks, ABM Stages or engagement score, filter to those with no open deal, and hand the list to sales. Prep for a call. Open a company profile to see everything it engaged with before you reach out. Fix a match. If a company isn't linked to the right CRM record, you can connect it to its HubSpot or Salesforce ID by hand. Export. Download the view as PDF, Excel, and more to share or work offline.","keywords":"","href":"/docs/insights/companies#common-things-youll-do-here"},{"id":"/docs/insights/companies#filters","kind":"guide","title":"Filters","breadcrumb":"Data Insights › Companies","body":"Share the view. All of our filters are saved in the URL. If you want other team members to see the same data, just copy the URL and send it to them (or export it to CSV/PDF/XLSX using the Export button). Hit the Filters button to cut Companies Insights down to the segment you want: Multiple filters to get the right subset of your data.","keywords":"","href":"/docs/insights/companies#filters"},{"id":"/docs/insights/company-journey","kind":"guide","title":"Company Journey","breadcrumb":"Data Insights › Company Journey","body":"The full timeline of how an account engaged, week-by-week. Click any company in Companies and you land on its own page. It holds every channel that touched the account, every person who engaged, its stage, its intents and its deals, in one place. This is the screen to open before a sales call. A Company page, with LinkedIn and other-channel performance, contacts, intents and ABM stage..","keywords":"","href":"/docs/insights/company-journey"},{"id":"/docs/insights/company-journey#where-to-find-it","kind":"guide","title":"Where to find it","breadcrumb":"Data Insights › Company Journey","body":"Open Companies and click any company name. You can also reach a company page from almost anywhere it's mentioned: a Campaign's company list, a deal, or the Top Engaged Companies widget on your Dashboard.","keywords":"","href":"/docs/insights/company-journey#where-to-find-it"},{"id":"/docs/insights/company-journey#the-company-details-panel","kind":"guide","title":"The company details panel","breadcrumb":"Data Insights › Company Journey","body":"Down the right-hand side is the account at a glance: Company details. Website, location, and links out to the company's LinkedIn page and its record in your CRM. Current & lifetime ABM stage. Where the account sits today, and the furthest stage it has ever reached. See ABM Stages. Lifetime engagement score. How engaged the account is overall, from Low to Very High. It is the quickest read on how warm the account is, based on LinkedIn Ads engagement. Intents. The buying signals attached to the account, each with the date it was picked up. See Intents. There's also an Exclusion panel showing whether the account is currently excluded from your ads, with a shortcut to exclude it. See Exclusions. Current vs. lifetime. If lifetime stage is ahead of current stage, the account has cooled off. It reached further in the past than it sits today, and that gap is often worth a follow-up.","keywords":"","href":"/docs/insights/company-journey#the-company-details-panel"},{"id":"/docs/insights/company-journey#overview","kind":"guide","title":"Overview","breadcrumb":"Data Insights › Company Journey","body":"The key metrics (impressions, clicks, engagements and cost) come from LinkedIn's data. The other channels, such as Google Ads, Reddit Ads, organic clicks, website visits and AI clicks, currently rely on the HubSpot integration. Underneath, a chart plots those metrics over time, so you can see when the account was active and what it cost you. Use the checkboxes to toggle individual metrics on and off, and the date picker to change the window.","keywords":"","href":"/docs/insights/company-journey#overview"},{"id":"/docs/insights/company-journey#ad-sets","kind":"guide","title":"Ad Sets","breadcrumb":"Data Insights › Company Journey","body":"Ad Sets show the performance across all of the Ad Sets that were served to this company. That is useful for two reasons: It helps you narrow down the right outreach messaging and build the motion around what the account already shows interest in. It helps you refine your whole LinkedIn ABM motion. If some inventory type, like Thought Leader Ads, contributes the most towards revenue, it might be worth doubling down on. Breakdown of performance across Ad Sets, with Deal data.","keywords":"","href":"/docs/insights/company-journey#ad-sets"},{"id":"/docs/insights/company-journey#the-tabs","kind":"guide","title":"The tabs","breadcrumb":"Data Insights › Company Journey","body":"Each tab drills into one part of the account: Tab What's in it Overview Cross-channel performance, contacts and the activity feed Ad Sets The ad sets that reached the company, and how it responded to each Campaigns The same, rolled up by campaign ABM Campaigns Which ABM campaigns the account belongs to Intents The intents attached to it, and when each was detected Deals The CRM deals tied to the account Contacts The people at the company and their source touchpoints ABM Stages Stage history: which stages it entered, and when Exclude Exclude the company from your ads, or see why it already is Numbers won't always tie out. Ad set figures won't sum to the campaign total, and campaigns won't sum to the account total. That's LinkedIn's reporting, not a bug. See why the numbers don't roll up.","keywords":"","href":"/docs/insights/company-journey#the-tabs"},{"id":"/docs/insights/company-journey#related","kind":"guide","title":"Related","breadcrumb":"Data Insights › Company Journey","body":"Companies. The account list, where you find and rank the companies worth opening. ABM Stages. How accounts move from cold to closed, and the rules behind each stage. Sources. Where your engaged accounts and contacts came from, across every channel. Contacts. The individual people behind your accounts and their touchpoints.","keywords":"","href":"/docs/insights/company-journey#related"},{"id":"/docs/insights/ad-sets","kind":"guide","title":"Ad Sets","breadcrumb":"Data Insights › Ad Sets","body":"Performance of your LinkedIn Ad Sets ZenABM shows you the performance of all of your Ad Sets. You can sort, filter and export the data. We've expanded the native ad types to include Thought Leader Ads. Ad Set performance breakdown.","keywords":"","href":"/docs/insights/ad-sets"},{"id":"/docs/insights/ad-sets#dive-deeper","kind":"guide","title":"Dive deeper","breadcrumb":"Data Insights › Ad Sets","body":"Click any Ad Set to open its own page: Timeline: spend, impressions, clicks, engagement and efficiency for the Ad Set. Companies: interactions from Companies, scoped to that Ad Set. Job titles: interactions from Job Titles, scoped to that Ad Set. Exclusions: companies or titles you've excluded from this Ad Set.","keywords":"","href":"/docs/insights/ad-sets#dive-deeper"},{"id":"/docs/insights/campaigns","kind":"guide","title":"Campaigns","breadcrumb":"Data Insights › Campaigns","body":"Performance of your LinkedIn Campaigns Campaigns Insights show you the performance of your LinkedIn Campaigns.","keywords":"","href":"/docs/insights/campaigns"},{"id":"/docs/insights/campaigns#what-youll-see","kind":"guide","title":"What you'll see","breadcrumb":"Data Insights › Campaigns","body":"Click any Campaign to open its own page: Overview: spend, impressions, clicks, engagement and efficiency for the Campaign. Companies: interactions from Companies, scoped to that Campaign. Job titles: interactions from Job Titles, scoped to that Campaign. Ad sets: a breakdown of the individual ad sets in the Campaign. Exclusions: anything excluded at the Campaign level.","keywords":"","href":"/docs/insights/campaigns#what-youll-see"},{"id":"/docs/insights/job-titles","kind":"guide","title":"Job Titles","breadcrumb":"Data Insights › Job Titles","body":"See which roles and personas your ads are actually reaching. Job Titles insights answer a question every ABM marketer needs to nail: are our ads reaching the right people? They show which job titles your campaigns reach, and which ones engage. Job title interactions page.","keywords":"","href":"/docs/insights/job-titles"},{"id":"/docs/insights/job-titles#why-it-matters","kind":"guide","title":"Why it matters","breadcrumb":"Data Insights › Job Titles","body":"Job Titles insights let you confirm your spend lands on the roles you want, and not on people who will never be involved in the purchase.","keywords":"","href":"/docs/insights/job-titles#why-it-matters"},{"id":"/docs/insights/job-titles#what-youll-see","kind":"guide","title":"What you'll see","breadcrumb":"Data Insights › Job Titles","body":"Reach and engagement by title across your campaigns and ad sets. Per-title breakdowns into the campaigns and ad sets behind that reach. Targeting controls. If you spot Job Titles you don't want to reach, you can exclude them from all of your Ads. LinkedIn caps exclusions at 200 per ad set. Be mindful with exclusions. Someone might be both a CFO you want to target and the President of their kid's football club.","keywords":"","href":"/docs/insights/job-titles#what-youll-see"},{"id":"/docs/insights/deals","kind":"guide","title":"Deals","breadcrumb":"Data Insights › Deals","body":"CRM deals connected to the accounts your ads influenced. Deals insights connect your CRM pipeline to your advertising. They show the deals tied to the accounts your ads reached, so you can see the revenue behind your LinkedIn spend. CRM deals connected to advertised accounts, with ad influence.. You can also see the deals for a single account on its profile in Companies.","keywords":"","href":"/docs/insights/deals"},{"id":"/docs/insights/deals#what-youll-see","kind":"guide","title":"What you'll see","breadcrumb":"Data Insights › Deals","body":"Deals linked to advertised accounts, pulled from your connected CRM. Ad interactions: how many impressions, clicks and engagements companies had before the deal was opened and before it was closed. Expand the Deals row to break this down to Ad Set interactions. Deal details: stage, value and the company it belongs to.","keywords":"","href":"/docs/insights/deals#what-youll-see"},{"id":"/docs/insights/deals#best-practices","kind":"guide","title":"Best practices","breadcrumb":"Data Insights › Deals","body":"Prove impact. Include the influence level on the deals in your internal reporting. Prioritize. Find out which inventory types contribute the most to your deals being opened (you can use Zena for this). Requires a connected CRM. Deals come from HubSpot or Salesforce. Which deals appear depends on the pipelines and stages you chose to track.","keywords":"","href":"/docs/insights/deals#best-practices"},{"id":"/docs/insights/sources","kind":"guide","title":"Sources","breadcrumb":"Data Insights › Sources","body":"Multi-touch attribution across every channel This data requires a HubSpot connection. LinkedIn is rarely the only channel touching your accounts. Your HubSpot already holds the rest of the picture, and Sources compiles it for you. We take your contacts' last-touch property history and build a timeline out of it, broken down by source. Sources breakdown across channels, including AI referrals..","keywords":"","href":"/docs/insights/sources"},{"id":"/docs/insights/sources#what-sources-covers","kind":"guide","title":"What Sources covers","breadcrumb":"Data Insights › Sources","body":"It aggregates where your engaged contacts and companies came from, across channels such as: Paid Search and Paid Social Organic Search and Social Media Direct Traffic and Referrals AI Referrals: traffic from AI assistants and answer engines Email Marketing, Offline, and other campaigns","keywords":"","href":"/docs/insights/sources#what-sources-covers"},{"id":"/docs/insights/sources#what-youll-see","kind":"guide","title":"What you'll see","breadcrumb":"Data Insights › Sources","body":"Channel breakdown. Clicks, contacts, and companies attributed to each source. Contact-level timelines. Drill from a source down to the individual contacts and their touchpoints. Sales teams often use this together with Contacts to identify the specific individuals they should try to reach.","keywords":"","href":"/docs/insights/sources#what-youll-see"},{"id":"/docs/insights/contacts","kind":"guide","title":"Contacts","breadcrumb":"Data Insights › Contacts","body":"Identified Contacts from your CRM and their touchpoints history This data requires a HubSpot connection. Contacts shows the individual people behind your accounts, pulled from your CRM, with where they came from and how they've touched your brand. Contacts from your CRM, with the company each person belongs to and where they came from..","keywords":"","href":"/docs/insights/contacts"},{"id":"/docs/insights/contacts#what-youll-see","kind":"guide","title":"What you'll see","breadcrumb":"Data Insights › Contacts","body":"Contact records with the company each person belongs to. Source touchpoints: the channels and events that brought them in (see Sources). A detail view for any contact, with their full history.","keywords":"","href":"/docs/insights/contacts#what-youll-see"},{"id":"/docs/insights/contacts#best-practices","kind":"guide","title":"Best practices","breadcrumb":"Data Insights › Contacts","body":"Understand who's engaging inside a target account, rather than only knowing that the account is engaging. Give Sales the people. Pair an engaged account with the specific contacts behind the activity. Trace a journey. Follow one person's touchpoints across channels over time. The detail view for a single contact, showing their full touchpoint history..","keywords":"","href":"/docs/insights/contacts#best-practices"},{"id":"/docs/optimizations/exclusions","kind":"guide","title":"Exclusions","breadcrumb":"Optimizations › Exclusions","body":"Stop wasting spend on customers, competitors and bad-fit accounts. Exclusions are the fastest way to stop wasting ad spend. They let you keep specific companies, job titles, or industries out of your LinkedIn ads. Managing exclusions and pushing them to LinkedIn..","keywords":"","href":"/docs/optimizations/exclusions"},{"id":"/docs/optimizations/exclusions#how-it-works","kind":"guide","title":"How it works","breadcrumb":"Optimizations › Exclusions","body":"You can select the scope an exclusion applies to: specific ABM Campaigns, or LinkedIn Ad Sets/LinkedIn Campaigns. ZenABM automatically applies the exclusion to the target scope and keeps it updated daily (at midnight GMT). Within LinkedIn's system, exclusions are applied to all ACTIVE Campaigns (Ad Sets) that match your selected scope. ZenABM lets you scope an exclusion however you want, but LinkedIn itself only accepts exclusions on individual ad sets. That is a native LinkedIn limitation. So if you scope an exclusion to an ABM Campaign or a LinkedIn Campaign, we work out which ad sets sit underneath it and apply the exclusion to each one. Applying an exclusion happens in the background and might take a few minutes. You can set up to 200 exclusions per Ad Set (LinkedIn's limitation).","keywords":"","href":"/docs/optimizations/exclusions#how-it-works"},{"id":"/docs/optimizations/exclusions#what-you-can-exclude","kind":"guide","title":"What you can exclude","breadcrumb":"Optimizations › Exclusions","body":"Companies: by name, or from your list of engaged LinkedIn companies. Job titles: including bulk matching to catch variations of a role. Industries: whole categories that aren't a fit.","keywords":"","href":"/docs/optimizations/exclusions#what-you-can-exclude"},{"id":"/docs/optimizations/exclusions#choosing-the-scope","kind":"guide","title":"Choosing the scope","breadcrumb":"Optimizations › Exclusions","body":"You decide how widely an exclusion applies: Team-wide. Applies everywhere. Best for global \"never advertise to\" lists like customers or competitors. Campaign or ad set. Applies to a specific campaign or ad set. Best for play-specific tuning. ABM campaign. Scoped to an ABM Campaign so a program only reaches its intended accounts.","keywords":"","href":"/docs/optimizations/exclusions#choosing-the-scope"},{"id":"/docs/optimizations/exclusions#how-to-set-it-up","kind":"guide","title":"How to set it up","breadcrumb":"Optimizations › Exclusions","body":"Add exclusions. Search for the companies, job titles, or industries to exclude, one at a time or in bulk. Set the scope. Choose whether it applies team-wide or to specific campaigns, ad sets, or ABM campaigns. Sync to LinkedIn. ZenABM pushes the exclusions to your ad account. Activity logs show what changed, and you can retry anything that didn't apply.","keywords":"","href":"/docs/optimizations/exclusions#how-to-set-it-up"},{"id":"/docs/optimizations/exclusions#best-practices","kind":"guide","title":"Best practices","breadcrumb":"Optimizations › Exclusions","body":"The common use cases are competitors, current customers, partners, and your own company.","keywords":"","href":"/docs/optimizations/exclusions#best-practices"},{"id":"/docs/data/hubspot","kind":"guide","title":"HubSpot","breadcrumb":"Data & integrations › HubSpot","body":"Sync engagements, deals and lifecycle data both ways — and tie ad engagement to revenue. HubSpot is the deepest integration in ZenABM. You are in full control of the data and the parts we interact with. Once fully enabled, ZenABM pulls your deals, pipelines and lifecycle data in, which powers influenced revenue and automatic ABM stage tracking, and pushes LinkedIn engagement back out onto your HubSpot Companies. HubSpot settings in ZenABM: pipelines, deal tracking and field sync..","keywords":"","href":"/docs/data/hubspot"},{"id":"/docs/data/hubspot#what-connecting-unlocks","kind":"guide","title":"What connecting unlocks","breadcrumb":"Data & integrations › HubSpot","body":"Influenced revenue. Tie deals and revenue back to the accounts your ads reached. Smarter ABM stages. Build stage rules from lifecycle stages, deal stages, and custom properties. Deals & contacts. Populate the Deals and Contacts insights. Engagement in HubSpot. Push LinkedIn engagement onto your HubSpot companies, so sales sees it where they already work. Not connected yet?. Start with Connecting HubSpot. This page covers the settings you'll tune afterwards.","keywords":"","href":"/docs/data/hubspot#what-connecting-unlocks"},{"id":"/docs/data/hubspot#pulling-data-from-hubspot","kind":"guide","title":"Pulling data from HubSpot","breadcrumb":"Data & integrations › HubSpot","body":"Choose what ZenABM reads in and how it reads it: Pipelines and deal types: pick the ones your ABM program influences. Lifecycle stages and deal stages: map the stages you care about. These become the building blocks of your ABM stage rules. Deals and lifecycle data refresh on a daily sync. This is also where you define the influence threshold and time window ZenABM uses when attributing deals to ad engagement. It decides how much engagement counts, and how long after engaging an account can still be credited.","keywords":"","href":"/docs/data/hubspot#pulling-data-from-hubspot"},{"id":"/docs/data/hubspot#sending-data-to-hubspot","kind":"guide","title":"Sending data to HubSpot","breadcrumb":"Data & integrations › HubSpot","body":"ZenABM can also push LinkedIn Ads engagement into HubSpot as properties on the Company object. Turn on Sync analytics to HubSpot and pick exactly which fields you want. Everything lands under a single ZenABM LinkedIn Metrics property group, and syncs once a week (Monday, midnight GMT). The ABM stage and windowed LinkedIn metrics, synced onto the HubSpot company record.. The fields are grouped: Core fields cover identity and status: ABM stage, active ABM campaigns, LinkedIn intents, last sync date. These sync on every run unless you turn them off. Lifetime metrics cover lifetime impressions, clicks, engagements, spend, engagement score, and lifetime ABM stage. Active ABM campaign metrics cover aggregate impressions, clicks and engagements for currently-running ABM campaigns. Full granularity. You can select which fields should be created and populated in your HubSpot Company records.","keywords":"","href":"/docs/data/hubspot#sending-data-to-hubspot"},{"id":"/docs/data/hubspot#company-matching","kind":"guide","title":"Company matching","breadcrumb":"Data & integrations › HubSpot","body":"For attribution to be accurate, ZenABM needs to know which of your companies maps to which HubSpot record. We use a five-step algorithm to match LinkedIn Company records to your HubSpot records: exact domain matching exact name matching HubSpot's LinkedIn Company URL field fuzzy domain matching fuzzy name matching You can always adjust matching. We have a dedicated Matching page to review the matches, duplicates, and records we failed to find a good match for. Get records created by ZenABM. You can instruct ZenABM to create new Company records in your HubSpot. This requires an explicit opt-in. If we can't find a good match, we will create one.","keywords":"","href":"/docs/data/hubspot#company-matching"},{"id":"/docs/data/hubspot#best-practices","kind":"guide","title":"Best practices","breadcrumb":"Data & integrations › HubSpot","body":"Fix mismatches early. A few minutes reconciling company matches upfront saves you from misleading reports later. Map lifecycle and deal stages deliberately. These become the building blocks of your ABM stage rules, so choose stages that reflect real progress. Set a sensible influence window. Too short and you'll miss real influence; too long and you'll over-credit. Align it with your typical sales cycle. Don't sync every field back. Push the fields sales will act on. You can always add more.","keywords":"","href":"/docs/data/hubspot#best-practices"},{"id":"/docs/data/salesforce","kind":"guide","title":"Salesforce","breadcrumb":"Data & integrations › Salesforce","body":"Sync your opportunities and attribute them back to the accounts you advertise to. Connecting Salesforce brings your opportunities into ZenABM, so the accounts your ads reach can be tied to real pipeline and closed revenue. Once authorized, ZenABM pulls in your opportunities and keeps them up to date, so the deals attached to your advertised accounts stay current. Salesforce settings in ZenABM once connected..","keywords":"","href":"/docs/data/salesforce"},{"id":"/docs/data/salesforce#what-connecting-unlocks","kind":"guide","title":"What connecting unlocks","breadcrumb":"Data & integrations › Salesforce","body":"Opportunities in ZenABM. See the deals attached to advertised accounts in Deals. Revenue attribution. Connect ad engagement to pipeline and closed revenue. Account context. Salesforce detail alongside ad engagement on every company profile. Smarter ABM stages. Use deal signals in your ABM stage rules. Not connected yet?. Start with Connecting Salesforce. This page covers what happens once you're connected.","keywords":"","href":"/docs/data/salesforce#what-connecting-unlocks"},{"id":"/docs/data/salesforce#company-matching","kind":"guide","title":"Company matching","breadcrumb":"Data & integrations › Salesforce","body":"For attribution to be accurate, ZenABM needs to know which of your companies maps to which Salesforce account. The matching process is automatic. You can always adjust it on the dedicated Matching page, which shows the matches, the duplicates, and the records we couldn't find a good match for. Also using HubSpot?. HubSpot has a deeper integration, including pushing engagement data back onto your companies. See HubSpot.","keywords":"","href":"/docs/data/salesforce#company-matching"},{"id":"/docs/data/webhooks","kind":"guide","title":"Webhooks","breadcrumb":"Data & integrations › Webhooks","body":"Send ZenABM signals to any tool the moment accounts change. Webhooks send ZenABM signals to any other tool the moment an account changes, without manual exports or polling. Every Monday, when LinkedIn data syncs, webhooks fire automatically and push your data wherever you want it. You get a filter builder to scope the data, and a payload builder to decide which fields go out.","keywords":"","href":"/docs/data/webhooks"},{"id":"/docs/data/webhooks#best-practices","kind":"guide","title":"Best practices","breadcrumb":"Data & integrations › Webhooks","body":"One of the most common plays is sending your Interested Companies into any orchestration tool (this works great with Clay). ZenABM's weekly data can trigger outreach sequences based on the Intent the engaged companies are showing. Configuring a webhook. Webhooks are triggered every Monday, after each fresh LinkedIn data sync. You can also trigger them manually on demand, or use the API.","keywords":"","href":"/docs/data/webhooks#best-practices"},{"id":"/docs/data/webhooks#how-to-set-it-up","kind":"guide","title":"How to set it up","breadcrumb":"Data & integrations › Webhooks","body":"Add a webhook. Point it at the URL in the system you want to notify. Choose delivery type. We can send data sequentially (best for tools like Clay, one row per request), or in batches (one big request with an array of results). Filter the data. Build conditions to narrow the data you want us to send (for example, Companies in the Interested ABM Stage). Define payload. Choose which fields you want us to send.","keywords":"","href":"/docs/data/webhooks#how-to-set-it-up"},{"id":"/docs/api#introduction","kind":"api-page","title":"Introduction","breadcrumb":"API reference","body":"The ZenABM REST API lets you pull your LinkedIn Ads, company, campaign, ABM stage, deal, and revenue data programmatically. Responses are JSON. Requests are paginated and scoped to your account.","keywords":"rest api base url json pagination getting started","href":"/docs/api#introduction"},{"id":"/docs/api#authentication","kind":"api-page","title":"Authentication","breadcrumb":"API reference","body":"Authenticate every request with an API token sent as a Bearer token in the Authorization header. Create and revoke tokens from your ZenABM account settings.","keywords":"auth token bearer authorization header api key credentials","href":"/docs/api#authentication"},{"id":"/docs/api#changelog","kind":"api-page","title":"Changelog","breadcrumb":"API reference","body":"New: GET /job-titles/{id}/campaigns and GET /job-titles/{id}/campaign-groups now accept startDate and endDate, so they support custom ranges like every other job title endpoint. Send both — a half-supplied range falls back to the period preset. Both endpoints also return a new meta.dateRange object. Job title interactions are stored as weekly totals anchored on the Sunday that ends each Monday–Sunday week, so a range selects whole weeks rather than exact days: a week counts when its Sunday falls inside the range, totals are never split across a partial week, and a range containing no Sunday returns nothing. meta.dateRange makes that visible — it reports requestedStartDate/requestedEndDate, the coveredStartDate/coveredEndDate actually summed, and weeksCovered. Ask for Apr 1–15 and coverage runs Mar 30–Apr 12 across 2 weeks. When weeksCovered is 0, the range simply contained no week end, which is not the same as no activity. Period presets already behaved this way, so preset results are unchanged. Changed: The reference now lists every query parameter the API actually accepts. Newly documented: min/max range filters on the company, job title, ABM campaign and deal list endpoints (e.g. minClicks, maxCostInUsd, minRoas, minAmount); intentId and campaignType on the company lists; abmCampaigns plus startDate/endDate on GET /deals; page, pageSize and search on the per-ad-set and per-campaign job title endpoints; and the period preset on GET /linkedin-metrics, GET /ad-spend and GET /sources/{sourceType}. One correction: startDate and endDate on GET /linkedin-metrics are optional, not required — omit both and the range falls back to period. New: GET /campaigns/{id}/settings returns an ad set's delivery settings (budgets, bid, objective, cost type, optimization target, pacing, Audience Expansion, LinkedIn Audience Network), its estimated addressable audience size, and its targeting facets. Read live from LinkedIn Campaign Manager on every call, so an edit made minutes ago is already reflected. Anything LinkedIn did not return is listed in unknownSettings — treat those as unknown, never as \"off\". Changed: GET /campaigns/{id} returns identity and relations only. Delivery settings moved to GET /campaigns/{id}/settings, so there is one answer per question instead of a synced copy and a live one that can disagree. New: GET /linkedin-metrics accepts includeReach=true, adding reach (unique members) and frequency (impressions / reach) to the totals. Off by default because it costs an extra LinkedIn request. Reach is deduplicated per response and can never be summed across ranges or campaigns; when it cannot be read, both fields are null and reachUnavailableReason says why. New: Ad Library endpoints: GET /ad-library/by-advertiser profiles a competitor's ads by advertiser name; GET /ad-library/by-keyword finds who advertises on a topic. Both return normalized LinkedIn Ad Library metadata — format, EU/EEA impression ranges with per-country split, impression dates, and targeting facets. Impression/targeting data is EU/EEA-only (DSA); US-only advertisers return null statistics. New: Salesforce support: GET /deals now returns HubSpot deals and Salesforce opportunities in one list, each tagged with a source field (hubspot or salesforce). Scope the list with the new source query parameter (all, hubspot, or salesforce). Changed: Deal fields are now CRM-agnostic. hubspotId and hubspotPortalId became externalId and externalUrl (a deep link to the record in HubSpot or Salesforce); hubspotCreatedAt and hubspotClosedAt became createdAt and closedAt. closedAt is null for open opportunities. New: Filter companies and deals by Salesforce match with the new salesforceMatchStatus parameter (all, matched, unmatched). The existing crmMatchStatus now filters HubSpot matches specifically. New: GET /creatives lists every ad creative in the account. Cursor-paginated: pass the returned nextCursor as the cursor parameter for the next page. Optionally scope to a single ad set or campaign. New: startDate and endDate query parameters added across list and detail endpoints, alongside the existing period presets. Custom dates take priority over period; when neither is supplied, endpoints default to the last 30 days. New: Endpoints that return ad sets now include a human-readable format label, e.g. Single Image, Video, or Thought Leader Ad. New: GET /job-titles/{id}/overview returns a single job title over a date range. Changed: Consistent naming in every response: Campaign for the parent and Ad Set for the child. Fields that previously used campaign group wording were renamed, e.g. linkedinCampaignGroupId to campaignId. Changed: Every entity now returns both id (ZenABM ID) and linkedInId (LinkedIn-native ID), so responses chain cleanly between endpoints. Changed: All numeric metrics are rounded to 2 decimals; CTR and CPC are now plain numbers on every endpoint. Changed: Response payloads were flattened. Redundant nesting and single-key wrappers were removed. Changed: GET /campaigns and GET /campaign-groups no longer cap at 200 results; pagination now spans the full account. Changed: GET /ad-spend now returns a full-range summary plus a per-ad-set breakdown with monthly detail. Removed: GET /job-titles/{id} was replaced by GET /job-titles/{id}/overview.","keywords":"changelog release notes breaking changes migration","href":"/docs/api#changelog"},{"id":"/docs/api#companies","kind":"api-section","title":"Companies","breadcrumb":"API reference","body":"Companies represent organizations that have engaged with your LinkedIn ads. Each company includes engagement metrics, ABM stage data, and CRM match status.","keywords":"companies","href":"/docs/api#companies"},{"id":"/docs/api#get-companies","kind":"api-endpoint","title":"List companies with insights","breadcrumb":"API reference › Companies","body":"Returns a paginated list of companies with engagement metrics. Filter by campaigns, ABM stages, engagement scores, or CRM match status. Page number (default: 1) Items per page (default: 20, max: 100) Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Field to sort by (e.g. impressions, clicks, engagements) Sort direction Search filter Comma-separated Ad Sets IDs Comma-separated Campaigns IDs Comma-separated ABM campaign IDs Comma-separated ABM stage IDs Only return companies that show this intent signal. Takes a single intent ID — see `GET /intents`. Set to `all_abm_campaigns` to scope the list to companies targeted by any ABM campaign. Ignored when `campaigns`, `campaignGroups`, or `abmCampaigns` is supplied, because those filters are more specific. Comma-separated scores (1–5) Only return rows where impressions is greater than or equal to this value. Only return rows where impressions is less than or equal to this value. Only return rows where clicks is greater than or equal to this value. Only return rows where clicks is less than or equal to this value. Only return rows where engagements is greater than or equal to this value. Only return rows where engagements is less than or equal to this value. Only return rows where cost in USD is greater than or equal to this value. Only return rows where cost in USD is less than or equal to this value. Only return rows where cost per click (CPC) is greater than or equal to this value. Only return rows where cost per click (CPC) is less than or equal to this value. Only return rows where cost per 1,000 impressions (CPM) is greater than or equal to this value. Only return rows where cost per 1,000 impressions (CPM) is less than or equal to this value. Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value. Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value. Only return rows where the number of intent signals is greater than or equal to this value. Only return rows where the number of intent signals is less than or equal to this value. HubSpot match filter Salesforce match filter When `true`, each company in the response is augmented with a `weeklyData[]` array — one entry per Sunday-anchored bucket in the date range (impressions, clicks, engagements, costInUsd). `pageSize` is automatically capped at 20 on this path to keep responses small.","keywords":"GET /companies page pageSize period startDate endDate sortBy sortOrder search campaigns campaignGroups abmCampaigns abmStages intentId campaignType engagementScores minImpressions maxImpressions minClicks maxClicks minEngagements maxEngagements minCostInUsd maxCostInUsd minCostPerClick maxCostPerClick minCpm maxCpm minClickThroughRate maxClickThroughRate minIntents maxIntents crmMatchStatus salesforceMatchStatus includeWeekly","href":"/docs/api#get-companies"},{"id":"/docs/api#get-companies-id-","kind":"api-endpoint","title":"Get company by ID","breadcrumb":"API reference › Companies","body":"Retrieve a single company by its ID, including full profile and current metrics. Company ID","keywords":"GET /companies/{id} id","href":"/docs/api#get-companies-id-"},{"id":"/docs/api#get-companies-id-overview","kind":"api-endpoint","title":"Get company metrics overview","breadcrumb":"API reference › Companies","body":"Returns aggregated and weekly metrics for a company over a given time period. Company ID Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","keywords":"GET /companies/{id}/overview id period startDate endDate","href":"/docs/api#get-companies-id-overview"},{"id":"/docs/api#get-companies-id-campaigns","kind":"api-endpoint","title":"List Ad Sets for a company","breadcrumb":"API reference › Companies","body":"Returns campaigns that a specific company has been exposed to, with per-company metrics. Company ID Page number (default: 1) Items per page (default: 20, max: 100) Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Field to sort by (e.g. impressions, clicks, engagements) Sort direction Search filter","keywords":"GET /companies/{id}/campaigns id page pageSize period startDate endDate sortBy sortOrder search","href":"/docs/api#get-companies-id-campaigns"},{"id":"/docs/api#get-companies-id-campaign-groups","kind":"api-endpoint","title":"List Campaigns for a company","breadcrumb":"API reference › Companies","body":"Optional filters: sortBy, sortOrder, search Company ID Page number (default: 1) Items per page (default: 20, max: 100) Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Field to sort by (e.g. impressions, clicks, engagements) Sort direction Search filter","keywords":"GET /companies/{id}/campaign-groups id page pageSize period startDate endDate sortBy sortOrder search","href":"/docs/api#get-companies-id-campaign-groups"},{"id":"/docs/api#get-companies-id-abm-campaigns","kind":"api-endpoint","title":"List ABM campaigns for a company","breadcrumb":"API reference › Companies","body":"Optional filters: sortBy, sortOrder Company ID Page number (default: 1) Items per page (default: 20, max: 100) Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Field to sort by (e.g. impressions, clicks, engagements) Sort direction","keywords":"GET /companies/{id}/abm-campaigns id page pageSize period startDate endDate sortBy sortOrder","href":"/docs/api#get-companies-id-abm-campaigns"},{"id":"/docs/api#get-companies-id-timeline","kind":"api-endpoint","title":"Get company timeline","breadcrumb":"API reference › Companies","body":"Returns a chronological list of engagement events for a company within a date range. Company ID Start date (ISO format, default: 30 days ago) End date (ISO format, default: today)","keywords":"GET /companies/{id}/timeline id startDate endDate","href":"/docs/api#get-companies-id-timeline"},{"id":"/docs/api#get-companies-id-activity-log","kind":"api-endpoint","title":"Get company activity log","breadcrumb":"API reference › Companies","body":"Merged chronological feed of stage changes, deals, intents, and exclusions. Paginated via `page`/`pageSize`. Note: `totalCount`/`totalPages` are not returned because the feed is merged from multiple sources. Pass `startDate`/`endDate` (YYYY-MM-DD) to scope the feed to a window — when a date range is supplied, weekly LinkedIn ad-activity entries (`type: \"linkedin_activity_week\"`, carrying a `metrics` object with impressions/clicks/engagements/costInUsd) are merged into the feed. Company ID Page number (default: 1) Items per page (default: 20, max: 100) Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","keywords":"GET /companies/{id}/activity-log id page pageSize startDate endDate","href":"/docs/api#get-companies-id-activity-log"},{"id":"/docs/api#get-companies-id-deals","kind":"api-endpoint","title":"Get deals for a company","breadcrumb":"API reference › Companies","body":"Optional filters: sortBy, sortOrder Company ID Page number (default: 1) Items per page (default: 20, max: 100) Field to sort by (default: createdAt) Sort direction","keywords":"GET /companies/{id}/deals id page pageSize sortBy sortOrder","href":"/docs/api#get-companies-id-deals"},{"id":"/docs/api#get-companies-id-abm-stages","kind":"api-endpoint","title":"Get ABM stages for a company","breadcrumb":"API reference › Companies","body":"Returns the ABM stage history for a company, showing progression through your funnel. Company ID","keywords":"GET /companies/{id}/abm-stages id","href":"/docs/api#get-companies-id-abm-stages"},{"id":"/docs/api#ad-sets","kind":"api-section","title":"Ad Sets","breadcrumb":"API reference","body":"LinkedIn ad sets with performance metrics, company-level breakdowns, and job title insights.","keywords":"ad-sets","href":"/docs/api#ad-sets"},{"id":"/docs/api#get-campaigns","kind":"api-endpoint","title":"List Ad Sets with insights","breadcrumb":"API reference › Ad Sets","body":"Returns a paginated list of LinkedIn Ad Sets with aggregated performance metrics for the requested date range. Filter by status (default: ACTIVE,PAUSED) or search by name. Each item includes both ZenABM's internal `id` (when the ad set has been imported) and the LinkedIn-native `linkedInId`. To list ad sets within a specific ABM campaign use `/abm-campaigns/{id}` instead. Page number (default: 1) Items per page (default: 20, max: 100) Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Field to sort by (e.g. impressions, clicks, engagements) Sort direction Search filter Comma-separated statuses: ACTIVE,PAUSED,ARCHIVED,DRAFT,COMPLETED. Default: ACTIVE,PAUSED.","keywords":"GET /campaigns page pageSize period startDate endDate sortBy sortOrder search status","href":"/docs/api#get-campaigns"},{"id":"/docs/api#get-campaigns-id-","kind":"api-endpoint","title":"Get Ad Set by ID","breadcrumb":"API reference › Ad Sets","body":"Identity and relations only. Delivery settings (budgets, bid, objective, cost type, optimization target, pacing, Audience Expansion, LinkedIn Audience Network), audience size and targeting come from `/campaigns/{id}/settings`, which reads them live from LinkedIn Campaign Manager. Ad Set ID","keywords":"GET /campaigns/{id} id","href":"/docs/api#get-campaigns-id-"},{"id":"/docs/api#get-campaigns-id-settings","kind":"api-endpoint","title":"Get Ad Set delivery and targeting settings","breadcrumb":"API reference › Ad Sets","body":"Read LIVE from LinkedIn Campaign Manager on every call, not from ZenABM's sync, so it reflects an edit made minutes ago. Fields listed in `unknownSettings` were not returned by LinkedIn — treat them as unknown, never as \"off\". `audienceSize` is the estimated ADDRESSABLE audience, not reach: `impressions / audienceSize` is only a lower bound on frequency, and exclusions are left out of it (see `audienceSizeExcludesApplied`). Each targeting facet reports `count` (values targeted), `values` (readable names only) and `unnamed` (values with no name available, most often specific geographic locations). Returns 502 if LinkedIn is unreachable rather than falling back to synced values. Ad Set ID","keywords":"GET /campaigns/{id}/settings id","href":"/docs/api#get-campaigns-id-settings"},{"id":"/docs/api#get-campaigns-id-overview","kind":"api-endpoint","title":"Get Ad Set metrics overview","breadcrumb":"API reference › Ad Sets","body":"Performance totals for a single Ad Set over the requested date range (no weekly breakdown). Ad Set ID Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","keywords":"GET /campaigns/{id}/overview id period startDate endDate","href":"/docs/api#get-campaigns-id-overview"},{"id":"/docs/api#get-campaigns-id-companies","kind":"api-endpoint","title":"List companies for a Ad Set","breadcrumb":"API reference › Ad Sets","body":"Optional filters: sortBy, sortOrder, search Ad Set ID Page number (default: 1) Items per page (default: 20, max: 100) Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Field to sort by (e.g. impressions, clicks, engagements) Sort direction Search filter","keywords":"GET /campaigns/{id}/companies id page pageSize period startDate endDate sortBy sortOrder search","href":"/docs/api#get-campaigns-id-companies"},{"id":"/docs/api#get-campaigns-id-job-titles","kind":"api-endpoint","title":"Get job title insights for a Ad Set","breadcrumb":"API reference › Ad Sets","body":"Returns job title engagement breakdown for a specific campaign. Ad Set ID Page number (default: 1) Items per page (default: 20, max: 100) Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Field to sort by (e.g. impressions, clicks, engagements) Sort direction Search filter Only return rows where impressions is greater than or equal to this value. Only return rows where impressions is less than or equal to this value. Only return rows where clicks is greater than or equal to this value. Only return rows where clicks is less than or equal to this value. Only return rows where engagements is greater than or equal to this value. Only return rows where engagements is less than or equal to this value. Only return rows where cost in USD is greater than or equal to this value. Only return rows where cost in USD is less than or equal to this value. Only return rows where cost per click (CPC) is greater than or equal to this value. Only return rows where cost per click (CPC) is less than or equal to this value. Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value. Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.","keywords":"GET /campaigns/{id}/job-titles id page pageSize period startDate endDate sortBy sortOrder search minImpressions maxImpressions minClicks maxClicks minEngagements maxEngagements minCostInUsd maxCostInUsd minCostPerClick maxCostPerClick minClickThroughRate maxClickThroughRate","href":"/docs/api#get-campaigns-id-job-titles"},{"id":"/docs/api#get-ad-spend","kind":"api-endpoint","title":"Ad Set monthly spend","breadcrumb":"API reference › Ad Sets","body":"Returns ad spend for LinkedIn Ad Sets within the requested date range. Response includes a `summary` of totals across the whole range and a `byAdSet` array — one entry per ad set, each carrying its own totals plus monthly buckets (`year`, `month`, `period` like `\"2026-05\"`). Pagination scopes `byAdSet` (summary always reflects the full range). Each ad set includes both ZenABM's internal `id` (when imported) and the LinkedIn-native `linkedInId`. Filter to a single ad set with the `linkedInId` query param. Page number (default: 1) Items per page (default: 20, max: 100) Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Filter to a single Ad Set by its LinkedIn numeric ID.","keywords":"GET /ad-spend page pageSize period startDate endDate linkedInId","href":"/docs/api#get-ad-spend"},{"id":"/docs/api#get-linkedin-metrics","kind":"api-endpoint","title":"Aggregated LinkedIn metrics for a date range","breadcrumb":"API reference › Ad Sets","body":"Returns aggregated impressions, clicks, engagements, conversions, and cost for the specified date range, read live from LinkedIn. Optionally filter by a single LinkedIn campaign ID. Set `includeReach=true` to also get unique member reach and frequency. Time period preset. Ignored when startDate/endDate are provided. Start of date range (inclusive). Format: YYYY-MM-DD. Supply with `endDate` to override `period`. When neither is supplied, the range falls back to `period` (last 30 days by default). End of date range (inclusive). Format: YYYY-MM-DD. Supply with `startDate` to override `period`. LinkedIn's own campaign ID (numeric). When provided, metrics are returned for this campaign only. Set to `true` to also return `reach` (unique members who saw an ad) and `frequency` (impressions / reach). Off by default because it costs one extra LinkedIn request; without it both fields come back null. Reach is deduplicated within one response and can NEVER be added up: reach for two ranges, or for several campaigns, does not sum to the reach of the whole, because a member seen twice is still one person. Whenever reach is null, `reachUnavailableReason` says why — the other totals are always returned.","keywords":"GET /linkedin-metrics period startDate endDate linkedInCampaignId includeReach","href":"/docs/api#get-linkedin-metrics"},{"id":"/docs/api#creatives","kind":"api-section","title":"Creatives","breadcrumb":"API reference","body":"Individual LinkedIn ad creatives with format, serving status, and parent ad set and campaign context.","keywords":"creatives","href":"/docs/api#creatives"},{"id":"/docs/api#get-creatives","kind":"api-endpoint","title":"List ad creatives","breadcrumb":"API reference › Creatives","body":"Returns a cursor-paginated catalog of the individual ad creatives (the actual ads) in the LinkedIn ad account. Each item includes the LinkedIn-native `linkedInId`, the full `creativeUrn`, name, ad format, status, serving state, and the parent ad set + campaign (with both ZenABM `id` — when imported — and `linkedInId`). Each response carries a `nextCursor`: pass it back as the `cursor` query parameter to fetch the next page (`hasMore` is false on the last page). Optionally scope to one ad set (`adSetId`) or campaign (`campaignId`). Pagination cursor from a previous response's `nextCursor`. Omit to fetch the first page. Creatives per page (1–100, default: 20). Filter to a single ad set. Accepts the ZenABM ad set ID or the LinkedIn numeric ID. Filter to a single campaign. Accepts the ZenABM campaign ID or the LinkedIn numeric ID.","keywords":"GET /creatives cursor pageSize adSetId campaignId","href":"/docs/api#get-creatives"},{"id":"/docs/api#campaigns","kind":"api-section","title":"Campaigns","breadcrumb":"API reference","body":"Campaigns are logical groupings of LinkedIn ad sets with aggregated performance metrics.","keywords":"campaigns","href":"/docs/api#campaigns"},{"id":"/docs/api#get-campaign-groups","kind":"api-endpoint","title":"List Campaigns with insights","breadcrumb":"API reference › Campaigns","body":"Returns a paginated list of LinkedIn Campaigns with aggregated performance metrics for the requested date range. Filter by status (default: ACTIVE,PAUSED) or search by name. Each item includes both ZenABM's internal `id` (when the campaign has been imported) and the LinkedIn-native `linkedInId`. To list campaigns within a specific ABM campaign use `/abm-campaigns/{id}` instead. Page number (default: 1) Items per page (default: 20, max: 100) Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Field to sort by (e.g. impressions, clicks, engagements) Sort direction Search filter Comma-separated statuses: ACTIVE,PAUSED,ARCHIVED,DRAFT,COMPLETED. Default: ACTIVE,PAUSED.","keywords":"GET /campaign-groups page pageSize period startDate endDate sortBy sortOrder search status","href":"/docs/api#get-campaign-groups"},{"id":"/docs/api#get-campaign-groups-id-","kind":"api-endpoint","title":"Get Campaign by ID","breadcrumb":"API reference › Campaigns","body":"Returns a single Campaign with its child Ad Sets in the `adSets` array (id, linkedInId, name, status, human-readable format). Campaign ID","keywords":"GET /campaign-groups/{id} id","href":"/docs/api#get-campaign-groups-id-"},{"id":"/docs/api#get-campaign-groups-id-overview","kind":"api-endpoint","title":"Get Campaign metrics overview","breadcrumb":"API reference › Campaigns","body":"Performance totals for a single Campaign over the requested date range — aggregated to a single `summary` (no weekly breakdown). Campaign ID Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","keywords":"GET /campaign-groups/{id}/overview id period startDate endDate","href":"/docs/api#get-campaign-groups-id-overview"},{"id":"/docs/api#get-campaign-groups-id-companies","kind":"api-endpoint","title":"List companies for a Campaign","breadcrumb":"API reference › Campaigns","body":"Optional filters: sortBy, sortOrder, search Campaign ID Page number (default: 1) Items per page (default: 20, max: 100) Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Field to sort by (e.g. impressions, clicks, engagements) Sort direction Search filter","keywords":"GET /campaign-groups/{id}/companies id page pageSize period startDate endDate sortBy sortOrder search","href":"/docs/api#get-campaign-groups-id-companies"},{"id":"/docs/api#get-campaign-groups-id-job-titles","kind":"api-endpoint","title":"Get job title insights for a campaign group","breadcrumb":"API reference › Campaigns","body":"Optional filters: sortBy, sortOrder Campaign ID Page number (default: 1) Items per page (default: 20, max: 100) Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Field to sort by (e.g. impressions, clicks, engagements) Sort direction Search filter Only return rows where impressions is greater than or equal to this value. Only return rows where impressions is less than or equal to this value. Only return rows where clicks is greater than or equal to this value. Only return rows where clicks is less than or equal to this value. Only return rows where engagements is greater than or equal to this value. Only return rows where engagements is less than or equal to this value. Only return rows where cost in USD is greater than or equal to this value. Only return rows where cost in USD is less than or equal to this value. Only return rows where cost per click (CPC) is greater than or equal to this value. Only return rows where cost per click (CPC) is less than or equal to this value. Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value. Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.","keywords":"GET /campaign-groups/{id}/job-titles id page pageSize period startDate endDate sortBy sortOrder search minImpressions maxImpressions minClicks maxClicks minEngagements maxEngagements minCostInUsd maxCostInUsd minCostPerClick maxCostPerClick minClickThroughRate maxClickThroughRate","href":"/docs/api#get-campaign-groups-id-job-titles"},{"id":"/docs/api#deals","kind":"api-section","title":"Deals","breadcrumb":"API reference","body":"CRM deals synced with ZenABM — HubSpot deals and Salesforce opportunities in one list, each tagged with its source. Includes LinkedIn and ABM influence attribution to measure pipeline impact.","keywords":"deals","href":"/docs/api#deals"},{"id":"/docs/api#get-deals","kind":"api-endpoint","title":"List deals with insights","breadcrumb":"API reference › Deals","body":"Returns a paginated list of CRM deals with influence attribution data. Page number (default: 1) Items per page (default: 20, max: 100) Field to sort by (default: createdAt) Sort direction Search filter Filter deals by CRM source (default: all). HubSpot deals and Salesforce opportunities are returned in one list. Start date filter (YYYY-MM-DD). Supply with `endDate`; a partial range is ignored. Preferred over `dateFrom`, which is kept for backward compatibility. End date filter (YYYY-MM-DD). Supply with `startDate`; a partial range is ignored. Preferred over `dateTo`, which is kept for backward compatibility. Deprecated alias for `startDate`. Used only when `startDate` is absent. Deprecated alias for `endDate`. Used only when `endDate` is absent. Filter by a single ABM campaign. When set, it overrides `abmCampaigns`. Comma-separated ABM campaign IDs. Ignored when `abmCampaignId` is set. Only return rows where the deal amount is greater than or equal to this value. Only return rows where the deal amount is less than or equal to this value. Comma-separated deal statuses Attribution type filter Hide $0 deals (default: true)","keywords":"GET /deals page pageSize sortBy sortOrder search source startDate endDate dateFrom dateTo abmCampaignId abmCampaigns minAmount maxAmount dealStatus influenceFilter hideZeroAmount","href":"/docs/api#get-deals"},{"id":"/docs/api#job-titles","kind":"api-section","title":"Job Titles","breadcrumb":"API reference","body":"Analyze which job titles are engaging with your ads. Understand your audience at the persona level.","keywords":"job-titles","href":"/docs/api#job-titles"},{"id":"/docs/api#get-job-titles","kind":"api-endpoint","title":"List job titles with insights","breadcrumb":"API reference › Job Titles","body":"Optional filters: Ad Sets (comma-separated IDs), Campaigns (comma-separated IDs) Page number (default: 1) Items per page (default: 20, max: 100) Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Field to sort by (e.g. impressions, clicks, engagements) Sort direction Search filter Filter by Ad Sets IDs Filter by Campaigns IDs Only return rows where impressions is greater than or equal to this value. Only return rows where impressions is less than or equal to this value. Only return rows where clicks is greater than or equal to this value. Only return rows where clicks is less than or equal to this value. Only return rows where engagements is greater than or equal to this value. Only return rows where engagements is less than or equal to this value. Only return rows where cost in USD is greater than or equal to this value. Only return rows where cost in USD is less than or equal to this value. Only return rows where cost per click (CPC) is greater than or equal to this value. Only return rows where cost per click (CPC) is less than or equal to this value. Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value. Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value. When `true`, each job title in the response is augmented with a `weeklyData[]` array — one entry per Sunday-anchored bucket in the date range (impressions, clicks, engagements, costInUsd). `pageSize` is automatically capped at 20 on this path to keep responses small.","keywords":"GET /job-titles page pageSize period startDate endDate sortBy sortOrder search campaigns campaignGroups minImpressions maxImpressions minClicks maxClicks minEngagements maxEngagements minCostInUsd maxCostInUsd minCostPerClick maxCostPerClick minClickThroughRate maxClickThroughRate includeWeekly","href":"/docs/api#get-job-titles"},{"id":"/docs/api#get-job-titles-id-overview","kind":"api-endpoint","title":"Get job title performance overview","breadcrumb":"API reference › Job Titles","body":"Performance totals for a single job title over the date range — aggregated across the whole ad account (impressions, clicks, engagements, cost, conversions, CTR, CPC). The path `id` is the job title URN. Returns zeroes if the job title had no activity in the window. Job title URN Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","keywords":"GET /job-titles/{id}/overview id period startDate endDate","href":"/docs/api#get-job-titles-id-overview"},{"id":"/docs/api#get-job-titles-id-campaigns","kind":"api-endpoint","title":"Get Ad Set insights for a job title","breadcrumb":"API reference › Job Titles","body":"Ad sets this job title was exposed to, with per-job-title delivery metrics. The path `id` is the job title URN. Optional filters: sortBy, sortOrder, search. Job title interactions are stored as weekly totals anchored on the Sunday that ends each Monday–Sunday week, so a date range selects whole weeks rather than exact days. `meta.dateRange` reports what was actually summed: the range you asked for, the range covered, and how many weeks that was. When `weeksCovered` is 0 no week ended inside your range, so the totals are empty by definition — widen the range rather than reading it as no activity. Job title URN Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). Must be sent together with endDate; a half-supplied range is ignored and the period preset applies instead. Job title interactions are stored as weekly totals, so a week is included when the day it ends on falls inside the range. Totals are never split across a partial week, and a range shorter than a week can return nothing. End date (YYYY-MM-DD). Must be sent together with startDate. Selects whole weeks, exactly like startDate. Field to sort by (e.g. impressions, clicks, engagements) Sort direction Search filter","keywords":"GET /job-titles/{id}/campaigns id period startDate endDate sortBy sortOrder search","href":"/docs/api#get-job-titles-id-campaigns"},{"id":"/docs/api#get-job-titles-id-campaign-groups","kind":"api-endpoint","title":"Get Campaign insights for a job title","breadcrumb":"API reference › Job Titles","body":"Optional filters: sortBy, sortOrder, search. Job title interactions are stored as weekly totals anchored on the Sunday that ends each Monday–Sunday week, so a date range selects whole weeks rather than exact days. `meta.dateRange` reports what was actually summed: the range you asked for, the range covered, and how many weeks that was. When `weeksCovered` is 0 no week ended inside your range, so the totals are empty by definition — widen the range rather than reading it as no activity. Job title ID Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). Must be sent together with endDate; a half-supplied range is ignored and the period preset applies instead. Job title interactions are stored as weekly totals, so a week is included when the day it ends on falls inside the range. Totals are never split across a partial week, and a range shorter than a week can return nothing. End date (YYYY-MM-DD). Must be sent together with startDate. Selects whole weeks, exactly like startDate. Field to sort by (e.g. impressions, clicks, engagements) Sort direction Search filter","keywords":"GET /job-titles/{id}/campaign-groups id period startDate endDate sortBy sortOrder search","href":"/docs/api#get-job-titles-id-campaign-groups"},{"id":"/docs/api#abm-campaigns","kind":"api-section","title":"ABM Campaigns","breadcrumb":"API reference","body":"ABM campaigns are high-level campaign groupings with funnel stage tracking and overview metrics.","keywords":"abm-campaigns","href":"/docs/api#abm-campaigns"},{"id":"/docs/api#get-abm-campaigns","kind":"api-endpoint","title":"List ABM campaigns with insights","breadcrumb":"API reference › ABM Campaigns","body":"Optional filters: status (ACTIVE,PAUSED,COMPLETED) Page number (default: 1) Items per page (default: 20, max: 100) Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Field to sort by (e.g. impressions, clicks, engagements) Sort direction Search filter Comma-separated statuses: ACTIVE,PAUSED,COMPLETED Only return rows where the number of Ad Sets (response field `numberOfAdSets`) is greater than or equal to this value. Only return rows where the number of Ad Sets (response field `numberOfAdSets`) is less than or equal to this value. Only return rows where the number of Campaigns (response field `numberOfCampaigns`) is greater than or equal to this value. Only return rows where the number of Campaigns (response field `numberOfCampaigns`) is less than or equal to this value. Only return rows where the number of companies targeted is greater than or equal to this value. Only return rows where the number of companies targeted is less than or equal to this value. Only return rows where total pipeline value is greater than or equal to this value. Only return rows where total pipeline value is less than or equal to this value. Only return rows where total closed-won revenue is greater than or equal to this value. Only return rows where total closed-won revenue is less than or equal to this value. Only return rows where total ad spend is greater than or equal to this value. Only return rows where total ad spend is less than or equal to this value. Only return rows where return on ad spend (ROAS) is greater than or equal to this value. Only return rows where return on ad spend (ROAS) is less than or equal to this value.","keywords":"GET /abm-campaigns page pageSize period startDate endDate sortBy sortOrder search status minNumberOfLinkedinCampaigns maxNumberOfLinkedinCampaigns minNumberOfLinkedinCampaignGroups maxNumberOfLinkedinCampaignGroups minCompaniesTargeted maxCompaniesTargeted minTotalPipeline maxTotalPipeline minTotalRevenue maxTotalRevenue minTotalAdSpend maxTotalAdSpend minRoas maxRoas","href":"/docs/api#get-abm-campaigns"},{"id":"/docs/api#get-abm-campaigns-id-","kind":"api-endpoint","title":"Get ABM campaign by ID","breadcrumb":"API reference › ABM Campaigns","body":"Returns the ABM campaign plus the LinkedIn entities the user assigned to it. An ABM campaign can be backed by campaigns (`linkedinCampaigns`), ad sets (`linkedinAdSets`), or both — each array is a direct membership, not a parent/child hierarchy. Either can be empty. ABM campaign ID","keywords":"GET /abm-campaigns/{id} id","href":"/docs/api#get-abm-campaigns-id-"},{"id":"/docs/api#get-abm-campaigns-id-overview","kind":"api-endpoint","title":"Get ABM campaign performance overview","breadcrumb":"API reference › ABM Campaigns","body":"Performance for the date range: `metrics` (LinkedIn delivery — impressions, clicks, engagements, cost, conversions, CTR, CPC across the ad sets + campaigns assigned to this ABM campaign) and `effectiveness` (business outcomes — companiesTargeted, totalPipeline, totalRevenue, totalAdSpend, pipePerSpent, averageAcv, roas). Currency note: `metrics.costInUsd` and `effectiveness.totalAdSpend` are always USD; `effectiveness.totalPipeline`, `totalRevenue`, and `averageAcv` are in the team `displayCurrency` (HubSpot deal amounts converted at sync time). `pipePerSpent` and `roas` are therefore ratios across the two currencies — treat as approximate unless `displayCurrency` is USD. ABM campaign ID Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","keywords":"GET /abm-campaigns/{id}/overview id period startDate endDate","href":"/docs/api#get-abm-campaigns-id-overview"},{"id":"/docs/api#get-abm-campaigns-id-stages-breakdown","kind":"api-endpoint","title":"Get ABM campaign stages breakdown","breadcrumb":"API reference › ABM Campaigns","body":"Returns a breakdown of companies across each ABM funnel stage. ABM campaign ID Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","keywords":"GET /abm-campaigns/{id}/stages-breakdown id period startDate endDate","href":"/docs/api#get-abm-campaigns-id-stages-breakdown"},{"id":"/docs/api#get-abm-campaigns-id-companies","kind":"api-endpoint","title":"List companies for an ABM campaign","breadcrumb":"API reference › ABM Campaigns","body":"Returns a paginated list of companies with engagement metrics and intent data for a specific ABM campaign. Aggregates data from all linked LinkedIn campaigns and campaign groups. ABM campaign ID Page number (default: 1) Items per page (default: 20, max: 100) Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Field to sort by (e.g. impressions, clicks, engagements) Sort direction Search filter Comma-separated scores (1–5) Comma-separated ABM stage IDs Only return companies that show this intent signal. Takes a single intent ID — see `GET /intents`. Only return rows where impressions is greater than or equal to this value. Only return rows where impressions is less than or equal to this value. Only return rows where clicks is greater than or equal to this value. Only return rows where clicks is less than or equal to this value. Only return rows where engagements is greater than or equal to this value. Only return rows where engagements is less than or equal to this value. Only return rows where cost in USD is greater than or equal to this value. Only return rows where cost in USD is less than or equal to this value. Only return rows where cost per click (CPC) is greater than or equal to this value. Only return rows where cost per click (CPC) is less than or equal to this value. Only return rows where cost per 1,000 impressions (CPM) is greater than or equal to this value. Only return rows where cost per 1,000 impressions (CPM) is less than or equal to this value. Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value. Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value. Only return rows where the number of intent signals is greater than or equal to this value. Only return rows where the number of intent signals is less than or equal to this value. HubSpot match filter Salesforce match filter","keywords":"GET /abm-campaigns/{id}/companies id page pageSize period startDate endDate sortBy sortOrder search engagementScores abmStages intentId minImpressions maxImpressions minClicks maxClicks minEngagements maxEngagements minCostInUsd maxCostInUsd minCostPerClick maxCostPerClick minCpm maxCpm minClickThroughRate maxClickThroughRate minIntents maxIntents crmMatchStatus salesforceMatchStatus","href":"/docs/api#get-abm-campaigns-id-companies"},{"id":"/docs/api#get-abm-campaigns-id-job-titles","kind":"api-endpoint","title":"List job titles for an ABM campaign","breadcrumb":"API reference › ABM Campaigns","body":"Returns a paginated list of job titles with engagement metrics for a specific ABM campaign. Aggregates data from all linked LinkedIn campaigns and campaign groups. ABM campaign ID Page number (default: 1) Items per page (default: 20, max: 100) Time period preset. Ignored when startDate/endDate are provided. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Field to sort by (e.g. impressions, clicks, engagements) Sort direction Search filter Only return rows where impressions is greater than or equal to this value. Only return rows where impressions is less than or equal to this value. Only return rows where clicks is greater than or equal to this value. Only return rows where clicks is less than or equal to this value. Only return rows where engagements is greater than or equal to this value. Only return rows where engagements is less than or equal to this value. Only return rows where cost in USD is greater than or equal to this value. Only return rows where cost in USD is less than or equal to this value. Only return rows where cost per click (CPC) is greater than or equal to this value. Only return rows where cost per click (CPC) is less than or equal to this value. Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value. Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.","keywords":"GET /abm-campaigns/{id}/job-titles id page pageSize period startDate endDate sortBy sortOrder search minImpressions maxImpressions minClicks maxClicks minEngagements maxEngagements minCostInUsd maxCostInUsd minCostPerClick maxCostPerClick minClickThroughRate maxClickThroughRate","href":"/docs/api#get-abm-campaigns-id-job-titles"},{"id":"/docs/api#abm-stages","kind":"api-section","title":"ABM Stages","breadcrumb":"API reference","body":"ABM funnel stages — track companies entering, progressing through, and the history of each stage.","keywords":"abm-stages","href":"/docs/api#abm-stages"},{"id":"/docs/api#get-abm-stages","kind":"api-endpoint","title":"List ABM stages","breadcrumb":"API reference › ABM Stages","body":"List ABM stages","keywords":"GET /abm-stages","href":"/docs/api#get-abm-stages"},{"id":"/docs/api#get-abm-stages-id-","kind":"api-endpoint","title":"Get ABM stage by ID","breadcrumb":"API reference › ABM Stages","body":"Returns the ABM stage with `currentCompaniesCount` — the number of companies currently in this stage. ABM stage ID","keywords":"GET /abm-stages/{id} id","href":"/docs/api#get-abm-stages-id-"},{"id":"/docs/api#get-abm-stages-id-companies","kind":"api-endpoint","title":"List companies currently in an ABM stage","breadcrumb":"API reference › ABM Stages","body":"Returns a paginated list of companies whose current ABM stage matches the given stage ID. Supports search and sorting. ABM stage ID Page number (default: 1) Items per page (default: 20, max: 100) Field to sort by (e.g. impressions, clicks, engagements) Sort direction Search filter","keywords":"GET /abm-stages/{id}/companies id page pageSize sortBy sortOrder search","href":"/docs/api#get-abm-stages-id-companies"},{"id":"/docs/api#get-abm-stages-id-companies-entering","kind":"api-endpoint","title":"Get companies entering an ABM stage","breadcrumb":"API reference › ABM Stages","body":"Get companies entering an ABM stage ABM stage ID Start date (ISO format, default: 30 days ago) End date (ISO format, default: today) Page number (default: 1) Items per page (default: 20, max: 100)","keywords":"GET /abm-stages/{id}/companies-entering id startDate endDate page pageSize","href":"/docs/api#get-abm-stages-id-companies-entering"},{"id":"/docs/api#get-abm-stages-id-companies-progressing","kind":"api-endpoint","title":"Get companies progressing from an ABM stage","breadcrumb":"API reference › ABM Stages","body":"Get companies progressing from an ABM stage ABM stage ID Start date (ISO format, default: 30 days ago) End date (ISO format, default: today) Page number (default: 1) Items per page (default: 20, max: 100)","keywords":"GET /abm-stages/{id}/companies-progressing id startDate endDate page pageSize","href":"/docs/api#get-abm-stages-id-companies-progressing"},{"id":"/docs/api#get-abm-stages-id-history","kind":"api-endpoint","title":"Get ABM stage history","breadcrumb":"API reference › ABM Stages","body":"Get ABM stage history ABM stage ID Start date (ISO format, default: 30 days ago) End date (ISO format, default: today) Page number (default: 1) Items per page (default: 20, max: 100)","keywords":"GET /abm-stages/{id}/history id startDate endDate page pageSize","href":"/docs/api#get-abm-stages-id-history"},{"id":"/docs/api#intents","kind":"api-section","title":"Intents","breadcrumb":"API reference","body":"Intent signals configured for your team — used to qualify and prioritize target accounts.","keywords":"intents","href":"/docs/api#intents"},{"id":"/docs/api#get-intents","kind":"api-endpoint","title":"List intents","breadcrumb":"API reference › Intents","body":"List intents","keywords":"GET /intents","href":"/docs/api#get-intents"},{"id":"/docs/api#get-intents-id-","kind":"api-endpoint","title":"Get intent by ID","breadcrumb":"API reference › Intents","body":"Returns the intent with the ad sets and campaigns it is assigned to, plus `companyCount` — the number of companies tagged with this intent. Intent ID","keywords":"GET /intents/{id} id","href":"/docs/api#get-intents-id-"},{"id":"/docs/api#contacts","kind":"api-section","title":"Contacts","breadcrumb":"API reference","body":"HubSpot contacts with source touchpoint totals, company context, ABM stage context, and related deals.","keywords":"contacts","href":"/docs/api#contacts"},{"id":"/docs/api#get-contacts","kind":"api-endpoint","title":"List contacts with source touchpoints","breadcrumb":"API reference › Contacts","body":"Returns a paginated list of HubSpot contacts with source touchpoint totals, company context, ABM stage context, and related deals. Page number (default: 1) Items per page (default: 20, max: 100) Search filter Start of the source event window (inclusive). ISO-8601 string. End of the source event window (inclusive). ISO-8601 string. Sort direction Comma-separated touchpoint keys. Examples: PAID_SEARCH, PAID_SOCIAL|LinkedIn Ads, AI_REFERRALS|AI: ChatGPT. Comma-separated current ABM stage IDs. Comma-separated lifetime ABM stage IDs. Filter contacts by their company's deal status. `*_in_period` variants use the page's `startDate`/`endDate` window — `created_in_period` matches `hubspotCreatedAt`, `won_in_period`/`lost_in_period` match `hubspotClosedAt` on Customer / Lost / Disqualified stages.","keywords":"GET /contacts page pageSize search startDate endDate sortBy sortOrder touchpoints currentAbmStages lifetimeAbmStages hasDeal","href":"/docs/api#get-contacts"},{"id":"/docs/api#get-contacts-id-","kind":"api-endpoint","title":"Get contact journey","breadcrumb":"API reference › Contacts","body":"Returns a single contact with company context, source events, related deals, and a weekly source-event timeline. Contact ID","keywords":"GET /contacts/{id} id","href":"/docs/api#get-contacts-id-"},{"id":"/docs/api#sources","kind":"api-section","title":"Sources","breadcrumb":"API reference","body":"Aggregated contact source events grouped by source type — paid search, paid social, AI referrals, and more — with click, contact, and company breakdowns.","keywords":"sources","href":"/docs/api#sources"},{"id":"/docs/api#get-sources","kind":"api-endpoint","title":"List contact source aggregates","breadcrumb":"API reference › Sources","body":"Returns aggregated contact source events grouped by source type. Each row reports total clicks, distinct contacts, and distinct companies. Filter by an optional date range. Start of the event window (inclusive). ISO-8601 string. End of the event window (inclusive). ISO-8601 string.","keywords":"GET /sources startDate endDate","href":"/docs/api#get-sources"},{"id":"/docs/api#get-sources-sourcetype-","kind":"api-endpoint","title":"Get source detail by type","breadcrumb":"API reference › Sources","body":"Returns the contacts, companies, and weekly timeline for a single source type within an optional date range. Capped at the most recent 500 events. Source type identifier (e.g. PAID_SEARCH, PAID_SOCIAL, ORGANIC_SEARCH, AI_REFERRALS, REFERRALS, DIRECT_TRAFFIC, EMAIL_MARKETING, SOCIAL_MEDIA, OFFLINE, OTHER_CAMPAIGNS). Optional label filter. Use for split source rows such as PAID_SOCIAL|LinkedIn Ads or AI_REFERRALS|AI: ChatGPT. Time period preset. Ignored when startDate/endDate are provided. Start of the event window (inclusive). ISO-8601 string. Supply with `endDate` to override `period`. End of the event window (inclusive). ISO-8601 string.","keywords":"GET /sources/{sourceType} sourceType label period startDate endDate","href":"/docs/api#get-sources-sourcetype-"},{"id":"/docs/api#ad-library","kind":"api-section","title":"Ad Library","breadcrumb":"API reference","body":"Search LinkedIn's public Ad Library by advertiser or keyword to profile competitor ads. Returns normalized ad metadata — format, EU/EEA impression ranges with per-country split, first/last impression dates, and targeting facets. Impression and targeting data is EU/EEA-only (DSA); US-only advertisers return null statistics.","keywords":"ad-library","href":"/docs/api#ad-library"},{"id":"/docs/api#get-ad-library-by-advertiser","kind":"api-endpoint","title":"Search the LinkedIn Ad Library by advertiser","breadcrumb":"API reference › Ad Library","body":"Profile a competitor's ads. Searches LinkedIn's public Ad Library by advertiser name (fuzzy match) and returns normalized ad metadata (format, EU/EEA impression ranges + per-country split, first/last impression dates, and which targeting facets were used). LinkedIn's advertiser search is fuzzy, so responses include an `advertisers` list — pick the right `companyId` from it and pass it back to filter to the exact advertiser. Country and date filters are applied over the returned ads. Impression/targeting data is EU/EEA-only (DSA); US-only advertisers return null statistics (treat as unknown, not zero). Advertiser name, vanity slug, or a linkedin.com/company/... URL to search for. Canonical LinkedIn company ID to filter results to the exact advertiser (guards against fuzzy-name collisions). Auto-derived when `company` is a /company/<id> URL. Comma-separated ISO 3166-1 alpha-2 codes (e.g. \"DE,FR\"). Keeps ads with EU/EEA impressions in any listed country. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Max ads to return after filtering (default: 25, max: 100).","keywords":"GET /ad-library/by-advertiser company companyId countries startDate endDate limit","href":"/docs/api#get-ad-library-by-advertiser"},{"id":"/docs/api#get-ad-library-by-keyword","kind":"api-endpoint","title":"Search the LinkedIn Ad Library by keyword","breadcrumb":"API reference › Ad Library","body":"Discover who advertises on a topic. Full-text searches LinkedIn's public Ad Library ad copy and returns the same normalized ad metadata as /ad-library/by-advertiser. Optionally narrow to a single advertiser. Country and date filters are applied over the returned ads. Impression/targeting data is EU/EEA-only (DSA). Full-text phrase to match in ad copy. Optional advertiser name to narrow keyword results (ANDed with the keyword). Comma-separated ISO 3166-1 alpha-2 codes (e.g. \"DE,FR\"). Keeps ads with EU/EEA impressions in any listed country. Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter. End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter. Max ads to return after filtering (default: 25, max: 100).","keywords":"GET /ad-library/by-keyword keyword advertiser countries startDate endDate limit","href":"/docs/api#get-ad-library-by-keyword"},{"id":"/docs/api#dashboard","kind":"api-section","title":"Dashboard","breadcrumb":"API reference","body":"Dashboard-level aggregate metrics — top companies, ad spend, and overall performance at a glance.","keywords":"dashboard","href":"/docs/api#dashboard"},{"id":"/docs/api#get-dashboard","kind":"api-endpoint","title":"Get dashboard overview","breadcrumb":"API reference › Dashboard","body":"Returns a high-level overview with top companies, total metrics, and ad spend for the given date range. Start date (default: 30 days ago) End date (default: today)","keywords":"GET /dashboard startDate endDate","href":"/docs/api#get-dashboard"},{"id":"/docs/mcp","kind":"mcp","title":"MCP server","breadcrumb":"MCP","body":"Set up the ZenABM MCP server: 15 ready-made ABM skills your AI client runs as slash commands, and 57 tools across LinkedIn Ads, companies, campaigns, ABM stages, deals, contacts, and creatives.","keywords":"mcp model context protocol claude cursor ai agent oauth setup skills slash commands list_skills overview help","href":"/docs/mcp"},{"id":"/docs/mcp#mcp-skills-audit-and-optimization","kind":"mcp","title":"Audit and optimization skills","breadcrumb":"MCP › Skills","body":"Find what leaks budget, and what to fix first.","keywords":"skill slash command /linkedin-abm-audit /budget-wasters /persona-audit /ad-decay","href":"/docs/mcp#mcp-skills-audit-and-optimization"},{"id":"/docs/mcp#mcp-skill-linkedin-abm-audit","kind":"mcp","title":"/linkedin-abm-audit — LinkedIn ABM Audit","breadcrumb":"MCP › Skills › Audit and optimization","body":"The entry point. Grades six dimensions of your live account, from spend efficiency to account engagement, and returns a verdict, a scorecard, and a fix list ordered by dollars at stake. Each fix names the skill that solves it.","keywords":"skill slash command /linkedin-abm-audit LinkedIn ABM Audit period_days","href":"/docs/mcp#mcp-skill-linkedin-abm-audit"},{"id":"/docs/mcp#mcp-skill-budget-wasters","kind":"mcp","title":"/budget-wasters — Budget Wasters","breadcrumb":"MCP › Skills › Audit and optimization","body":"Where the money leaks: high spend with low eCTR, eCPC far above your median, spenders with no conversions, zombie ad sets, budget-hog accounts, and delivery settings that push spend off-target.","keywords":"skill slash command /budget-wasters Budget Wasters","href":"/docs/mcp#mcp-skill-budget-wasters"},{"id":"/docs/mcp#mcp-skill-persona-audit","kind":"mcp","title":"/persona-audit — Persona Audit","breadcrumb":"MCP › Skills › Audit and optimization","body":"Your configured Campaign Manager targeting against who the ads actually reach. Sums the off-persona spend, finds target titles with weak delivery, and hands back the include and exclude list per ad set.","keywords":"skill slash command /persona-audit Persona Audit","href":"/docs/mcp#mcp-skill-persona-audit"},{"id":"/docs/mcp#mcp-skill-ad-decay","kind":"mcp","title":"/ad-decay — Ad Decay and Refresh Planner","breadcrumb":"MCP › Skills › Audit and optimization","body":"Creative fatigue before it burns budget: ads whose eCTR fell two weeks running, saturation confirmed against real frequency, the formats that decay fastest, and your account refresh cadence.","keywords":"skill slash command /ad-decay Ad Decay and Refresh Planner weeks","href":"/docs/mcp#mcp-skill-ad-decay"},{"id":"/docs/mcp#mcp-skills-strategy-and-planning","kind":"mcp","title":"Strategy and planning skills","breadcrumb":"MCP › Skills","body":"Plan the program, then turn the plan into ads.","keywords":"skill slash command /abm-strategy-planning /abm-campaign-execution /scaling-planner","href":"/docs/mcp#mcp-skills-strategy-and-planning"},{"id":"/docs/mcp#mcp-skill-abm-strategy-planning","kind":"mcp","title":"/abm-strategy-planning — ABM Strategy Planning","breadcrumb":"MCP › Skills › Strategy and planning","body":"A short interview plus your real deal size, pipeline per dollar, and per-format eCPC turn a pipeline goal into a budget, an audience size, and a campaign structure. Every step of the math is shown, and every assumption is labelled with its source.","keywords":"skill slash command /abm-strategy-planning ABM Strategy Planning","href":"/docs/mcp#mcp-skill-abm-strategy-planning"},{"id":"/docs/mcp#mcp-skill-abm-campaign-execution","kind":"mcp","title":"/abm-campaign-execution — ABM Campaign Execution","breadcrumb":"MCP › Skills › Strategy and planning","body":"Turns that strategy into launch-ready assets: campaign outline, a brief for every ad, copy variants, Thought Leader Ad copy, and design briefs. It studies the ads that already perform in your account first.","keywords":"skill slash command /abm-campaign-execution ABM Campaign Execution","href":"/docs/mcp#mcp-skill-abm-campaign-execution"},{"id":"/docs/mcp#mcp-skill-scaling-planner","kind":"mcp","title":"/scaling-planner — Scaling Planner","breadcrumb":"MCP › Skills › Strategy and planning","body":"Where more budget buys more people, and where it only buys more repetition. Measures audience penetration and frequency per ad set, then sequences the step-ups with a stop condition for each one.","keywords":"skill slash command /scaling-planner Scaling Planner budget_increase","href":"/docs/mcp#mcp-skill-scaling-planner"},{"id":"/docs/mcp#mcp-skills-reporting","kind":"mcp","title":"Reporting skills","breadcrumb":"MCP › Skills","body":"The recurring readouts, written for the person who reads them.","keywords":"skill slash command /linkedin-abm-report /weekly-digest /revenue-attribution","href":"/docs/mcp#mcp-skills-reporting"},{"id":"/docs/mcp#mcp-skill-linkedin-abm-report","kind":"mcp","title":"/linkedin-abm-report — Monthly LinkedIn ABM Report","breadcrumb":"MCP › Skills › Reporting","body":"A stakeholder report for a month or a quarter, always compared against the period before: spend, pipeline, pipeline per dollar, format grades, newly engaged accounts, and exactly three risks and three opportunities.","keywords":"skill slash command /linkedin-abm-report Monthly LinkedIn ABM Report month","href":"/docs/mcp#mcp-skill-linkedin-abm-report"},{"id":"/docs/mcp#mcp-skill-weekly-digest","kind":"mcp","title":"/weekly-digest — Weekly Digest","breadcrumb":"MCP › Skills › Reporting","body":"The Monday readout in two layers: one headline line for stakeholders, then week-over-week movement per campaign, ad set, and ad for whoever runs the account. Biggest change first, built to be scanned.","keywords":"skill slash command /weekly-digest Weekly Digest","href":"/docs/mcp#mcp-skill-weekly-digest"},{"id":"/docs/mcp#mcp-skill-revenue-attribution","kind":"mcp","title":"/revenue-attribution — Revenue Attribution","breadcrumb":"MCP › Skills › Reporting","body":"Spend to pipeline per ABM campaign, plus which campaigns, intent signals, and engagement thresholds line up with open deals. Every finding carries its sample size, lift, and p-value, and is stated as correlation.","keywords":"skill slash command /revenue-attribution Revenue Attribution","href":"/docs/mcp#mcp-skill-revenue-attribution"},{"id":"/docs/mcp#mcp-skills-accounts-prospecting-and-sales-handoff","kind":"mcp","title":"Accounts, prospecting and sales handoff skills","breadcrumb":"MCP › Skills","body":"Who to invest in, who to call, and who to cut.","keywords":"skill slash command /account-engagement /company-deep-dive /intent-report /funnel-movement /sales-handoff","href":"/docs/mcp#mcp-skills-accounts-prospecting-and-sales-handoff"},{"id":"/docs/mcp#mcp-skill-account-engagement","kind":"mcp","title":"/account-engagement — Account Engagement Sort","breadcrumb":"MCP › Skills › Accounts, prospecting and sales handoff","body":"Every account into four buckets: warm, cold, budget hog, and bad fit. Ends with an exclusion candidate list and what dropping it saves per month.","keywords":"skill slash command /account-engagement Account Engagement Sort","href":"/docs/mcp#mcp-skill-account-engagement"},{"id":"/docs/mcp#mcp-skill-company-deep-dive","kind":"mcp","title":"/company-deep-dive — Company Deep Dive","breadcrumb":"MCP › Skills › Accounts, prospecting and sales handoff","body":"Everything ZenABM holds on one account or a list of them: spend, campaign membership, intent, stage history, one merged timeline, contacts, and deals, closing with a single verdict per account.","keywords":"skill slash command /company-deep-dive Company Deep Dive companies","href":"/docs/mcp#mcp-skill-company-deep-dive"},{"id":"/docs/mcp#mcp-skill-intent-report","kind":"mcp","title":"/intent-report — Intent Report","breadcrumb":"MCP › Skills › Accounts, prospecting and sales handoff","body":"Three answers: who showed intent in the last 30 days, which campaigns drive intent per dollar, and which intent signal actually predicts an open deal.","keywords":"skill slash command /intent-report Intent Report","href":"/docs/mcp#mcp-skill-intent-report"},{"id":"/docs/mcp#mcp-skill-funnel-movement","kind":"mcp","title":"/funnel-movement — Funnel Movement Report","breadcrumb":"MCP › Skills › Accounts, prospecting and sales handoff","body":"Who moved toward buying, who stalled and for how long, and which stage clogs the funnel, with one fix for the slowest transition.","keywords":"skill slash command /funnel-movement Funnel Movement Report period_days","href":"/docs/mcp#mcp-skill-funnel-movement"},{"id":"/docs/mcp#mcp-skill-sales-handoff","kind":"mcp","title":"/sales-handoff — Sales Handoff List","breadcrumb":"MCP › Skills › Accounts, prospecting and sales handoff","body":"Who sales should call today: stage movers in recency tiers, fresh intent, and engagement spikes mid-deal. Each account arrives with a contact and a talking point taken from its own journey.","keywords":"skill slash command /sales-handoff Sales Handoff List","href":"/docs/mcp#mcp-skill-sales-handoff"},{"id":"/docs/mcp#mcp-tools-list-and-search","kind":"mcp","title":"List and search","breadcrumb":"MCP › Tools","body":"Search across companies, LinkedIn structure, creatives, CRM deals, contacts, job titles, intent signals, sources, and spend.","keywords":"list_companies list_ad_sets list_campaigns list_creatives list_deals","href":"/docs/mcp#mcp-tools-list-and-search"},{"id":"/docs/mcp#mcp-tools-company-intelligence","kind":"mcp","title":"Company intelligence","breadcrumb":"MCP › Tools","body":"Pull company-level engagement, ABM stage history, activity logs, deals, campaigns, ad sets, and weekly timelines.","keywords":"get_company_overview get_company_timeline get_company_deals","href":"/docs/mcp#mcp-tools-company-intelligence"},{"id":"/docs/mcp#mcp-tools-linkedin-ads-performance","kind":"mcp","title":"LinkedIn Ads performance","breadcrumb":"MCP › Tools","body":"Analyze campaigns, ad sets, job titles, companies reached, creative metrics, formats, CTR, CPC, spend, and engagement. Weekly variants return a per-week series in one call.","keywords":"get_campaign_overview get_ad_set_companies get_creative_performance","href":"/docs/mcp#mcp-tools-linkedin-ads-performance"},{"id":"/docs/mcp#mcp-tools-live-delivery-settings","kind":"mcp","title":"Live delivery settings","breadcrumb":"MCP › Tools","body":"Read budgets, bid, objective, Audience Expansion, LinkedIn Audience Network, audience size, and targeting live from Campaign Manager, plus reach and frequency for any date range.","keywords":"get_ad_set_settings get_linkedin_metrics get_budget_savers","href":"/docs/mcp#mcp-tools-live-delivery-settings"},{"id":"/docs/mcp#mcp-tools-abm-and-revenue","kind":"mcp","title":"ABM and revenue","breadcrumb":"MCP › Tools","body":"Inspect ABM campaigns, pipeline, revenue, ROAS, stage movement, influenced deals, and companies entering or progressing stages.","keywords":"get_abm_campaign_overview get_abm_stage_history list_deals","href":"/docs/mcp#mcp-tools-abm-and-revenue"},{"id":"/docs/mcp#mcp-tools-actions-with-safeguards","kind":"mcp","title":"Actions with safeguards","breadcrumb":"MCP › Tools","body":"Find current LinkedIn serving state, then pause or activate ads, ad sets, and campaigns, exclude accounts, or switch on a Budget Saver. All four write tools carry destructive-action hints for MCP clients.","keywords":"find_ad_sets_or_campaigns update_ad_status update_ad_set_or_campaign_status exclude_companies set_budget_saver","href":"/docs/mcp#mcp-tools-actions-with-safeguards"},{"id":"/docs/mcp#mcp-examples","kind":"mcp","title":"Example prompts","breadcrumb":"MCP","body":"Show the top companies by LinkedIn engagement last month. Which Thought Leader Ads drove the most landing page clicks last week? Brief me on Acme before my sales call. Which high-intent accounts entered our evaluation stage this week? Find paused ad sets that still got clicks last week.","keywords":"example prompts questions ask","href":"/docs/mcp#mcp-examples"}]