Extract commitments from mail
Use “Extract commitments from mail” in Recued. Extract commitments from an inbound email into Recued's commitment tracker — who promised what to whom, with optional deadline and monetary amount. Thread-aware: a reply like ‘yes, please send that by Friday’ binds to the prior message. Records one only when someone actually promised something.
How it works
Inspect the data fetches, transforms, gates, and output this recipe runs.
Data fetch
message
core.mail.get
Get mail
▼
Process (31 steps)
defaults
defaults
Apply defaults
has_thread_id
compare
Check if thread id has data
thread
core.mail.thread-read
Thread read mail
skip: step.has_thread_id not_equal true
thread_messages
default
Apply default
thread_body_reads
core.mail.body-read
Body read mail
thread_messages_with_body
filter
Filter by condition
thread_body_segments
pluck
Extract result.body from each item
thread_body
join
Join items with "
---
"
single_body_read
core.mail.body-read
Body read mail
skip: step.has_thread_id equal true
single_body
default
Apply default
body
ternary
Apply ternary
body_present
compare
Check if body has data
skip_empty
compare
Check if body present does not equal true
protect
pii-protect
Apply pii-protect
classify
core.ai.classify
AI classifies data into one of the given categories
skip: step.skip_empty equal true
not_commitment
compare
Check if classify category does not equal commitment_made
skip_extract
any
Check if any of the conditions are true
extract
core.ai.extract
AI extracts structured fields from data
skip: step.skip_extract equal true
restore
pii-restore
Apply pii-restore
defaults_2
defaults
Apply defaults
counterparty_email
trim
Trim whitespace from extracted counterparty email
defaults_3
defaults
Apply defaults
promised_for_at
date_parse
Parse restore restored promised for at iso as a date
has_monetary
all
Check if all conditions are true
monetary_value
merge
Combine objects together
skip: step.has_monetary not_equal true
missing_statement
compare
Check if extracted statement is empty
skip_create
any
Check if any of the conditions are true
resolve_counterparty
core.contact.resolve
Resolve contact
skip: step.counterparty_email is_empty
commitment_key_hash
sha256
Apply sha256
create
core.work-entity.commitment.create
Create work entity commitment
skip: step.skip_create equal true
card
to_summary
Format results as a summary card
▼
Output
summary
card
Uses (7 operations)
Mail
Get mail
core.mail.get
Mail
Thread read mail
core.mail.thread-read
Mail
Body read mail
core.mail.body-read
AI models
AI classifies data into one of the given categories
core.ai.classify
AI models
AI extracts structured fields from data
core.ai.extract
Contacts
Resolve contact
core.contact.resolve
Tasks & notes
Create work entity commitment
core.work-entity.commitment.create
Trust & control
What installing this recipe would let it do. Recued grants these permissions at install — review them there before approving.
What it's allowed to do
Read
Mail
core.mail.get
read-only
Read
Mail
core.mail.thread-read
read-only
Read
Mail
core.mail.body-read
read-only
Read
AI models
core.ai.classify
read-only
Read
AI models
core.ai.extract
read-only
Read
Contacts
core.contact.resolve
read-only
Write
Tasks & notes
core.work-entity.commitment.create
external change