Activate more users, and keep more accounts growing.
Signals tells your product, CRM and support desk what each user and account is doing right now, so they respond while the user is still in the product.
What product-led software teams can do with it.
One SDK, one read call.
We host it, or it runs in your own AWS or GCP account. Signals collects events with its own SDKs, updates what it knows within a second of each event, and answers a read in 6ms at the median and 10ms at p95, in-region.
const user = await signals.getServiceAttributes({
name: "in_app",
attribute_key: "user_id",
identifier: userId,
});
// { steps_completed_this_session: 3, plan_limit_hit: true, pricing_page_views_this_week: 3, teammates_invited: 2 }What product-led teams ask first.
Does Signals replace our product analytics tool or our CRM?
No. Keep both. Your product analytics tool is still where you go to understand what happened. Signals feeds your product, your CRM and your support desk with what a user or account is doing right now, so they can act in the session.
Is this a data platform project?
Adding the SDK starts collection, so there is no event pipeline to build first. Someone on the product team defines what they want to know about a user or an account, your product reads it with one call, and a coding agent can do most of the wiring from the docs.
Can we key on an account or a workspace rather than a user?
Yes. You choose what Signals keeps a record for, whether that is a user, an account, a workspace, a project, or all of them at once. A plan limit or a seat count belongs to the account, a stuck onboarding step belongs to the user, and your product and CRM can read either.
Where does our customers' product data live?
We host it, or it runs in your own AWS or GCP account with the same architecture, so your users' activity stays in your cloud. Snowplow is ISO 27001 certified, and deployments run under GDPR and CCPA.
What if a next-day list of product-qualified leads is fine for us?
Then a warehouse tool is cheaper, and we would say so. Signals earns its place when the response has to happen in the session, such as the next onboarding step, a seller's call while the buyer is on the pricing page, or a save offer while the cancel page is open.
Try it on your own site.
Add the SDK, define one thing you want to know about a visitor, and watch it update while you click around. The free tier runs on the real engine: no card, no sales call.