# Event-Based Prospecting Skill

## Purpose
Generate targeted prospect lists and outreach for upcoming industry events. Combines pre-registration lists, metro-area ICP accounts, Top 25 cross-referencing, ZoomInfo enrichment, graph intelligence, and past attendee data to maximize event ROI.

## Invocation
```
/event-prospect [REP_NAME] [EVENT_NAME]
```

**Examples:**
- `/event-prospect Andrew Adobe Summit`
- `/event-prospect Pat "Forrester B2B Summit"`
- `/event-prospect Sendu "Funnel to Fork"`

If no rep is specified, prompt for one. If no event is specified, show the upcoming event list and prompt.

## Team Roster

| Rep | Full Name | Role |
|-----|-----------|------|
| Anna | Anna Ayrapetyan | AE |
| Pat | Pat Oswald | AE |
| Andrew | Andrew Young | AE |
| Sendu | Sendu Bhakthakumaran | AE |
| Aimee | Aimee Smith | AE |
| Tyler | Tyler Ray | AE |
| Mike | Mike Chen | AE |

Name matching: Accept first name, last name, or full name (case-insensitive). If the rep is not on the list, the skill works for any rep with accounts in Salesforce.

## When to Run
- **2 weeks before any event:** Initial target list + outreach
- **1 week before:** Final push + comp pass offers
- **Day after event:** Post-event follow-up sequence (see Step 8)

## Required Inputs
When invoking, provide:
- **Rep name** (required)
- **Event name** (required)
- **Event dates** (auto-detected from event lookup, or provide manually)
- **Event city/metro area** (auto-detected from event lookup, or provide manually)
- **LeanData presence** (booth, speaking session, dinner, comp passes available?)
- **Pre-registration / attendee list** (if available from Marketing)

## Event Lookup (Dynamic)

Resolve the event using this priority order:

**1. CSV File (if provided by Marketing):**
Check for event-specific CSV files in `agents/outputs/skill-runs/event-prospect/` or as provided by the user. These may contain pre-reg lists, attendee lists, or account targets.

**2. Salesforce Campaign:**
```sql
SELECT Id, Name, StartDate, EndDate, City__c, State__c, Description,
  (SELECT ContactId, Contact.Name, Contact.Account.Name, Status
   FROM CampaignMembers WHERE Status != 'Removed')
FROM Campaign
WHERE Name LIKE '%[event_name]%'
  AND StartDate >= TODAY
ORDER BY StartDate ASC
LIMIT 1
```

If a Campaign is found, use its members as the pre-registration list and its dates/location as the event details.

**3. Hardcoded Event Reference (fallback):**

| Event | Dates | Location | Metro Cities | Pre-Event Outreach Start |
|-------|-------|----------|-------------|-------------------------|
| Saleslove Palo Alto | Mar 10, 2026 | Palo Alto, CA | Palo Alto, Mountain View, Sunnyvale, San Jose, Santa Clara, Menlo Park, Redwood City, San Mateo, Cupertino, Los Altos | Feb 24 |
| Saleslove Denver | Mar 12, 2026 | Denver, CO | Denver, Aurora, Lakewood, Arvada, Westminster, Thornton, Boulder, Broomfield, Centennial, Englewood, Littleton | Feb 26 |
| Funnel to Fork w/ Demandbase | Mar 26, 2026 | New York, NY | New York, Manhattan, Brooklyn, Jersey City, Hoboken, Newark, Stamford, White Plains | Mar 12 |
| Adobe Summit | Apr 19-22, 2026 | Las Vegas, NV | Las Vegas, Henderson, North Las Vegas, Paradise, Spring Valley, Enterprise, Summerlin | Apr 7 |
| Forrester B2B Summit | Apr 26-29, 2026 | Phoenix, AZ | Phoenix, Scottsdale, Tempe, Mesa, Chandler, Gilbert, Glendale, Peoria | Apr 14 |
| Gartner CSO & Sales Leader | May 19-21, 2026 | Las Vegas, NV | Las Vegas, Henderson, North Las Vegas, Paradise, Spring Valley, Enterprise, Summerlin | May 5 |

If the event is not found in any source, prompt the user for dates, location, and metro cities.

**Virtual/Hybrid Event Handling:**
If the event is virtual or hybrid:
- Skip the metro-area ICP sweep (Step 2) for virtual attendees
- Focus entirely on pre-registration list cross-referencing (Step 1)
- Adjust outreach messaging: replace "grab coffee at the event" with "connect during the virtual session" or "catch up after [specific session name]"
- For hybrid: run both paths -- metro contacts get in-person outreach, remote contacts get virtual outreach

## Execution Steps

### Step 1: Pull the Pre-Registration List and Cross-Reference

Check with Marketing for:
- Pre-reg attendee list (company + contact name)
- Sponsor/exhibitor list
- Past year's attendee list (if available)

**Cross-reference against the rep's Top 25 accounts:**
Load the rep's Top 25 from:
```
./data/reports/mid-market/all_reps_top_25_accounts.csv
```

Flag any pre-registered accounts that appear on the rep's Top 25 -- these are highest priority and should be Tier 1 regardless of other scoring.

**Cross-reference against Salesforce:**
```sql
SELECT Id, Name, NumberOfEmployees, Industry,
  accountBuyingStage6sense__c, accountIntentScore6sense__c,
  OwnerId, Owner.Name, Competitor_Installs_Picklist__c,
  Crossbeam_All_Partner_Names__c
FROM Account
WHERE Name IN ([pre-reg company names])
  AND NumberOfEmployees >= 500
  AND NumberOfEmployees <= 2500
```

Flag: Which pre-reg accounts are ICP? Which already have active opps (exclude)? Which are net-new? Which are on the rep's Top 25?

### Step 2: Metro-Area ICP Sweep
Pull ICP accounts with contacts in the event metro area who could potentially attend even if not pre-registered:

```sql
SELECT
  c.AccountId, c.Account.Name, c.Name, c.Title, c.Email, c.Phone,
  c.MailingCity, c.MailingState,
  c.Account.NumberOfEmployees, c.Account.accountBuyingStage6sense__c,
  c.Account.accountIntentScore6sense__c
FROM Contact c
WHERE c.Account.NumberOfEmployees >= 500
  AND c.Account.NumberOfEmployees <= 2500
  AND c.Account.Type != 'Customer'
  AND c.MailingCity IN ([METRO_CITIES])
  AND (c.Title LIKE '%Rev%Ops%' OR c.Title LIKE '%Revenue%'
       OR c.Title LIKE '%Sales Ops%' OR c.Title LIKE '%Sales%'
       OR c.Title LIKE '%Marketing Ops%' OR c.Title LIKE '%Demand%'
       OR c.Title LIKE '%GTM%' OR c.Title LIKE '%Growth%'
       OR c.Title LIKE '%Director%' OR c.Title LIKE '%VP%'
       OR c.Title LIKE '%CRO%' OR c.Title LIKE '%Chief%')
ORDER BY c.Account.accountIntentScore6sense__c DESC NULLS LAST
```

Use the metro city list from the Event Lookup table above. If the event location is not in the table, build a reasonable metro list from the event city (10-15 mile radius, major suburbs).

### Step 3: Past Attendee Research
For recurring events (B2BMX, Adobe Summit, Forrester, SaaStr):
1. Check Salesforce Tasks/Events for references to the event name in prior years
2. Check sponsor/exhibitor lists from web (Wayback Machine if needed)
3. Companies that attended previously are more likely to attend again

### Step 4: ZoomInfo Enrichment

For Tier 1 and Tier 2 accounts where contact data is incomplete (missing email, phone, or key personas not found in Salesforce):

```
zoominfo_search_contacts(company="[account_name]", title="VP Revenue Operations")
zoominfo_search_contacts(company="[account_name]", title="Director Sales Operations")
```

```
zoominfo_enrich_contacts(contact_ids=[contact_ids])
```

Use ZoomInfo to:
- Fill in missing direct phone numbers and email addresses
- Identify additional personas at the account who should be targeted
- Verify titles and current employment (especially for accounts with stale Salesforce data)

### Step 5: Graph Intelligence and Luci Enrichment

**Champion Movers:**
```
graph_champion_movers(account_ids=[target_account_ids])
```
If a former LeanData champion has moved to a target event account, flag for highest-priority outreach. Messaging: "Congrats on the new role -- would love to catch up at [EVENT]."

**Competitive Intelligence:**
```
graph_competitive_intel(account_ids=[target_account_ids])
```
For accounts with known competitor installs, pull win/loss rates to inform messaging confidence and angle.

**Customer Voice:**
```
luci_search_customer_voice(query="[industry] [pain_keyword] event")
```
Pull verbatim customer quotes that can be woven into event outreach for credibility.

### Step 6: Score and Prioritize

**Tier 1 -- Confirmed + ICP** (highest priority)
- On the pre-reg list AND matches ICP criteria
- OR on rep's Top 25 AND in event metro area
- 6sense Consideration or higher
- Director+ level contact confirmed attending

**Tier 2 -- Likely Attending + ICP**
- In event metro area with ICP fit
- Attended in prior years
- 6sense showing any activity

**Tier 3 -- Sponsor/Exhibitor Targets**
- Companies sponsoring/exhibiting the event (they'll definitely be there)
- Match ICP criteria
- Good for "since we're both at [EVENT]" outreach

### Step 6b: Add Clari Pipeline Context

For all tiered accounts, check Clari for pipeline context:
```
clari_get_opportunities(account_ids=[tiered_account_ids])
```

Flag accounts with:
- Open opportunities (coordinate with opp owner before event outreach)
- Stalled deals (event is a re-engagement opportunity -- adjust messaging)
- Recently closed-lost (event is a chance to reconnect in person)

### Step 7: Generate Outreach

**Add UserEvidence proof points to all outreach.** Before generating messages, pull relevant proof points:

```
userevidence_search_assets(query="[account_industry] routing lead management")
userevidence_search_assets(query="[event_theme] ROI results")
```

Weave one proof point into each email and phone script. Keep it brief -- one stat or one customer name + result.

**Pre-Event Email (2 weeks out):**
- Subject: Reference the event by name
- Hook: "I noticed [Company] is [attending/exhibiting at] [EVENT]"
- Value: Brief LeanData relevance + proof point (NOT a pitch -- event context)
- CTA: "Can we grab 15 minutes at the event?" or "Join us for [dinner/session]"
- If comp passes available: "I have a complimentary pass if you're interested"

**Pre-Event Email (1 week out):**
- Shorter, more urgent
- Reference specific sessions or dinners
- CTA: Specific time slot

**Post-Event Follow-Up:** See Step 8 for detailed sequence.

**LinkedIn (pre-event):**
- Connection request: "Looks like we'll both be at [EVENT] next week"
- Keep it social, not salesy

### Step 8: Post-Event Follow-Up Sequence

Auto-detect whether the event has passed by comparing current date to event dates. If the event is over, switch to post-event mode automatically.

**Day 1 (day after event ends):**
- **Met in person:** Personalized follow-up referencing the specific conversation, what was discussed, and a clear next step.
```
Subject: Great meeting you at [EVENT]

[First Name],

Really enjoyed our conversation at [EVENT] about [specific topic discussed].
[One sentence referencing something they said or a shared observation from the event.]

As I mentioned, [one proof point -- specific customer result relevant to their pain].
Would [specific day/time] work for a quick call to dig into this?

[Rep Name]
```

- **Didn't connect in person:** Lighter touch, reference the event as shared context.
```
Subject: [EVENT] follow-up

[First Name],

Sorry we didn't get to connect at [EVENT] -- I know those events can be a whirlwind.

I was there talking with teams about [relevant topic], and your company came to mind
because [one specific signal or reason]. [One proof point.]

Would a quick call this week make sense?

[Rep Name]
```

**Day 4:**
- **If no reply to Day 1:** Send a shorter follow-up with a different angle or proof point. Reference a specific session, keynote, or theme from the event as a conversation hook.
- **If replied but no meeting set:** Send calendar link with 2-3 specific time options.

**Day 8:**
- **Final follow-up:** Brief "closing the loop" message. Include one compelling proof point not yet shared. Offer to send a relevant resource (case study, ROI calculator) as a value-add even if they're not ready to meet.
- **If engaged:** Push for commitment with a specific date.

### Step 9: Output Format
```
## Event Prospecting Plan: [EVENT NAME]
**Rep:** [Rep Name]
**Generated:** [YYYY-MM-DD]
**Dates:** [dates]
**Location:** [city]
**Mode:** [In-Person / Virtual / Hybrid]
**LeanData Presence:** [booth/speaking/dinner details]
**Comp Passes Available:** [yes/no, how many]
**Days Until Event:** [N] (or "Event completed [date] -- post-event mode")

### Tier 1: Confirmed + ICP ([count] accounts)
| # | Account | Contact | Title | Pre-Reg? | Top 25? | 6sense Stage | Pipeline Context | Assigned To |
|---|---------|---------|-------|----------|---------|-------------|-----------------|-------------|

[For each Tier 1 account:]
#### [Account Name] -- [Contact Name], [Title]
**Signals:** [6sense stage, intent score, champion move, competitor install]
**Proof Point:** [UserEvidence match]
**Pipeline:** [Clari context if any]

**Pre-event email:**
Subject: [subject]
[body with proof point woven in]

**Phone script:**
[script]

**LinkedIn:** [message]

---

### Tier 2: Likely Attending ([count] accounts)
[Same format]

### Tier 3: Sponsor/Exhibitor Targets ([count] accounts)
[Same format]

### Post-Event Follow-Up Templates
**Day 1 -- Met in person:** [template]
**Day 1 -- Didn't connect:** [template]
**Day 4 -- No reply follow-up:** [template]
**Day 8 -- Final follow-up:** [template]

### Key Logistics
- Exec Dinner: [details, who to invite, Director+ only]
- Speaking Session: [time, invite prospects to attend]
- Booth Meetings: [BookIt link]
- Comp Passes: [how to offer]

### Quick Stats
- Total contacts: [X]
- From Top 25: [X]
- Tier 1: [X]
- Tier 2: [X]
- Tier 3: [X]
- ZoomInfo enriched: [X]
- With champion moves: [X]
- With competitor installs: [X]
```

## Save Location

Save all generated plans to:
```
agents/outputs/skill-runs/event-prospect/[YYYY-MM-DD]-[rep]-[event-slug].md
```

Example: `agents/outputs/skill-runs/event-prospect/2026-04-07-andrew-adobe-summit.md`

## Failure Modes

| Failure Mode | Signal | Recovery Action |
|--------------|--------|-----------------|
| **No rep found** | User query returns empty | Ask for exact name. List team members as options. |
| **Event not found** | Not in CSV, Campaign, or hardcoded list | Prompt user for event name, dates, location, and metro cities. Proceed with manual input. |
| **No pre-reg list available** | Marketing hasn't provided | Proceed with metro-area sweep only. Note that Tier 1 accuracy is reduced without pre-reg data. |
| **No metro contacts found** | SFDC query returns empty | Widen metro radius. If still empty, the event may not have geographic overlap with the rep's territory -- suggest focusing on pre-reg list only or reassigning to a different rep. |
| **ZoomInfo quota exceeded** | API returns rate limit | Proceed without enrichment. Note which accounts have incomplete contact data for manual research. |
| **No Top 25 CSV found** | File missing or rep not in CSV | Proceed without Top 25 cross-reference. Use Salesforce account ownership as the primary account list. |
| **Event is virtual** | No physical location | Skip metro sweep. Focus on pre-reg list and Salesforce account universe. Adjust all messaging for virtual context. |
| **Event has passed** | Current date > event end date | Auto-switch to post-event follow-up mode (Step 8). |

## Skill Chaining

| Situation | Chain To | Purpose |
|-----------|----------|---------|
| Want a full account brief before reaching out | `/account-research-hub [Account]` | Deep account research for Tier 1 targets |
| Post-event meeting booked -- qualify the deal | `/deal-review [Opp]` | Qualification and next steps |
| Contact is at a competitive account | `/competitive-intel [Account]` | Battle card and displacement messaging |
| Need weekly follow-up sequence after event | `/pipe-gen [Rep]` | Weekly prospecting plan incorporating event context |
| Building Wednesday prospecting block | Use event context in `/pipe-gen` | Event outreach fits naturally into Wednesday execution calendar |
| B2BMX specifically (archived) | `/b2bmx [Rep]` | Preserved as template reference -- use this skill instead for future events |

## Integration with Marketing
- **Pre-reg lists:** Marketing provides these. Check the Sales channel or ask Laura Givens.
- **Outreach sequences:** Marketing has pre-built Outreach sequences for major events. Use the provided snippets as starting points, personalize.
- **Exec dinner invitations:** Director+ only. Add confirmed guests to the Event Guide dinner RSVP tab.
- **Comp passes:** Limited quantity. Use for Tier 1 targets only. Coordinate with Marketing.
