Configure RT 2.0 event tables and key events - define which streaming events to track and filter for real-time processing
57
65%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./realtime-skills/rt-config-events/SKILL.mdConfigure event tables and key events for real-time processing.
rt-config-setup skill first)events:
- name: "page_view" # Event identifier
database: "events_db" # Database name
table: "web_events" # Table name
filter: # Optional: filter events
field: "td_path" # Field to filter on
pattern: "^/pageview/" # Regex pattern
description: "Page view events" # Optional
- name: "purchase"
database: "events_db"
table: "commerce_events"
filter:
field: "event_type"
pattern: "^purchase$"
description: "Purchase completion events"Filter events using regex patterns:
# Exact match
filter:
field: "event_type"
pattern: "^purchase$"
# Starts with
filter:
field: "td_path"
pattern: "^/cart/add"
# Contains
filter:
field: "url"
pattern: ".*product.*"
# Multiple options (OR)
filter:
field: "event_type"
pattern: "^(purchase|add_to_cart|checkout)$"
# No filter (all events)
# Omit filter sectionCommon fields to filter on:
td_path - Event path/name from SDKevent_type - Custom event type fieldevent_name - Event name fieldaction - Action field# List databases
tdx databases --json
# List tables in database
tdx tables list events_db --json
# View table schema
tdx table describe events_db web_events
# Preview events
tdx query "select * from events_db.web_events limit 10"
# Check event types
tdx query "
select
td_path,
event_type,
count(*) as event_count
from events_db.web_events
where td_interval(time, '-1d')
group by td_path, event_type
order by event_count desc
limit 20
"
# Check field values for filtering
tdx query "
select distinct td_path
from events_db.web_events
where td_interval(time, '-1d')
limit 50
"events:
# Product views
- name: "product_view"
database: "events"
table: "web_events"
filter:
field: "event_type"
pattern: "^product_view$"
# Add to cart
- name: "add_to_cart"
database: "events"
table: "web_events"
filter:
field: "event_type"
pattern: "^add_to_cart$"
# Purchase
- name: "purchase"
database: "events"
table: "commerce_events"
filter:
field: "event_type"
pattern: "^purchase$"
# Cart abandon (no filter - track all cart events)
- name: "cart_events"
database: "events"
table: "cart_events"events:
# Content views
- name: "content_view"
database: "events"
table: "content_events"
filter:
field: "action"
pattern: "^view$"
# Video play
- name: "video_play"
database: "events"
table: "media_events"
filter:
field: "event_type"
pattern: "^video_play$"
# Article read
- name: "article_read"
database: "events"
table: "content_events"
filter:
field: "td_path"
pattern: "^/article/"events:
# User login
- name: "login"
database: "events"
table: "user_events"
filter:
field: "event_type"
pattern: "^login$"
# Feature usage
- name: "feature_used"
database: "events"
table: "app_events"
filter:
field: "event_type"
pattern: "^feature_"
# Trial signup
- name: "trial_signup"
database: "events"
table: "conversion_events"
filter:
field: "event_type"
pattern: "^trial_signup$"Key events are important business events used for RT triggers:
# List key events (API)
tdx api "/audiences/<parent_segment_id>/realtime_key_events" --type cdp
# Create key event (API)
tdx api "/audiences/<parent_segment_id>/realtime_key_events" --type cdp --method POST --data '{
"name": "high_value_purchase",
"event_name": "purchase",
"description": "Purchase over $100",
"filters": {
"purchase_amount": {
"operator": "greater_than",
"value": 100
}
}
}'
# Update key event (API)
tdx api "/audiences/<parent_segment_id>/realtime_key_events/<event_id>" --type cdp --method PATCH --data '{
"description": "Updated description"
}'
# Delete key event (API)
tdx api "/audiences/<parent_segment_id>/realtime_key_events/<event_id>" --type cdp --method DELETEUpdate via API (YAML update not yet available):
# Update event tables
tdx api "/audiences/<parent_segment_id>/realtime_setting" --type cdp --method PATCH --data '{
"event_tables": [
{
"database": "events_db",
"table": "web_events",
"event_name": "page_view",
"filter_field": "td_path",
"filter_pattern": "^/pageview/"
},
{
"database": "events_db",
"table": "commerce_events",
"event_name": "purchase",
"filter_field": "event_type",
"filter_pattern": "^purchase$"
}
]
}'# Check event tables are accessible
tdx table describe <database> <table>
# Test regex pattern
tdx query "
select td_path
from events_db.web_events
where td_interval(time, '-1h')
and regexp_like(td_path, '^/pageview/')
limit 10
"
# Count events matching filter
tdx query "
select count(*) as matching_events
from events_db.web_events
where td_interval(time, '-1d')
and regexp_like(td_path, '^/pageview/')
"| Error | Solution |
|---|---|
| "Event table not accessible" | Verify table exists with tdx tables list |
| "Invalid regex pattern" | Test pattern with regexp_like() in query |
| "No events matching filter" | Check filter pattern matches actual data |
| "Database not found" | Verify database name with tdx databases |
| "Permission denied" | Verify API key has access to database |
time column (epoch seconds)After configuring events:
rt-config-attributes skillrt-journey-create skill1a0845f
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.