TL;DR: Settings → Sources. Connect the inputs that feed your signals — LinkedIn accounts for keyword tracking, sequencer integrations for reply capture, the browser extension for ad-hoc tagging.
Browser extension
Install: Settings → Sources → Browser Extension → Install for Chrome / Firefox / Safari.
After install, the extension shows up as a chevron icon in your browser. Click on any LinkedIn profile, company page, or post → the extension panel slides in with:
- Add to Unstuck Engine — capture this person as a record
- Tag with custom signal — fire a custom signal on the visited page (pick from your declared custom signal types)
- Find in workspace — opens the existing Unstuck record if this person / company is already captured
- Enrich — runs the waterfall on the visible person
The extension uses the same workspace credentials as the web app — it auto-detects your login session via shared cookies.
LinkedIn accounts
For 2nd-party signals that read LinkedIn (Keywords, Authors, Post Engagers, Profile Intent, Job Changes, Hiring Intent), an authenticated LinkedIn account is needed.
Settings → Sources → LinkedIn → + Add account:
- Pick the LinkedIn account type — personal (standard LinkedIn) or Sales Navigator (preferred for higher-volume / advanced search)
- Authorize via OAuth-like flow
- Set the account's signal scope — which signals can use this account for scraping
Multiple LinkedIn accounts are common — one for your CEO's network (high-trust connections), one for an SDR's Sales Nav license (broader search).
CRM integrations
For 1st-party signal capture (Replies, CRM stage changes):
- HubSpot — already connected as a destination → also enables
RepliesandCRM Stage Changesignals - Salesforce — same pattern
- Pipedrive — separate connector at
Settings → Sources → Pipedrive
Sequencer integrations
For Replies signal:
- Smartlead — API key + select which campaigns to listen to
- Apollo — API key + select which sequences
- Salesloft — OAuth
- HubSpot Sequences — auto-included with HubSpot
When a reply comes into your sequencer, the integration POSTs the reply event into Unstuck Engine. The Replies signal captures it; if autoqualify is on, the record qualifies (or re-qualifies with updated engagement).
Webhook source
For anything else — your product's events, a custom integration, an AI agent's discoveries:
Settings → Sources → Webhook → + New endpoint:
- Unstuck Engine generates a unique webhook URL for your workspace
- Configure your sender to POST signal events to that URL
- Set authentication (header token)
- Pick which signal types this webhook can fire
The Signals API (POST /signals) is a related but different surface — the webhook source is for inbound events with a specific URL per workspace; the Signals API is for bidirectional REST usage with API keys.
Source health
Each connected source has a status:
- 🟢 Connected, capturing
- 🟡 Connected, no recent captures (>7 days)
- 🔴 Connection error (token expired, auth failure, rate limit)
Click into any source for the last 100 events, error counts, and last-error message. Re-authenticate from there if needed.
Removing a source
Settings → Sources → row → Disconnect. Stops the source from feeding signals. Any captured records remain — only the live feed pauses.
Signals that depend on the disconnected source go into Needs source status until reconnected.