Skip to main content

Dynamic Outreach

Flexible, condition-based outreach that adapts automatically

Written by Sara Doreste
Updated today


1. About Dynamic Outreach Campaign

Dynamic Outreach is a powerful campaign type that lets you combine LinkedIn actions, email actions, waits, and conditions into a single dynamic flow.

Instead of sending the same sequence to everyone, Dynamic Outreach reacts to what each contact does - Are they connected? Do they have an email? Did they open it? - and adjusts the next step automatically.

Watch Dynamic Outreach video tutorials:


1.2 When should I use Dynamic Outreach?

Dynamic Outreach is ideal if you want to:

  • Combine LinkedIn + Email in one campaign

  • Create personalized flow depending on matching conditions

  • Automatically handle connected vs. not connected contacts

  • Personalize follow-ups without building multiple campaigns

If your outreach logic sounds like:

If they’re connected, send a follow-up If not, try email If there’s no email, try Open InMail.

Dynamic Outreach is the right fit for you.


2. How Dynamic Outreach works

A Dynamic Outreach campaign is made of actions and conditions:

2.1. Actions

Things Dynamic Outreach can do:

  • Send connection request

Connection requests send an invitation to any contacts that are 2nd or 3rd degree level. In Dynamic Outreach campaigns the action "Send connection request" always attaches "If connected" condition automatically. This way two branches will be created:

1. If NOT connected → Send Connection request
2. If Connected → send Follow-up / email / Open InMail / etc

  • Send follow-up messages

Send messages to first level connections. In Dynamic Outreach campaigns, the action "Send Follow-up" always attaches "If connected" condition automatically. This way two branches will be created:

1. If connected → Send a Follow-up
2. If NOT connected → Send a Connection request / Open InMail / email

  • Send Open InMail

You can send Open InMails to 2nd and 3rd degree connection level contacts with Open profile. in Dynamic Outreach when adding "Send Open InMail" action the system will automatically apply "If Open Profile" condition.

You can add only one Open InMail per branch. Once it’s added, the “Send Open InMail” action will no longer be available for that branch.

  • Send email

You can send emails to anyone in your campaign that has an email address available. You can import the contacts' email addresses in the campaign. However, if you don't have this data, the system will search if the contact has an email address available in LinkedIn.

Using this action the system automatically applies the "If email available" condition:

1. If email available → the contact will go to the YES branch and an email will be sent

2. If email is NOT available → the contact will go to the NO branch and you can perform any other action like sent connection request / send Open InMail / etc

  • Visit Profile

The Visit Profile action will notify the contact that you have viewed their profile. You can add this engagement action at any point in the sequence.

There is an approximate limit of 100 profile visits per day. If this limit is reached, the system will skip the action and continue with the next step by default. To prevent this, open the “Visit Profile” action and select the option to require the profile visit, which will pause the sequence for that contact until the limit resets.

  • Post Like

The Post Like action allows you to like the most recent post of the contacts in your campaign. If the contact does not have any posts, the system will add a note in the contact's activity log letting you know why this action couldn't be performed:

You can also set Like Post to be skipped and actioned again the following day in case of reaching the daily LinkedIn limit.

Please note that, by default, this action will be skipped and the sequence will continue for that contact if the daily limit is reached, unless it is configured to wait until the next day.

​​

Both Like Post and Profile visit will show action "skipped" in their activity log when you have reached both limits.

  • Withdraw invite

In the branches where you have added a Connection Request, you can add a "Withdraw Invite" action. This will allow you to cancel the connection request sent to the users in the campaign.

Please note that even if you don't add a "Withdraw invitation" step, the system will automatically withdraw invites for you at the end of the sequence.

  • Wait (delay)

The Wait action allows you to set time intervals between actions. During the wait period, the system will not perform any activity or checks to the contact.

Example: Send Connection request → In the "YES" branch, add a "Wait" action

→ Send follow-up message.

  • Monitor

The Monitor action continuously evaluates contacts currently on that step to determine whether they meet a specific condition.

If a contact meets the condition at any point during the monitoring period, they are automatically routed to the YES branch. If the condition is not met, the contact remains under monitoring for the duration you have configured.

If the monitoring period ends and the condition has still not been met, the contact is routed to the NO branch.

Monitor is not available for all conditions, only for:

  • If connected

  • If email opened

  • Monitor vs. Wait Actions

Here's a quick summary of how Wait and Monitor actions work:

Monitor Action

Wait Action

Purpose

Actively watches for a condition to be met

Creates a time delay between actions

Checks conditions?

Yes - continuously during the monitoring period

Yes - conditions are evaluated only after the wait period ends

Contact behavior during step

Contact remains on the step while the system monitors for the condition

Contact remains on the step for the full wait duration, with no actions performed

Outcome when condition is met

Immediately routed to the YES branch

Routed to the YES branch after the wait period ends

Outcome if condition is not met

Routed to the NO branch after the monitoring period ends

Routed to the YES branch once the wait period ends

Time-based?

Yes - combined with condition logic

Yes - time only

Available conditions

If connected, If email opened

Any supported condition/action

Typical use case

Reacting immediately to contact behavior

Adding a delay before evaluating conditions or performing the next action

2.2 Conditions

Checks that decide which path a contact follows:

Each condition automatically creates a YES / NO branch, and contacts move down the branch that matches their condition.

  • If connected

The "If connected" condition checks if a campaign member is a 1st connection or not. This condition decides the branch path for the contact depending on connection level.

  • If open profile

The "If open profile" condition checks if the contact's profile is open to receive Open InMails.

  • If email available

The “If Email Available” condition checks whether imported contacts have an email address. Emails are automatically retrieved from contacts’ LinkedIn profiles when publicly available. You can also import contacts' emails via CSV. Learn more here.

  • If email opened

This condition checks if an email has been opened. It is not available as a first step; you will always need to have had sent an email in the sequence before applying this condition.

All conditions are stand-alone items; none of them automatically apply a subsequent action.


3. Creating a Dynamic Outreach campaign

When creating a campaign, choose Dynamic Outreach as the campaign type.

You can then either:

Option A: Use a pre-built sequence

  • Already-made LinkedIn-only, or LinkedIn + Email flows

  • Structure is already built

  • You only need to add message text

  • Fully customizable

Option B: Create from scratch

  • Start with a blank sequence

  • Add actions, conditions, and waits manually

  • Best for advanced or highly custom logic

Looking for inspo for your outreach?

Check out these complete LI + Email and Email-only templates

3.1 Smart, built-in safeguards

Dynamic Outreach includes guardrails so campaigns guarantee a safe and logical flow:

  • You can’t send two connection requests in the same branch

  • You can’t send follow-ups to non-connected contacts

  • InMails only send if the profile is open

  • Email steps require an active email integration

  • Profile visit and Post like are skipped by default when invalid. Retries can be configured during campaign setup.

  • Other failed actions (e.g., connection requests, Open InMails, Follow-ups, etc.) retry up to 3 times when safe.

  • If a contact replies at any point, they are automatically muted and won't receive further messages or actions from the rest of the sequence.

3.2 Automatic invite withdrawal (important)

Every branch in a Dynamic Outreach campaign ends with an automatic “End” step which will automatically withdraw invitations from contacts that have not accepted the connection request in that branch.

When a contact reaches the end:

  • Any pending connection invites are withdrawn automatically on the same day the sequence ends for those contacts. This keeps your LinkedIn account safe and avoids long-pending invites which could potentially lead to account inconsistencies or even restriction.

3.3 Scheduling

Dynamic Outreach respects:

LinkedIn has daily limits for actions. Learn more here. When these limits are met, Salesflow automatically applies safeguards to protect your account and ensure continuity of your campaign.

  • Campaign-level action limits

You will need to set up daily limits for your campaign's actions in the Campaign Settings step.

  • Working hours and time zones

The working times that you set up for your campaign are always based on the time zone you have chosen in your LinkedIn Account Settings section. Learn more here.

Campaigns run in cycles of 3 hours, therefore we always recommend setting up a campaign schedule of at least 8 hours, especially if the account has more than 1 active campaign.

  • Scheduled campaign starts with randomization

Salesflow has a smart scheduler for campaigns that is based on your account's time zone and the schedule set up for each campaign. However, randomization is added on the backend so your campaigns do not always start at the same time and they have a human-like behavior. Learn more here.


4. Updating a Dynamic Outreach campaign

If the campaign has no members

✅ You can:

  • Change the entire sequence

  • Add/remove actions and conditions

  • Start over completely

If the campaign already has members

❌ You can only:

  • Edit message text

  • Change wait times

  • Adjust monitoring durations

Structural changes (adding/removing steps) are locked to protect contacts already in progress.


5. Tracking progress

Dynamic Outreach includes clear progress indicators:

  • Inside your campaign:

🟢 Contacts in progress - contacts that have started their sequence

🔵 Contacts completed - contacts that reached the end of their path

  • In your campaigns Overview:

🔵 Contacts completed - % of contacts who reached the end of their sequence

You’ll also see alerts in your Home page when:

  • A campaign is fully completed (All contacts have finished the sequence)


6. Key things to know before starting

  • Dynamic Outreach campaigns can't be shared with other accounts

  • Campaign type can't be changed after creation

  • Templates used in Dynamic Outreach can't be deleted

Learn more about Dynamic outreach capabilities:


Hope this article was helpful! However if you need any further help, don't hesitate to contact us via the support chat or at support@salesflow.io

Did this answer your question?