Website visitor followup
Skill First-Touch-Inc/firsttouch-agent-skill-packs/plugins/revops-pack/skills/website-visitor-followup
FirstTouch Agent Skill Packs for Claude, Cursor, Windsurf, ChatGPT, and MCP-compatible agents
npx -y skills add First-Touch-Inc/firsttouch-agent-skill-packs --skill website-visitor-followupAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Turn website-visitor intent into LinkedIn outreach by using identified-visitor data or HubSpot website-visitor signals, checking connection status, drafting a lightweight message, and gating execution for approval. Use when the user wants to act on website visitors, use visitor-identification tools like RB2B with FirstTouch, or add social touches to pricing-page and high-intent web activity.
SKILL.md
5.9 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
Website Visitor Follow-Up
No-source note: If the workspace has no HubSpot tracking, RB2B/list source, or visitor export, skip this play and use this pack's persona AI SDR play instead.
Solo/default path: a single owner can run this from an approved visitor/source list and approve every touch themselves. If you later run it with a team, add owner-based routing, per-seat cap sharing, approval review, and FirstTouch/HubSpot logging checks.
Outcome: Convert high-intent website visits into social touches while the account is actively researching.
First-run onboarding gate
Before running this skill for the first time in a workspace, load ../../references/onboarding.md and complete the onboarding questions. Do not proceed until you know: LinkedIn account type (free/basic = no connection notes; recommend 10 connection requests/day and never exceed the FirstTouch max of 20/day; Sales Navigator/Premium = connection notes available; recommend 20 connection requests/day and never exceed the FirstTouch max of 30/day), HubSpot access (MCP, service key/private app token, HubSpot list only, or none), and which play the user wants to run. Recommend high-intent plays before outbound to keep the LinkedIn account healthy. If HubSpot is unavailable, do not run HubSpot-specific steps unless the user provides a HubSpot list FirstTouch can access.
When to use
- a de-anon tool identifies a target account/contact on key pages
- HubSpot website activity shows pricing / demo / product-page interest
- the user says "work website visitors"
Inputs
- signal source: HubSpot's native website tracking (default) OR a de-anon platform like RB2B (recommended if native HubSpot web-visit volume is too low to be useful)
- page threshold: which pages count (pricing, demo, product, integrations, etc.)
- identity confidence: known contact vs likely account only
Step-by-step
Before drafting or queueing any contact, run Gate 0 suppression/DNC from ../../references/safety-governance.md. Suppressed, unsubscribed, opted-out, or do-not-contact records are skipped and logged.
1. Pull visitor signals
This play requires a website visitor signal source. If neither HubSpot tracking nor an RB2B/list source exists, stop and say the website-visitor play is unavailable; offer to run the persona AI SDR recipe separately using ICP filters instead.
Get recent high-intent visits with page path, timestamp, company/contact match confidence, and any associated HubSpot owner. Two paths to the data:
- HubSpot native tracking pixel (default) - HubSpot logs known-contact page activity automatically. Sufficient for most accounts with steady inbound.
- RB2B (or similar de-anon tool) - recommended when HubSpot-native web-visit volume is low or you need company-level identification for anonymous visitors. RB2B pushes identified visitors to a HubSpot list (or Slack), which FirstTouch then picks up. Wire RB2B → HubSpot list → FirstTouch picks up from the list.
- Either way: the play then runs identically - check connection status, draft, gate for approval.
2. Decide contact-level vs account-level motion
- Known contact identified → work contact directly
- Only company known → use the target personas and available FirstTouch/HubSpot contact data to identify likely stakeholders at the account
3. Check connection status + routing
- connected? yes/no
- owner assigned? yes/no
- recently contacted? yes/no
4. Draft the touch (load firsttouch-messaging)
Use the website visit as a soft signal - never sound creepy.
Do not say: "I saw you were on our pricing page at 2:14pm."
Instead, abstract the signal:
- "Looks like {company} may be evaluating options around {category}."
- "Seems like this might be live on your side right now."
Keep it light, conversational, and 2 sentences max.
5. Present for approval
Show the visitor signal, confidence level, target contact, and draft.
6. Execute + log
On approval per row:
- before creating any one-contact LinkedIn action, run
get_dynamic_action_guide, then calladd_dynamic_actionin the supported order - if a LinkedIn message should only send after a connection request is accepted, append it to the
connection_acceptedbranch rather than queueing it as an immediate message - send via FirstTouch
- log to HubSpot and tag
website_visitor_followupwhen the connected FirstTouch-HubSpot integration supports it; if the source is RB2B/import without supported HubSpot logging, log the execution record in FirstTouch and state that CRM timeline logging was skipped.
7. Track
Measure reply and meeting rate by page type and signal confidence.
Output
- high-intent visitor queue
- drafted messages, gated for approval
- send + log confirmation
- visitor tags for attribution
Pitfalls
- being too explicit about the visit (comes off creepy)
- acting on low-confidence identity matches as if they are certain
- hitting visitors too late after the signal cools down
Reference
- Safety:
../../references/safety-governance.md - Messaging:
../../references/messaging-framework.md - If only company is known, use target personas and available FirstTouch/HubSpot contact data to select likely stakeholders.
Gives 0 of the 12 instructions most sales crm skills give in ~1.2k tokens
Counted across 361 of the 361 authors here whose files we hold, read 2026-08-06
- Read product marketing context before writing if it existsin 22 of 361, across 14 files
- keep the ask low-frictionin 16 of 361, across 7 files
- Call RUBE_SEARCH_TOOLS firstin 15 of 361, across 5 files
- personalize every outbound messagein 13 of 361, across 4 files
- confirm connection status is activein 13 of 361, across 4 files
- Keep forwardable blurbs under 100 wordsin 13 of 361, across 4 files
- State if personalization context is missingin 13 of 361, across 4 files
- Cut any sentence that does not drive a replyin 13 of 361, across 4 files
- Use proof instead of adjectivesin 12 of 361, across 3 files
- Use a single, low-friction call to actionin 12 of 361, across 4 files
- Calibrate tone to the specific audiencein 12 of 361, across 3 files
- Make each follow-up email add new valuein 12 of 361, across 6 files
Said here and by no other author read
- track touch-to-meeting and reply rates
- run suppression checks before drafting
- pull recent high-intent visitor signals
- check connection status and routing
- keep drafted messages under two sentences
- present drafts for approval
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.