Skip to main content

Trigger Feedier Surveys email campaigns from Salesforce

Trigger Feedier email campaigns from Salesforce via Outbound Messages and Record-Triggered Flows. Includes payload mapping, duplicate-send protection, and common pitfalls.

Written by Julien Chil Hagopian

Feedier Surveys + Salesforce


This article covers one of the three Salesforce integration use cases: triggering a Feedier email campaign when a Salesforce record matches your conditions (e.g. a Case is closed, a Contact reaches a status). For feedback enrichment and pushing feedback back to Salesforce as FeedierFeedback__c, see Connect Salesforce to Feedier.


Who can access it?

Roles

Access

πŸ‘‘ Admins

Full access

πŸ› οΈ Editors

Full access

πŸ‘€ Viewers

No access

πŸ”’ Restricted viewers

No access

On the Salesforce side, you'll need Setup access and the Flow Builder permission.


How it works

Three pieces work together:

  1. A Feedier email campaign β€” the survey you want to send.

  2. A Salesforce Outbound Message pointing to a Feedier endpoint, carrying the Salesforce fields you want to forward as feedback attributes.

  3. A Record-Triggered Flow in Salesforce that decides when to fire the Outbound Message.

When the Flow's conditions match, Salesforce posts the selected fields to Feedier and a push is scheduled in the campaign you point to. One record β†’ one email.


Prerequisite β€” Feedier email campaign

Create the email campaign in Feedier Surveys before configuring anything in Salesforce:

Step 1 β€” Create the Outbound Message in Salesforce

Salesforce Setup β†’ Outbound Messages β†’ New Outbound Message


Field

Value

🏷️ Name / Unique Name

Any label of your choice β€” has no impact on the integration.

πŸ“¦ Object

The Salesforce object the Flow will run on (typically Contact, Case, Opportunity, or a custom object).

πŸš€ Endpoint URL β€” Production

(Salesforce prod or sandbox β†’ Feedier production)

πŸ§ͺ Endpoint URL β€” Pre-production

(Salesforce prod or sandbox β†’ Feedier preprod)

πŸ“‹ Fields to send

At minimum: the record Id and an Email field (Contact email or equivalent). Add any other field you want to forward as a feedback attribute β€” first name, account, business unit, language, custom fields (Product_Range__c, etc.).

Where to find the two placeholders

  • {FeedierCampaignID} β†’ Feedier β†’ Surveys β†’ your survey β†’ Share β†’ Email Campaign β†’ Info.

  • {FeedierPrivateAPIKey} β†’ Feedier β†’ Advanced Settings β†’ Public Key.

How the fields arrive in Feedier

Salesforce automatically prefixes every field name with sf in the XML payload it sends:

  • Id β†’ sfId

  • ContactId β†’ sfContactId

  • Email β†’ sfEmail (or sfContactEmail depending on the source field)

  • Custom fields keep their __c suffix β†’ sfProduct_Range__c

Each of these becomes a feedback attribute in Feedier with that exact name.

⚠️ Two common gotchas:

  • A field that isn't ticked in the Outbound Message field list does not arrive β€” even if it exists on the record.

  • A field that is ticked but empty on the record arrives empty (and the attribute will be blank in Feedier).

Step 2 β€” Build the Record-Triggered Flow

Salesforce Setup β†’ Process Automation β†’ Flows β†’ New Flow β†’ Record-Triggered Flow


⚠️ Workflow Rules are deprecated by Salesforce. Use Flow Builder (Record-Triggered Flow).

  1. Define the trigger

    Pick the object that should fire the survey and choose "A record is created or updated". Add your entry conditions β€” for example Case.Status = Closed or Contact.Survey_Eligible__c = true. See trigger rule examples below.

  2. Attach the Outbound Message

    Add an action of type Outbound Message (under "Actions and Related Records") and select the Outbound Message you created in Step 1. Save and Activate the Flow.

Industry example (in Feedier context make sure to use the endpoints mentioned above) :

Step 3 β€” Test & verify

Trigger the rule on a test record (e.g. close a test Case). Then check, in Feedier:

  • Outbound Messages page β€” the parsed payload appears with status push_created, or skipped_due_to_recently_contacted_same_campaign if a duplicate was prevented by the safety net.

  • Pushes page β€” the push is scheduled and the email will be sent.

🎊 You should see a push created in the Pushes page within seconds.

Duplicate-send protection

Salesforce's Outbound Message system is built for reliability β€” if the response from Feedier isn't acknowledged exactly as expected, Salesforce retries the call every 2 hours for up to 24 hours. In addition, when several records are updated in the same Salesforce transaction (e.g. a bulk import), Salesforce groups them into a single Outbound Message call. Both behaviors can produce extra calls.

Feedier ships with two layers of protection:

Layer

Behavior

πŸ›‘οΈ Default 24h dedupe
​(built-in, no configuration)

Same target + same push campaign within 24 hours β†’ the second push is automatically skipped. The Outbound Message is still logged with status skipped_due_to_recently_contacted_same_campaign.

βš™οΈ Custom over-solicitation window
​(optional, per endpoint URL)

Add &over_solicitation=true&survey_id={SurveyID}&interval_days={N} to the endpoint URL to set a stronger, survey-wide interval (e.g. 100 days between any two emails on a given survey, across all campaigns of that survey).

Example endpoint URL with custom over-solicitation:


Common pitfalls

Symptom

Likely cause & fix

No Outbound Message arrives in Feedier

The Flow conditions are not matched on Salesforce side, or the message failed delivery. Check Setup β†’ Monitor β†’ Outbound Messages in Salesforce β€” failed deliveries stay in the queue for 24h with the error.

Push created in Feedier but missing an attribute

Either the field isn't ticked in the Outbound Message's "Fields to send" list, or the field is empty on the Salesforce record. Check both β€” the connector forwards what Salesforce sends, nothing more.


Examples of trigger rules

Rules live on the Salesforce side (in the Flow's entry conditions), not in Feedier:

  • CRM event β€” after a case is closed, after a purchase or order, after a support interaction, after onboarding is completed.

  • Segmentation β€” country, language, business unit, account type, subscription plan, product range.

  • Contact status β€” active client only, communication consent granted, not opted out.

  • Frequency β€” combine with Feedier's over-solicitation parameter for a survey-wide cap (e.g. one survey per contact every 90 days).


Useful Salesforce references:

Did this answer your question?