Signal on free deterministic mail facts
Use “Signal on free deterministic mail facts” in Recued. The one owner-armed producer for the aggregate provider records route. It reads information without changing data in the connected service.
How it works
Inspect the data fetches, transforms, gates, and output this recipe runs.
Process (98 steps)
event_mail_slug
default
Apply default
event_record_id
default
Apply default
event_pointer_present
all
Check if all conditions are true
defaults
defaults
Apply defaults
pointer_present
all
Check if all conditions are true
message
?
skip: step.pointer_present not_equal true
message_found
compare
Check if message record exists
source_ready
all
Check if all conditions are true
defaults_2
defaults
Apply defaults
source_is_inbound
compare
Check if source direction equals inbound
timestamp_present
compare
Check if source received at is greater than 0
analysis_ready
all
Check if all conditions are true
bounded_callback_ttl_seconds
clamp
Clamp setting mcp callback ttl seconds between 60 and 86400
bounded_business_start_hours
clamp
Clamp setting business start hours between 0 and 23
bounded_business_end_hours
clamp
Clamp setting business end hours between 1 and 24
business_window_valid
compare
Check if bounded business start hours is less than bounded business end hours
bounded_sender_history_days
clamp
Clamp setting sender history days between 1 and 3650
bounded_sender_burst_window_minutes
clamp
Clamp setting sender burst window minutes between 1 and 10080
bounded_sender_burst_count_threshold
clamp
Clamp setting sender burst count threshold between 2 and 500
bounded_thread_history_days
clamp
Clamp setting thread history days between 1 and 3650
bounded_thread_burst_window_hours
clamp
Clamp setting thread burst window hours between 1 and 8760
bounded_thread_burst_count_threshold
clamp
Clamp setting thread burst count threshold between 2 and 500
bounded_long_thread_count_threshold
clamp
Clamp setting long thread count threshold between 2 and 500
bounded_reply_silence_hours
clamp
Clamp setting reply silence hours between 1 and 8760
bounded_large_body_bytes_threshold
clamp
Clamp setting large body bytes threshold between 1024 and 1000000000
bounded_many_recipients_count_threshold
clamp
Clamp setting many recipients count threshold between 2 and 1000
bounded_notification_min_signal_count
clamp
Clamp setting notification min signal count between 1 and 10
exclusive_until
math
Calculate: {{step.source_received_at}} + 1
sender_history_since
math
Calculate: {{step.source_received_at}} - {{step.bounded_sender_history_days}} * 86400000
sender_burst_since
math
Calculate: {{step.source_received_at}} - {{step.bounded_sender_burst_window_minutes}} * 60000
thread_history_since
math
Calculate: {{step.source_received_at}} - {{step.bounded_thread_history_days}} * 86400000
thread_burst_since
math
Calculate: {{step.source_received_at}} - {{step.bounded_thread_burst_window_hours}} * 3600000
sender_present
compare
Check if from address has data
can_scan_sender
all
Check if all conditions are true
relationship_as_of_iso
date_add
Add 0 seconds to
skip: step.can_scan_sender not_equal true
relationship_as_of
date_parse
Parse relationship as of iso as a date
skip: step.can_scan_sender not_equal true
relationship_effective_as_of
math
Calculate: max({{step.relationship_as_of}}, {{step.source_received_at}})
skip: step.can_scan_sender not_equal true
business_context
?
skip: step.can_scan_sender not_equal true
relationship_level
default
Apply default
relationship_present
compare
Check if relationship level does not equal none
relationship_active
compare
Check if relationship level equals active
sender_history
?
skip: step.can_scan_sender not_equal true
sender_rows
default
Apply default
sender_history_count
count
Count items in sender rows
sender_recent_rows
filter
Filter by condition
sender_recent_count
count
Count items in sender recent rows
first_seen_sender_in_window
all
Check if all conditions are true
sender_burst
all
Check if all conditions are true
thread_present
compare
Check if thread id has data
can_scan_thread
all
Check if all conditions are true
thread_history
?
skip: step.can_scan_thread not_equal true
thread_rows
default
Apply default
thread_history_count
count
Count items in thread rows
thread_recent_rows
filter
Filter by condition
thread_recent_count
count
Count items in thread recent rows
thread_burst
all
Check if all conditions are true
long_thread_in_window
all
Check if all conditions are true
prior_thread_rows
filter
Filter by condition
previous_thread_direction
default
Apply default
prior_outbound_rows
filter
Filter by condition
prior_outbound_count
count
Count items in prior outbound rows
reply_received
all
Check if all conditions are true
latest_outbound_at
default
Apply default
reply_lag_ms
math
Calculate: {{step.source_received_at}} - {{step.latest_outbound_at}}
reply_silence_ms
math
Calculate: {{step.bounded_reply_silence_hours}} * 3600000
reply_after_silence
all
Check if all conditions are true
within_business_hours
time_within_window
Apply time_within_window
after_hours
all
Check if all conditions are true
attachment_part_reported
all
Check if all conditions are true
large_body
all
Check if all conditions are true
to_count
count
Count items in source to
cc_count
count
Count items in source cc
recipient_count
math
Calculate: {{step.to_count}} + {{step.cc_count}}
many_recipients
all
Check if all conditions are true
is_read_known
compare
Check if source is read exists
unread_at_scan
all
Check if all conditions are true
signal_rows
default
Apply default
active_signals
filter
Filter by condition
active_signal_count
count
Count items in active signals
strong_signal
any
Check if any of the conditions are true
enough_signals
compare
Check if active signal count is at least bounded notification min signal count
attention_gate
any
Check if any of the conditions are true
signal_active
all
Check if all conditions are true
active_signal_labels
map
Extract from each item
active_signal_text
concat
Combine text or lists together
recued_enabled
any
Check if any of the conditions are true
mcp_enabled
any
Check if any of the conditions are true
mcp_destination_present
compare
Check if setting mcp destination contract id has data
send_recued
all
Check if all conditions are true
send_mcp
all
Check if all conditions are true
notify_recued
?
skip: step.send_recued not_equal true
notify_mcp
?
skip: step.send_mcp not_equal true
attention_state
ternary
Apply ternary
inbound_state
ternary
Apply ternary
direction_state
ternary
Apply ternary
state
ternary
Apply ternary
card
to_summary
Format results as a summary card
signal_table
to_table
Format results as a data table
Settings
Configurable at install. Defaults shown — change them anytime in Recued.
delivery mode
setting
=
recued
business end hours
setting
=
18
reply silence hours
setting
=
48
sender history days
setting
=
90
thread history days
setting
=
365
business start hours
setting
=
8
notification channels
setting
=
in_app
mcp callback ttl seconds
setting
=
21600
thread burst window hours
setting
=
24
large body bytes threshold
setting
=
1048576
long thread count threshold
setting
=
12
mcp destination contract id
setting
=
sender burst window minutes
setting
=
60
sender burst count threshold
setting
=
3
thread burst count threshold
setting
=
4
notification min signal count
setting
=
2
many recipients count threshold
setting
=
5
Trust & control
What installing this recipe would let it do. Recued grants these permissions at install — review them there before approving.