AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Hubspot Signal To Linkedin Touch

skill-first-touch-inc-firsttouch-agent-skill-packs-hubspot-signal-to-linkedin-touch · by First-Touch-Inc

Turn a HubSpot CRM event - lifecycle stage change, deal stage movement, form fill, list addition - into a timely, personalized LinkedIn touch. Reads the signal from HubSpot, qualifies the contact, drafts outreach via FirstTouch, gates for approval, and logs back to HubSpot when the connected FirstTouch-HubSpot integration supports it. Use when the user wants to act on HubSpot activity with Linked…

No reviews yet
0 installs
40 views
0.0% view→install

Install

$ agentstack add skill-first-touch-inc-firsttouch-agent-skill-packs-hubspot-signal-to-linkedin-touch

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-first-touch-inc-firsttouch-agent-skill-packs-hubspot-signal-to-linkedin-touch)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Hubspot Signal To Linkedin Touch? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Access note: this is a HubSpot-dependent motion. Skip it until HubSpot/CRM data or a FirstTouch-accessible HubSpot list exists.

HubSpot Signal → LinkedIn Touch

Outcome: Make LinkedIn outreach event-driven - every touch is triggered by a real CRM event, not a cadence timer.

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

  • "When a contact hits MQL, reach out on LinkedIn"
  • "If a deal moves to 'Decision Maker Buy-In,' send a social touch"
  • "Anyone who filled out the pricing form this week, connect on LinkedIn"
  • Building event-driven outbound from HubSpot lists, lifecycle fields, forms, or contact-based workflow outputs

Inputs

  • Signal definition: which HubSpot event triggers the play (lifecycle change / deal stage / form / list membership / inactivity)
  • Audience scope: which contacts/companies the trigger applies to
  • Cooldown: min days between touches for a contact (default: 14)

Step-by-step

1. Define & query the signal (HubSpot MCP)

Pull contacts matching the trigger event within the window. For AE use, a manually filtered HubSpot contact list is enough for a one-time run today; RevOps/admin workflow setup is needed only for recurring automation. FirstTouch supports HubSpot workflow actions that trigger FirstTouch flows; if the desired trigger needs a HubSpot workflow, confirm the customer portal exposes the needed FirstTouch action card and permissions, then use ../../references/hubspot-setup.md to produce the contact-based workflow/list criteria for RevOps/admin. Do not claim the agent created a HubSpot workflow unless the connected portal confirms that capability. For each, capture: name, title, company, owner, lifecycle/deal stage, the triggering event + timestamp, and recent timeline activity.

2. Qualify

For each triggered contact:

  • Run Gate 0 suppression/DNC check from ../../references/safety-governance.md; if suppressed or unsubscribed → skip
  • Has an owner? → if no, route to assignment, do not send (Gate 2)
  • Within cooldown? → skip
  • Already in active sequence / recently contacted? → skip (Gate 1)
  • LinkedIn URL present? → if no, flag for enrichment

3. Map signal → message type

The HubSpot event determines the message: | Signal | Message type | Why | |--------|-------------|-----| | New MQL / form fill | Connection request | Start relationship | | Lifecycle up (SQL→Opportunity) | Opener to connected | Warm the opp | | Meeting logged on an associated deal | Connection request to unconnected stakeholders, or opener/value touch to connected stakeholders | Multi-thread the account after a real meeting signal. Configure as a contact-based HubSpot list/workflow, for example: contacts at companies where an associated deal has a meeting logged in the last 7 days. | | Deal moved forward | Value touch to stakeholders | Reinforce | | Open deal not Closed Won/Lost and no engagement for 60+ days | Re-engage | Use a contact-based stalled-deal list/workflow-output pattern. If no stalled-deal list is provided, ask RevOps/admin to supply the qualifying HubSpot list or setup steps. Deal triggers are unsupported. | | Closed Lost deal selected for win-back | Connection request or re-engage | Use a contact-based list of contacts associated to Closed Lost deals; keep this separate from stalled open-deal reactivation. | | Re-engaged after silence | Opener | Context renewed |

4. Draft (load firsttouch-messaging)

The signal is the HubSpot event itself - e.g. "saw you just downloaded the outbound playbook." Draft accordingly. Run the quality gate.

5. Present for approval (Gate 4)

Table of: contact, triggering event, owner, message type, draft. All marked awaiting approval.

6. Execute + log (FirstTouch MCP)

On approval per row:

  • before creating any one-contact LinkedIn action, run get_dynamic_action_guide, then call add_dynamic_action in the supported order
  • if a LinkedIn message should only send after a connection request is accepted, append it to the connection_accepted branch rather than queueing it as an immediate message
  • send via FirstTouch
  • log to the HubSpot timeline when the connected FirstTouch-HubSpot integration supports it; otherwise log the execution record in FirstTouch and state CRM logging was skipped
  • tag with signal_triggered_touch + the signal type for attribution when tagging is available.

7. Track

Cohort tagged by signal type so the team can review which signals produce replies, meetings, and pipeline. When FirstTouch team metrics are available, pull metrics filtered by this flow/tag to report replies, meetings, and opportunities.

Output

  • Triggered-contact list with the HubSpot event per row
  • Drafted, gated messages
  • Send + log confirmation
  • Signal-tagged cohort for attribution

Examples

Signal: Contact filled "Request a demo" form, owner = AE, not yet connected on LinkedIn. Draft (connection request): "Hi Devon, saw you're exploring FirstTouch after the demo request. Connecting so I can share setup tips as you evaluate."

Closed Lost win-back signal: Contact is associated to a Closed Lost deal selected for a fresh reengagement motion. Draft (re-engage opener): "Hi Dana, noticed your team previously evaluated FirstTouch and wanted to share what changed since then. Worth comparing notes if social attribution is worth revisiting."

Why this play wins

Static sequences message on a timer. This play messages on a real event - dramatically higher relevance and reply rate, and fully attributable in HubSpot.

Pitfalls

  • Triggering on too-broad events - "any lifecycle change" floods the queue. Scope triggers tightly.
  • Ignoring owner - messaging a contact another AE owns causes internal friction. Always check owner (Gate 2).
  • No cooldown - a contact bouncing stages gets spammed. Enforce cooldown.

Reference

  • HubSpot setup reference: [../../references/hubspot-setup.md](../../references/hubspot-setup.md)
  • Messaging: [../../references/messaging-framework.md](../../references/messaging-framework.md)
  • Safety gates: [../../references/safety-governance.md](../../references/safety-governance.md)

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.