Integration recipe · Salesforce
Send a postcard when a Salesforce opportunity changes stage
Run a Flow only on the exact stage change. Call your mail connection once, then save the Opportunity ID with the mailpiece ID.
- Reviewed against primary sources
- Last updated: October 11, 2026
- No setup fees
The recipe
How do you send a postcard when a Salesforce opportunity changes stage?
Use an after-save record-triggered Flow with a stage-transition condition.
- Choose the transitionFor example, move from Proposal to Closed Won. Name both sides when it matters.
- Resolve the recipientSelect the intended Contact or Account address with a documented rule.
- Call the connectionAuthenticate with a Named Credential and map the reviewed payload.
- Handle faultsStore the error, keep the Flow from looping, and route the record for review.
Read the full answer
Compare the prior stage with the current stage. Require an eligible related contact and complete postal address. Build the idempotency key from the Opportunity ID, target stage, and source event key. Use HTTP Callout or another approved connection method. For the underlying record contract — stable IDs, duplicate keys, and release states — see direct mail API guidance.
Do not trigger on every Opportunity update. A note, amount, or owner change must not create another piece.
How it connects
One stage change. One postcard.
Field map
Pick the recipient before the callout.
Map each Salesforce value to one mail field and one control.
| Salesforce value | Mail field | Control |
|---|---|---|
Opportunity.Id | source_record_id | Required and stable. |
Opportunity.StageName | trigger_reason | The exact eligible transition. |
Contact.Id | recipient_key | Documented primary-contact rule. |
| Contact mailing fields | Postal address | Hold incomplete values. |
| Template key | template_id | Kept in configuration. |
| Mail activity record | Result and join keys | Written without retriggering the Flow. |
Salesforce FAQ
Check these before activation.
Pricing it out? See plans and per-piece rates.
Primary sources
- Salesforce: HTTP Callout from Flow
- Salesforce: Record-triggered Flow considerations
- Salesforce: Named Credentials
No native Salesforce connector claimed. Plans: list upload, dedupe, and automated mail need Operator or Growth. Integrations and API access need Growth and connect through a no-code tool or our API. Product plans, trigger names, and connector access can change. Confirm yours before production use.
How do you write the postcard result back to Salesforce?
Use dedicated fields or a related mail-activity record. Store source event ID, campaign ID, mailpiece ID, current state, exception reason, and timestamps. A related record is better than one set of fields when an Opportunity can have more than one mail event.
Keep the writeback update outside the original stage-change decision. Test for recursion and Flow re-entry.
Can Salesforce Flow call an external mail API?
Salesforce documents HTTP Callout for Flow. Access, authentication, and limits depend on the Salesforce setup.
Should the Flow trigger when any Opportunity field changes?
No. Check the specific prior and new stage values so unrelated edits do not send mail.
Where should multiple mail events be stored?
Use related activity records when one Opportunity can create more than one mail event. This preserves history better than overwrite-only fields.
Before launch
Preflight checklist before the first live send
- Use one stable source-event ID and save it with the mail record.
- Require recipient name, address line 1, city, state, and ZIP Code before release.
- Set a duplicate rule for the person, household, property, order, or job.
- Render a proof with a test record before any funded send.
- Define who can pause the workflow and who can approve release.
- Store the source record ID, campaign ID, and returned mailpiece ID together.
- Treat mailstream events as operational signals, not proof of attention or revenue.
Name the stage. Save the result.
Test one record in a non-mailing path. Then check Flow re-entry, fault handling, and writeback before activation.