Introduction to Snowplow Signals
Snowplow Signals computes user attributes from your data. You can retrieve these attributes in your applications to take real-time actions. Signals can also send automated triggers to your applications based on calculated attributes.
Use Signals to:
- Provide enriched user context to chatbots and other agentic applications, in near real time
- Deliver personalized recommendations, dynamic pricing, and adaptive UIs based on current behavior
- Trigger actions automatically when users meet specific criteria
By default, Signals calculates attributes from your real-time event stream, but you can also configure it to calculate from warehouse data.
Try Signals for free
Signals Sandbox is a free, lightweight sandbox environment where you can try out Signals without needing a Snowplow account or pipeline. Log in with your GitHub account to get started.
The Sandbox provides you with:
- Signals infrastructure and Snowplow pipeline deployed in a dedicated environment
- Event Collector endpoint
- Signals Profiles API endpoint
- Sandbox Token for authentication
Check out the real-time interventions tutorial for a hands-on introduction to using the Sandbox. The tutorial uses a demo ecommerce website to generate events, but you could also send your own events to the Sandbox Collector using any Snowplow tracker.
Use the Signals Python SDK or Signals API to start experimenting with attributes and interventions.
Architecture
You will need a Snowplow pipeline to use Signals. Your Signals infrastructure is deployed into the same cloud as your pipeline.
Only Snowflake and BigQuery are supported currently. However, you can also use Signals without the warehouse functionality.
Signals consists of several new infrastructure components. When running Signals, your Snowplow pipeline will continue to process events as usual.
The core Signals components are:
- Profiles Store: stores calculated attributes and configurations
- Signals SDKs and API: allow you to manage and fetch attributes and interventions
- Streaming engine: computes attributes from Snowplow events in stream, and sends them directly to the Profiles Store
- Sync engine: periodically updates the Profiles Store with batch attributes
- Batch engine: runs in your warehouse to compute attributes from warehouse tables
Workflow
These are the high-level steps for using Signals:
- Decide on the business logic
- Apply the configurations to Signals
- Use the attributes and interventions to take action in your application
Check out the quick start tutorial for help getting started.
1. Decide on the business logic
Your first step is to decide what changes in user behavior you're aiming for. What systems or data will you need to achieve this? This planning will help you decide which attributes you want to calculate, and which interventions you're interested in defining.
You'll also need to decide whether to calculate attributes from your real-time event stream (default), or from warehouse data, or both.
Read more about attributes and interventions on the concepts page.
2. Apply the configuration
We recommend using Console to define your attributes and interventions. You could also use the Signals Python SDK, or even the Signals API.
Once you've created your configurations, apply them to Signals by publishing them. It will start calculating attributes and populating the Profiles Store.
3. Take action in your application
Retrieve calculated attributes in your application using the Node.js or Python Signals SDKs. You could also use the Signals API.
Use the attributes to update the user experience, or subscribe to interventions to automatically take action based on user behavior.
Resources
Check out the Signals foundations tutorials:
- Quick Start for defining stream attributes using the UI or the Python SDK
- Set up the Signals batch engine to calculate and sync attributes from warehouse data
Follow the real-time prospect scoring with ML solution accelerator to explore using Signals with a machine learning use case.