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:
Account-level daily limits
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













