Skip to content

Reporting on outbound activity in Salesforce

When to use this guide: Use this guide after sync is working and you want outbound metrics inside Salesforce Reports and Dashboards.

OutboundSync writes Tasks (or EmailMessages) and optional custom fields on Leads, Contacts, and Tasks. You build reports from that data in Salesforce — there is no OutboundSync-packaged Salesforce dashboard today.

HubSpot customers can install pre-built Supered packages for starter dashboards. Salesforce reporting is self-built from the recipes below.

Confirm these before following the Task-based recipes:

  1. Activity object = Task for per-event Task reports. If your webhook logs EmailMessage only, use contacts reached and engagement (Lead/Contact fields) instead — Task Subject filters will not apply. See Where to reply: Salesforce vs your sales engagement platform.

  2. Task subject includes {{ event_type }} . The admin default is:

    [OS] [{{ os_sales_engagement_platform }} - {{ event_type }}] {{ subject }}

    If you customized the subject and removed that snippet, restore it before event-type reports. Details: Writing to the Task Object.

  3. Custom fields are optional. Person-level “reached” and engagement reports need OutboundSync custom fields on Lead and/or Contact. Task custom fields are optional extras for activity-grain campaign filters.

  4. Person object = Lead or Contact. Your webhook chooses which object OutboundSync updates. Use the matching report type in every person-level recipe.

Each synced event can create a completed Task with a configurable Subject. There is no OSEventType__c field — event type lives in Subject via {{ event_type }} (for example EMAIL_SENT, EMAIL_OPEN, EMAIL_LINK_CLICK, EMAIL_REPLY, EMAIL_BOUNCE).

Identify OutboundSync Tasks with Created By (OAuth user), an [OS] prefix if you use the default subject, or Task owner settings. See Identifying OutboundSync activity in Salesforce.

Prefer Task over EmailMessage for Reports and Flows.

Salesforce archives completed Tasks older than a year and excludes archived activities from reports, so lean on the person-level counter and last-touch fields below for durable historical totals.

When enabled, OutboundSync writes last-touch and counter fields such as OSLastSentTime__c, open/click/reply/bounce fields, OSLastCampaignId__c / OSLastCampaignName__c, and lead category fields. Prefer campaign ID over campaign name for stable filters — names can change in your sales engagement platform.

Full list: Which Salesforce fields are updated.

  • Contacts or leads reached — people with OSLastSentTime__c populated (recipe).
  • Per-event volume — Tasks filtered by Subject event tokens (recipe).
  • Campaign performance — last-touch people via OSLastCampaignId__c, or activity volume via Task Subject campaign ID (recipe).
  • Opportunity influence — build custom report types relating Contacts to Opportunities through Opportunity Contact Roles (Leads only after they convert). OutboundSync does not create or update Opportunity records.