Skip to content
Recued
Menu
← Back to recipes

Notify commitment due soon (D-139 P6.B)

by recued-core v1

Vendor-agnostic Layer-2 visible alert per spec § P6.B. Subscribes to bus events from BOTH connection.api.hubspot.contact AND connection.api.salesforce.contact updates; for each fired contact reads the cross-vendor `commitment_tracker` enrichment via `enrichment-list` filtered to the canonical `system.housekeeping.commitment_tracker` author. Filters commitments where `status equal pending` AND the commitment's `due_at` falls in the next `due_window_hours` (default 24h) per spec § P6.B. Dispatches a notification via `notification-send` rendering the matched commitments' text alongside their D-120 link-graph evidence_links — UI surfaces "Extracted from: [Mail …] [Calendar …] [Attachment: agenda.pdf]" so the user can audit any commitment before acting. The substrate-side AI compute path (full Pass-4 evidence-quality fold on the producer side — authorship_acceptance ['user', 'crm_user', 'unknown'] + lifecycle_state_acceptance ['point_in_time', 'completed'] + body_state_acceptance ['inline_body'] + dedupe_acceptance 'exact_only') lands in `backend/server/src/housekeeping/engagement-aggregates/commitment-tracker.ts` paralleling the P5 sentiment + NBA producers. Trust default `manual` per D-132 — the user must promote at MANUAL_RUN_THRESHOLD before the substrate populates rows. The alert is gated behind the `crm-commitment-tracker` pack's `packs.crm_commitment_tracker.enabled` launch flag at marketplace listing time per spec § P6.B sequencing.

How it works 20 steps

Inspect the data fetches, transforms, gates, and output this recipe runs.

Data fetch
tracker_rows ?
Process (19 steps)
commitments default
Apply default
contact_name default
Apply default
pending_commitments filter
Filter by condition
with_due_present filter
Filter by condition
with_hours_until map
Extract due_at from each item
due_window_negative math
Calculate: 0 - {{config.due_window_hours}}
due_soon_commitments filter
Filter by condition
due_soon_count compare
Check if due soon commitments has data
should_skip compare
Check if due soon count does not equal true
first_commitment_text default
Apply default
first_commitment_actor default
Apply default
first_evidence_links default
Apply default
evidence_pairs map
Extract from each item
evidence_sources pluck
Extract source from each item
evidence_sources_text join
Join items with ", "
first_evidence_source default
Apply default
first_evidence_source_id default
Apply default
notify ?
skip: step.should_skip equal true
card to_summary
Format results as a summary card
Settings 2 configurable

Configurable at install. Defaults shown — change them anytime in Recued.

channels setting = in_app
due window hours setting = 24

Trust & control

What installing this recipe would let it do. Recued grants these permissions at install — review them there before approving.

Where it runs

Device + server Runs on your device (browser) or your server.

Permissions it requires

Send notificationsRead your HubSpot connectionRead your Salesforce connection
Declared by the recipe — Recued grants these at install, where you review them before approving.

Data it touches

Warehousedata.connectiondata.enrichment

About

Tags

crmhubspotsalesforcecontactengagementcommitmentalertai_surfacereactivecross_vendorpost_substrate_canary

Details

20 steps 2 configurable settings recipe_id: notify-commitment-due-soon