Personalize on what the customer is doing right now, not last night.
Signals computes live attributes from what your customer is doing and serves them to whatever you use to act, in 6ms, while they are still on the page.
- 6ms p50 serve, in-region
- <1s event to attribute current
- Free tier, no card
Below is your own visit to this page, computed by Signals as you read.
Signals, about you
connectingSee live events firing as you browse this page on the left; what Signals computed about you on the right, refreshed every few seconds.
Add the Signals MCP server to Claude Code, Cursor or any MCP client, then run this. The agent adds the SDK, defines the attribute and wires the read into your own app.
$ npx plugins add snowplow/skills
> Use the Snowplow MCP server and Signals skill, then help me plan and implement a use case. Make sure everything is tested and works as intended.
trackPageView(); // browser tracker, already on this pageAttribute(name="pages_last_5_min", events=["page_view"], aggregation="category_count", property="page_urlpath", period=timedelta(minutes=5))
await signals.getServiceAttributes({ name: "signals_site_session_service", attribute_key: "domain_sessionid", identifier: "…", // your session id, once set });
Your ranking is smart. It just doesn't know what happened thirty seconds ago.
Segments from last night's batch
The customer changed their mind three pages ago. Your model is scoring for who they were yesterday.
sessions_last_7d = 4Attributes computed on the live stream
Describe once what you want to know about a customer. Signals recomputes it on every event and serves it to your app mid-request.
showing_price_hesitation = trueYour product responds in the same session
Value options move up. The bundle appears. The nudge lands while they are still deciding.
same page, same sessionWhat your product can do once it knows what is happening now.
None of these work from a segment computed overnight. By the time the batch lands, the customer has decided.
Act on doubt before they leave
The reassurance, the bundle, the cheaper option appears while the basket is still open, rather than in tomorrow morning's abandonment email after they bought elsewhere.
session conversion · basket abandonmentDiscount only the people who need it
When hesitation is visible in the moment, the discount goes to the people about to leave rather than to everyone in a segment, including the ones who were going to buy anyway.
discount rate · margin per orderSupport that already knows what happened
Your agent, human or AI, opens the conversation already holding the last four minutes: three failed searches, stuck on checkout. The first three questions never get asked.
handle time · deflection rateFind out today whether it worked
When the attribute behind a test updates in the session, the result lands in today's numbers rather than after tomorrow's batch, so a losing variant costs you an afternoon instead of a week.
experiment velocity · time to read a resultOne definition. Live and against history.
The same attribute runs on a streaming engine for now and a batch engine for warehouse history, so what your app reads in production matches what data science trained on.
- 01Collect. Add a Snowplow SDK to your application and behavioral events start flowing in.
- 02Define. Say what you want to know about the customer, in the console or in code.
- 03Serve. An event updates its attributes in <1s, and your app reads them at 6ms p50, on every request.
Before you sign up
Do I need an event stream already?
No. Collection is part of Signals. Add a Snowplow SDK to your web, mobile or server application and events start flowing in, validated against your schemas on the way. If you already run Snowplow, Signals reads the pipeline you have.
Does it replace what I use to rank?
No. Signals does the knowing. Your ranking model, rules engine or CDP keeps doing the acting, with inputs that are seconds old instead of a day old.
Where does it run?
Managed SaaS, or a private deployment in your own AWS or GCP account. Identical architecture either way, so what you evaluate is what you run.
What does the free tier include?
The full product against your own traffic, up to 5 million events a month, with no card and no sales call. You should see an attribute updating against your own traffic in the first session.
Watch an attribute change on your own traffic today.
Add the SDK, define one attribute, then click around your own product and watch it change, the same way the panel at the top of this page changed for you.
npx plugins add snowplow/skills