- the Events page is where you define the training recipe
- a template is that recipe
- starting training from a template creates a new trained version
- review, approval, naming, and promotion happen later on the Models page
Event types
An event type has an NSL-generated integer ID, a human-readable name, and a weight. Send the integer ID in API and SDK calls; names such asclick are labels, not ingestion identifiers.
Add an event type
1
Open Events
Open Console > Events.
2
Name the event
Enter a name in the Event name field, for example
click, purchase, or video_complete.3
Set a signal weight
Set a weight between 1 and 100. Higher weight means the training process treats that signal as more informative.
4
Add the event
Click Add event.
You can adjust weights at any time. Changes take effect on the next training run.
Send events from your application
Copy the integer ID from Event configuration when tracking actions via the SDK:Searches are events
When a user searches, their intent is unusually clear, so a search is recorded as an event like any other: an event with aquery and no item, on the event type your search signal is bound to. It carries that event type’s weight, so a search weighted 25 counts a quarter of a purchase weighted 100, exactly as a click weighted 25 would.
Send one in any of three ways:
query it came from.
How searches steer recommendations
On each later recommendation request for that user, NSL weighs their searches from the last 14 days against their item events. Each signal counts its event weight and halves every 72 hours. The searches’ share of that total is how far the recommendations lean towards them:- the items closest to each search join the candidates, with slots split between searches by weight, so three different searches bring three kinds of item rather than one blurred average;
- after ranking, the order is blended towards whichever search each item matches best, by that share, whatever model produced the rest;
- your rules still apply afterwards, so a boost or pin you configured wins.
item_id seed, a basket or an auto section) is left alone. The response says what the searches contributed in search_intent, and each user’s drawer in Console > Users shows the same breakdown under Event History.
To tune it, change the weight of your Search event. Set it to 0 to stop searches steering recommendations while still recording them, or turn off Search intent in a pipeline’s scoring stage to exclude one pipeline.
Integration signals
The embed, the Shopify app, the storefront adapters and the order and GA4 importers record behaviour for you. None of them send an event name. Each reports a signal - a fixed concept NSL defines, such asrec_click, add_to_cart or purchase - and your workspace binds every signal to one of your event IDs.
That is what keeps events consistent across platforms. Shopify, Magento and your own server can all report purchases; they land on the one event ID bound to purchase, however each platform spells it, and nothing depends on case, spelling or a name someone chose.
- Enabling an integration creates its events. Creating an embed key, or starting a Shopify or GA4 import, creates an event type for each signal it reports that is not bound yet, with a sensible default label and weight. Those event types count toward your plan’s event-type limit.
- Every workspace starts with three bound events: View, Click and Purchase.
- Nothing is matched by name. An event you created called “clicked” is not assumed to be the click signal.
- Rebind to use an event you already have. Open Events → Integration signals and choose the event ID a signal should land on. The list shows which integrations report each signal.
- A bound event cannot be deleted. Rebind its signal first, so no integration is left with nowhere to write.
Signal templates
A template captures a specific combination of event types, weights, and training thresholds. Saving a template lets you reproduce a training run exactly or switch between different configurations without losing your settings.Create a template
1
Configure event signals
On the Events page, configure your event types and set the thresholds described below.
2
Name the template
Enter a name in the Template name field.
3
Choose a status
Set the status to Draft (not yet used for training) or Published (ready to train from).
4
Save the template
Click Save template.
Training thresholds
Two thresholds control when a model is trained:- Per-signal threshold: the minimum number of events for each individual event type before that signal is included in training. Set this to avoid training on noise from rarely used signals.
- Minimum total events: the minimum total number of events across all signals before training will proceed. This prevents a model from training on too little data to generalise.
Train from a template
1
Select a template
Select a saved template from the template list.
2
Configure training options
Configure the training options:
- Epochs: how many passes through the training data (default 5, range 1-50).
- Batch size: number of events processed together (64, 128, 256, or 512).
- Learning rate: step size for gradient updates (default 0.001).
3
Start training
Click Start training. The console will create a new trained version from that template and show the run status as training progresses.
What happens after training
After a run finishes:- a new trained version appears on the Models page
- the system gives it a default name based on the template and the run identifier
- your team can add a human-friendly label and description
- you can approve it
- you can promote it to a serving target
Monitoring training runs
Open Console > Training Jobs to see the status of each run, its duration, and the metrics reported at completion. From this page you can:- View final training metrics and run manifests.
- Stop an in-progress run if needed.

