Skip to content
Recued
Menu
← Back to recipes

Send approved HubSpot deal follow-up

by recued-core v1

Action half for HubSpot deal follow-up. The owner provides a deal id, this recipe re-reads the deal, associated contacts, and recent engagement context from HubSpot, drafts a concise deal follow-up, sends it through the mail-send approval gate, links the sent mail to the CRM deal/contact, and seeds data.shared watch state so the outbound follow-up response watcher and reply conversion options can react when the contact replies. It never updates HubSpot, changes deal stages, creates tasks, or sends without the mail approval boundary.

How it works 72 steps

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

Data fetch
shared_followups ?
Process (71 steps)
target_deal_id trim
Trim whitespace from setting deal id
configured_recipient_email trim
Trim whitespace from setting recipient email
configured_recipient_contact_id trim
Trim whitespace from setting recipient contact id
configured_subject_override trim
Trim whitespace from setting subject override
configured_followup_goal trim
Trim whitespace from setting followup goal
has_deal_id compare
Check if target deal id has data
has_sender compare
Check if setting sender mail instance has data
has_subject_override compare
Check if configured subject override has data
include_deal_amount_enabled compare
Check if setting include deal amount equals true
allow_repeat_while_open_enabled compare
Check if setting allow repeat while open equals true
deal ?
skip: step.has_deal_id not_equal true
has_deal_properties compare
Check if deal result properties has data
deal_name default
Apply default
deal_stage default
Apply default
deal_amount default
Apply default
deal_amount_for_draft ternary
Apply ternary
deal_next_step default
Apply default
contacts_list ?
skip: step.has_deal_id not_equal true
contacts map
Extract from each item
primary_contact find
Find first match in
has_configured_recipient_contact_id compare
Check if configured recipient contact id has data
contacts_matching_configured_id filter
Filter by condition
configured_contact_match_count count
Count items in contacts matching configured id
has_configured_contact_match compare
Check if configured contact match count is greater than 0
missing_configured_recipient_contact all
Check if all conditions are true
target_contact default
Apply default
has_configured_recipient compare
Check if configured recipient email has data
target_recipient_email ternary
Apply ternary
has_recipient_email compare
Check if target recipient email has data
contact_name_raw default
Apply default
contact_name trim
Trim whitespace from contact name raw
activities ?
skip: step.has_deal_id not_equal true
activity_rows map
Extract from each item
recent_activities slice
Take a subset of
active_watch_rows_for_deal filter
Filter by condition
active_watch_rows_for_recipient filter
Filter by condition
blocking_watch_rows filter
Filter by condition
blocking_watch_count count
Count items in blocking watch rows
has_blocking_watch compare
Check if blocking watch count is greater than 0
block_existing_watch all
Check if all conditions are true
skip_draft any
Check if any of the conditions are true
draft ?
skip: step.skip_draft equal true
draft_body default
Apply default
has_draft_body compare
Check if draft body has data
subject_text ternary
Apply ternary
skip_send any
Check if any of the conditions are true
send ?
skip: step.skip_send equal true
fail: config.sender_mail_instance is_empty
sent_thread_id default
Apply default
sent_message_id default
Apply default
sent_record_id_primary default
Apply default
sent_record_id default
Apply default
has_sent_thread compare
Check if sent thread id has data
has_sent_record compare
Check if sent record id has data
thread_key_colon replace
Replace text in sent thread id
thread_key_slash replace
Replace text in thread key colon
thread_key_dot replace
Replace text in thread key slash
thread_key_at replace
Replace text in thread key dot
thread_key_space replace
Replace text in thread key at
thread_key_left_angle replace
Replace text in thread key space
thread_key_right_angle replace
Replace text in thread key left angle
thread_key_plus replace
Replace text in thread key right angle
thread_key_equals replace
Replace text in thread key plus
thread_key_question replace
Replace text in thread key equals
skip_watch_seed any
Check if any of the conditions are true
seed_deal_followup_watch ?
skip: step.skip_watch_seed equal true
link_sent_mail_to_deal ?
skip: step.skip_watch_seed equal true
has_contact_id compare
Check if target contact contact id has data
skip_contact_link any
Check if any of the conditions are true
link_sent_mail_to_contact ?
skip: step.skip_contact_link equal true
summary to_summary
Format results as a summary card
draft_preview to_table
Format results as a data table
Settings 13 configurable

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

tone setting = concise_professional
deal id setting =
hubspot setting =
max words setting = 140
followup goal setting =
activity limit setting = 5
recipient email setting =
business context setting =
subject override setting =
include deal amount setting = false
recipient contact id setting =
sender mail instance setting =
allow repeat while open setting = false

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

Read your HubSpot connectionMail send
Declared by the recipe — Recued grants these at install, where you review them before approving.

Data it touches

Warehousedata.shareddata.maildata.crm

About

Tags

hubspot crmhubspotdealemailmailfollowupsend-classclosed-loopone-person-companystate:outbound-follow-up-response-watcherpack:solo-revenue-back-officeai_surface

Details

72 steps 13 configurable settings recipe_id: send-approved-hubspot-deal-followup