- Sales
- v1.0.0
- signals
Visitor radar
Acts on content or website engagement from prospects. Qualifies the person, identifies the engagement hook, and drafts contextual follow-up based on their interest.
SKILL.md
Instructions
Setup state. Not yet configured for this org. Load the Setup sub-page and walk the user through wiring the visitor-radar trigger (WEBSITE_VISIT, webinar / video WEBHOOK, or the CRM's form-fill workflow) with the right page / form / engagement filters, and wire the follow-up sequence, before running this play. (After setup is performed, rewrite this paragraph via swan-update-skill to describe the current state — trigger type chosen, monitored pages / forms / events with thresholds, exclusion filters, sequence wired, success metric, and last-refreshed date — so future runs see the current configuration without re-checking.)
When this fires
WEBSITE_VISIT (Swan-native website tracking), WEBHOOK (from a webinar / video / analytics platform), or the CRM's workflow trigger (if the CRM is wired to track form fills, list membership, or page visit thresholds — discover via swan-get-available-triggers). Payload includes: engager identity (email, LinkedIn, or anonymous company-level), content engaged with, engagement depth (time on page, completion %, multiple visits).
Step 1 — Filter for signal strength
Not all engagement converts. Tiered priority:
| Engagement | Signal strength |
|---|---|
| Pricing page > 60s, repeat visits | HIGH |
| Demo / sales page > 60s | HIGH |
| Gated asset download with title + company | HIGH |
| Webinar attended live | HIGH |
| Case study or comparison page visit | MEDIUM |
| Webinar registered but no-show | MEDIUM |
| Blog post read, no other activity | LOW |
| Anonymous company visit, no contact | LOW (act at account level) |
Skip LOW unless they're a known target account or multi-visit pattern emerges.
Step 2 — Resolve identity
If the trigger payload has an email, that's enough. If anonymous-company-only (from website tracking), use hubspot-search-objects to check whether any known contact at the company has had recent activity — that's probably who visited.
For form fills with email but no LinkedIn URL, swan-enrich-email to find the LinkedIn, then swan-enrich-contact for the full profile.
Step 3 — CRM context
hubspot-search-objects (companies, contacts, deals). Outcomes:
- Known prospect in active sequence → DON'T fire a new outreach; let the sequence breathe. Surface to the rep as engagement.
- Known prospect, no recent activity → re-engagement play
- Customer engaging with content → route to CSM as an expansion signal
- New unknown contact at known account → multi-thread opportunity
- Net new → cold play with the content as personalization
Step 4 — Match the content to the angle
The content they engaged with IS the angle. Don't pivot to a different topic.
- They read your "outbound playbook" → reach out about outbound scaling
- They watched the demo video → offer a live demo with a specific use case
- They downloaded the ROI calculator → offer to help model their numbers
- They attended a webinar on X → follow up with the same X story tailored to their company
Step 5 — Time the response
Speed correlates strongly with conversion on content engagement:
| Engagement type | Reach out within |
|---|---|
| Pricing page visit | 24 hours |
| Gated asset download | 24 hours |
| Webinar attended live | 24-48 hours |
| Multiple-content engagement burst (3+ in 7 days) | 24 hours |
| Single asset, low-signal | 3-5 days |
Step 6 — Draft the message
Template by content type:
Pricing page:
"Hi [name] — saw you spent time on our pricing page. Happy to walk through the right tier for [their stage] and answer any questions before you make a call. 20m?"
Gated asset:
"Hi [name] — appreciated you downloading [asset title]. Most teams who read it are working on [implied problem]. Curious — is that what's on your plate? Happy to share what's worked for [proof point]."
Webinar attendance:
"Hi [name] — thanks for joining [webinar topic]. The question that came up most was [specific question]. Curious how you're thinking about it at [their company]?"
Always: reference the specific content. Generic "thanks for visiting our site" is worse than not reaching out.
Step 7 — Channel and routing
For owned accounts: hubspot-create-task for the owner — let the rep act, not the system.
For unowned prospects (ICP-fit, no active sequence): hand off to reach-out or swan-build-sequence. Single-touch first; the engagement signal warrants a soft, not a 5-step cadence.
Step 8 — Log and learn
swan-update-company to tag the company with the engagement type. Over time, which content surfaces best-converting leads becomes obvious — feed that back into marketing.
Rules
- MUST reference the specific content engaged with. Generic outreach negates the signal's warmth.
- MUST act inside the time window for the engagement type. Pricing-page-visit replied to in week 2 is wasted.
- MUST check for active sequences before firing — don't spam someone the system is already messaging.
- NEVER pretend the engagement wasn't observed. If you're going to message them about the gated asset they just downloaded, be straightforward about it.
- NEVER pitch hard on the first touch. The engagement bought a conversation, not a demo booking.
- If the engager is anonymous and you can't resolve them, fire an account-level alert (
hubspot-create-taskon the company) rather than a cold individual outreach. - If a tool result is truncated, read from
files/tool-outputs/<toolName>_<callId>.jsoninswan-execute-code.
Tighten over time
After 10-20 fires, read recent reply-rate data via swan-search-sequences filtered to this play's executions. Identify which engagement types (pricing visits vs gated asset downloads vs webinar attendance) converted at higher rates. Recommend the user drop LOW-signal tiers from the trigger, raise minimum time-on-page, or restrict to specific high-converting pages before the next batch.
Files
2 files ship with this skill. They are installed beside the SKILL.md.
Visitor radar
Imported from the GTM Skills library by Swan (https://www.gtmskills.com), skills/ido-goldberg/visitor-radar
at https://github.com/swan-gtm/gtm-skills/commit/5d786aad0c7b2ca59b1abf1f601f9407ca261996. Written by Ido Goldberg (https://www.linkedin.com/in/ido-goldberg-ab1590b0/).
The skill is shared under the MIT License below; this notice must stay with any copy.
MIT License
Copyright (c) 2026 Swan
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.