ABM System Enhancements & Lead Attribution (2026-03-13)
Overview
During the 2026-03-13 weekly sync, Mark deployed several Apex-based enhancements to PaperTube's Salesforce ABM system: automated lead engagement notifications, a lead source attribution fix for the PaperTube.pro domain, and groundwork for routing secondary contacts into Account Engagement nurture drips. A report scope issue was also identified and resolved.
Attendees: Karly Oykhman, Mark Hope
Related meeting: [1]
Client: [2]
1. Lead Engagement Notifications
Requirement
PaperTube's client (Parag) is not actively monitoring the ABM sequence and needs proactive alerts so he can do timely personal outreach to warm leads.
Solution
Mark deployed an Apex script that modifies the existing Pardot engagement sync logic to detect engagement signals and send email notifications to Parag.
Trigger conditions:
- Any link click in an ABM email (always notified, regardless of open count)
- 3 or more email opens within a rolling 60-day window
Technical Notes
- The ABM system is not a native Account Engagement automation — it is a custom Apex orchestrator that calls the Pardot Send API as a delivery mechanism
- Engagement data (opens, clicks) is already synced to Salesforce via an Apex cron job running at 11 AM
- The notification script extends this existing sync rather than introducing a new polling mechanism
- Bot-click filtering is in place (clicks within the first ~15 seconds of delivery are discarded as bot activity — a pattern already deployed for Aviary)
- A technical documentation file was generated and shared with Karly to forward to Parag alongside the announcement email
Action Items
- [ ] Karly: Email Parag announcing the notification system; attach the technical doc Mark shared in chat
2. Lead Source Attribution Fix
Problem
Leads arriving through the PaperTube.pro landing page were being attributed to "Google AdWords" or "Hunter.io" in the Salesforce Lead Source field, making it impossible to demonstrate Asymmetric's contribution.
Root Cause
The UTM-to-Lead Source mapping was not correctly configured during initial setup. Hunter.io (used for contact sourcing) was also writing its own Lead Source value, overwriting the intended attribution.
Solution
An automation was deployed to set Lead Source = "Asymmetric" for any lead or contact where the UTM source contains PaperTube.pro (wildcard match). This covers all inbound traffic routed through Asymmetric's managed landing page domain.
Scope of fix:
- New inbound leads via form submissions (UTM-based trigger)
- Existing ABM contacts (~226 at time of call) were backfilled — Karly confirmed the field updated to "Asymmetric" during the session
Related Field Work
Lead Sourceexists as a global picklist field on both Lead and Contact objects; "Asymmetric" was already a valid picklist value- A new Account Lead Source field was scoped for creation on the Account object, to be synced from the Contact Lead Source — this allows attribution visibility at the account level, not just the contact level
- A Contact Stage field (analogous to HubSpot lifecycle stage: Marketing Qualified → Sales Qualified → Opportunity) was also scoped for creation
Action Items
- [ ] Mark: Create
Contact Stagefield on the Contact object in Salesforce - [ ] Mark: Create
Account Lead Sourcefield on the Account object; build sync logic from Contact Lead Source
3. ABM Performance Reports & Dashboard
Problem
The newly created "Asymmetric Activity" reports (New Leads, Lead Conversions, Open Opportunities, Closed Opportunities) were showing no data despite contacts being present in the system.
Root Cause
Reports defaulted to "My Leads" scope, which filtered out all records not owned by the running user.
Fix
Report scope changed to "Organization" — data populated correctly after the change.
Current Report Set (ABM Reports folder)
| Report | Notes |
|---|---|
| New Leads | Filters on Lead Source = Asymmetric |
| Lead Conversions | Tracks lead-to-contact conversion |
| Open Opportunities | No opportunities yet as of this call |
| Closed Opportunities | No opportunities yet as of this call |
Action Items
- [ ] Mark: Monitor reports and dashboard over the following days to confirm correct data population and backfill completion
4. Secondary Contact Nurture Drip
Requirement
PaperTube's ABM research docs contain both primary contacts (already enrolled in the personalized ABM sequence) and secondary contacts. The client wants secondary contacts moved into a more generic, automated nurture drip via Account Engagement.
Account Engagement Campaigns (5 industry buckets)
| Campaign | Status |
|---|---|
| Premium Food & Beverage | Engagement Studio sequences loaded; not yet started |
| Supplements & Wellness | Engagement Studio sequences loaded; not yet started |
| Premium Lifestyle | Engagement Studio sequences loaded; not yet started |
| Beauty & Personal Care | Engagement Studio sequences loaded; not yet started |
| Agriculture | Engagement Studio sequences loaded; not yet started |
Email templates are complete. Contacts need to be parsed from the research docs, categorized by industry, and loaded into Salesforce before the sequences can be started.
Division of Work
- Mark: Parse secondary contacts from ABM research docs → load into Salesforce → assign to correct Engagement Studio sequence by industry
- Karly: Spot-check email templates in each campaign to confirm they are ready before Mark loads contacts
Action Items
- [ ] Karly: Spot-check nurture email templates across all 5 Account Engagement campaigns
- [ ] Mark: Parse secondary contacts from research docs and load into Engagement Studio sequences (pending Karly's template sign-off)
Key Decisions
| Decision | Rationale |
|---|---|
| Notify on any link click (not just Calendly) | Any link click signals meaningful intent; client wants to know immediately |
| 3-open threshold within 60 days for open-based alerts | Balances signal quality vs. noise; single opens may be incidental |
| Use Apex + Supabase for ABM sends, Account Engagement for bulk nurture | Apex allows per-contact custom email content from a database; Account Engagement cannot replicate this for personalized sequences |
| Bot-click filtering (discard clicks < ~15 seconds post-delivery) | Prevents false positives from corporate email security scanners, as observed with Aviary |
Related Articles
- [2]
- [3]
- [4]