This guide covers what to verify across each stage of the email campaign workflow before sending in Sender.
Where to find this feature
In the Sender dashboard, go to Email campaigns → select a campaign → follow the Settings > Design > Recipients > Review and send workflow at the top of the page.
What to check before sending
Step 1 — Verify campaign settings
On the Campaign settings page, check that Campaign name and Email subject are accurate and finalized. Make sure you have added Email Preview text — the line subscribers see next to the subject in their inbox. Use the Inbox preview panel on the right to confirm how the sender name, subject, and preview text appear together.
On the Email campaign design page, click the preview icon (eye) in the editor toolbar to open the visual preview. This displays your email in both desktop and mobile views side by side. Check that the layout renders correctly on both. Toggle Dark mode preview to verify readability in dark-mode email clients.
Note the Email size indicator in the top-left corner of the preview — a green bar means the file size is within acceptable limits. Click Send test email in the toolbar, enter a recipient address, and click Send to deliver a test copy to your inbox. On the Design page, use View plain text version to confirm the fallback plain text is readable.
Step 3 — Confirm recipients
On the Recipients page, check that the correct subscriber groups are selected and that the total under Selected recipients matches your intended audience. If the count shows 0 or a warning such as “You don’t have any active subscribers” appears, resolve this before continuing. The Save and continue button remains disabled until at least one recipient is selected.
Step 4 — Review and send
On the Review and send page, verify all campaign details one final time — subject line, preview text, sender information, design, and recipient count. Confirm everything is correct, then send or schedule the campaign.
What happens after you save
After sending, the campaign appears in Email campaigns with a status of SENT and a timestamp. Stats for delivered, opened, and clicks become available in the Campaign overview report. You can access the report by clicking the chart icon next to the campaign. The overview displays total emails sent, total delivered, open rate, unique clicks, hard bounced, soft bounced, unsubscribed, and spam reports.
Common issues
Send test email not arriving — Check that the recipient address is correct and look in spam or junk folders. Sending to your own Sender account address may cause delivery issues.
Preview looks different from the test email — The in-app preview is an approximation. Always confirm rendering through an actual test send in the email client you want to verify.
Save and continue is greyed out on Recipients — At least one subscriber group with active subscribers must be selected before you can proceed.
Email size indicator shows a long bar — Large emails may be clipped by inbox providers. Reduce image sizes or remove unnecessary content blocks to bring the size down.
FAQs
Can I preview my email in dark mode?
Yes. Open the preview in the editor by clicking the eye icon, then enable the Dark mode preview toggle in the top-right corner.
How do I check the plain text version?
On the Design step, click View plain text version above the email preview.
Can I save my campaign as a PDF before sending?
Yes. From the Email campaigns list, click the dropdown arrow next to a campaign and select Save as PDF.
Does the Inbox preview show the exact appearance in all email clients?
No. The Inbox preview on the Settings page shows an approximation of how the subject, sender name, and preview text appear. Use Send test email for exact rendering in a specific client.
This guide explains how to troubleshoot and fix non-working links in Sender using the Email Campaign feature. It covers how to locate and verify links in your campaign design, what to check when links fail to work, and how to confirm everything is functioning before you send.
Where to Find This Feature
In the Sender dashboard, go to: Email campaigns → select a campaign → click the edit (pencil) icon.
Steps to Troubleshoot Non-Working Links
Step 1 — Open Campaign Settings
From the Email campaigns list, click the pencil icon next to the campaign you want to fix. This opens the campaign editor, starting at the Settings step. A progress bar at the top shows your position across the four stages: Settings, Design, Recipients, and Review and send. Click Save and continue or select the Design step in the progress bar to proceed.
Step 2 — Review Your Email Design
On the Email campaign design page, you can see a preview of your email content. The label next to the heading indicates whether the campaign uses the Drag and drop builder or Custom HTML. Click Edit design to open the full editor and inspect the elements that contain links, such as buttons, images, text hyperlinks, and social icons.
Step 3 — Verify Link URLs in the Editor
Inside the drag-and-drop editor, click on any element that should contain a link. For a Button block, the right-side Content panel displays a Link field where the destination URL is set. Confirm each URL starts with https:// and points to a valid, live page. For text hyperlinks in Paragraph blocks, select the linked text to inspect or update the URL. For Image blocks, check the link setting in the content panel.
Step 4 — Test Links Before Sending
Return to the Design step and click Send test email. Enter your email address in the dialog and click Send. Open the test email in your inbox and click every link to verify it leads to the correct destination. You can also click View plain text version to see all URLs rendered as visible text, making it easy to spot malformed or missing links.
After the campaign has been sent, return to the Email campaigns list and click the report icon (bar chart) next to the sent campaign. On the Campaign overview page, select Clicks report from the left sidebar. This displays a rendered version of your email and shows click data for each link, helping you confirm whether links are being tracked and clicked.
After saving, the campaign appears in the Email campaigns list with a status of DRAFT. You can continue editing or proceed through the remaining steps. Once the campaign is sent, performance data — including delivered, opened, and unique clicks — becomes available in the Campaign overview report.
Common Issues
Link shows as “https://www.sender.net” (default placeholder) → The button or element was added but the default URL in the Link field was never updated. Open the editor, click the element, and replace the placeholder with your actual destination URL.
Link works in the editor but not in the received email → The URL may be missing the protocol prefix. Ensure the link starts with https:// or http://. Links without a protocol may not resolve correctly in email clients.
Unsubscribe link not working → The unsubscribe link uses the {{ unsubscribe_link }} template tag in custom HTML campaigns. Make sure the tag is spelled correctly and wrapped in an <a href=""> tag. In the drag-and-drop builder, this link is generated automatically in the footer.
Links redirect through an unfamiliar domain → Sender uses a tracking domain (such as campaign-statistics.com) to measure clicks. This is expected behavior. If subscribers report the link looks suspicious, consider informing them in the email body that links are tracked.
Social media icons not linking anywhere → When using the Social block in the drag-and-drop editor, each icon requires a URL to be manually set. Click the social block and fill in the profile URLs for each platform in the content panel.
Links broken only in certain email clients → Some email clients strip or rewrite links. Use Send test email to check rendering across different inboxes (Gmail, Outlook, Apple Mail) before sending the campaign to your full list.
FAQs
**Can I edit links in a campaign that has already been sent? **No. Once a campaign is sent, its content is locked. You can click Create a copy from the campaign overview to duplicate the campaign, fix the links, and resend to your audience.
How do I add a hyperlink to text in the drag-and-drop builder?
Open the editor, click on a Paragraph block, highlight the text you want to link, and use the link icon in the text toolbar to enter the destination URL.
Why does the plain text version show different URLs?
The View plain text version displays the raw tracking URLs generated by Sender. These redirect to your original destination and are how Sender measures clicks. The recipient sees your display text, not these tracking URLs, in HTML email clients.
Can I test links without sending a full campaign?
Yes. On the Design step, click Send test email, enter your email address, and click Send. This delivers a complete version of the email to your inbox so you can click and verify every link.
What should I do if my link returns a 404 error?
Confirm that the destination page exists and is publicly accessible. If the page requires authentication or has been moved, update the URL in the Link field of the relevant block in the editor.
If your campaign emails are not reaching subscriber inboxes, something in your sending setup, content, or list quality may be triggering spam filters or blocks. This guide walks you through how to identify and resolve the most common causes in Sender.
Where to Find This Feature
In the Sender dashboard, go to:
Email campaigns in the left sidebar to view campaign performance, or Account settings → Domains to check your domain authentication status.
Steps to Diagnose and Fix Email Filtering or Blocking
Step 1 — Check Your Domain Authentication
Go to Account settings → Domains. You will see your domain listed with columns for Ownership confirmed and Authentication. The Authentication column displays three indicators for SPF, DKIM, and DMARC — hover over each icon to confirm its type. All three must show a green checkmark. If any are missing or failing, your emails are far more likely to be filtered or blocked by inbox providers. Click Recheck DNS records to refresh the status after making changes in your DNS provider.
Step 2 — Review Campaign Bounce and Spam Metrics
Open Email campaigns from the left sidebar and locate your sent campaign. Campaigns with delivery problems display a warning icon in the Actions column — hover over it to see a summary like “100% hard bounces.” Click the report icon to open the Campaign overview page. Under the Statistics section, review your hard bounced, soft bounced, and spam reports rates. High hard bounce rates indicate invalid addresses on your list. High spam report rates signal that recipients are marking your emails as unwanted, which damages sender reputation.
Step 3 — Clean Your Subscriber List
Go to Subscribers in the left sidebar. Use the Email status dropdown filter to identify subscribers with a status of Bounced, Unsubscribed, or Reported spam. Sending to addresses that have previously bounced or reported spam increases the chance that inbox providers will block or filter future campaigns. Remove or suppress these contacts before your next send. You can also use the Advanced filter option for more targeted list cleanup based on engagement.
Step 4 — Review Campaign Content and Sender Details
Open a campaign in draft status and click Settings in the top navigation bar. Confirm that your From name and Sender’s email address under Sender details match your authenticated domain. A mismatch between your sending address and your authenticated domain can trigger spam filters. Also review your Email subject and Email Preview text — avoid all-caps, excessive punctuation, or language commonly associated with spam. On the Design step, use Send test email to check how the email renders and whether it lands in your inbox or spam folder.
Step 5 — Monitor Performance by Subscriber Actions
From the Campaign overview page of a sent campaign, expand Subscriber actions in the left sidebar to view detailed breakdowns: Opens, Clicks, Hard bounces, Soft bounces, Unsubscribes, Spam reports, and Unopens. This helps you identify patterns. If a specific group or segment has a disproportionately high bounce or spam rate, that list source may be the problem. PRO plan users can also access Performance by inbox provider to see whether specific email providers (Gmail, Outlook, etc.) are filtering your campaigns.
What Happens After You Save
After making changes to your domain authentication, those updates take effect once DNS propagation completes — click Recheck DNS records on the Domains page to verify. After cleaning your subscriber list and adjusting your campaign content, send a new campaign and monitor its performance in the Campaign overview under Statistics. Improvements to your delivered, opened, and bounce rates will appear there after sending.
Common Issues
All emails hard bounced → Your subscriber list likely contains invalid or outdated email addresses. Filter by Bounced status under Subscribers and remove those contacts.
SPF, DKIM, or DMARC not verified → DNS records have not been added or have not propagated yet. Check your DNS provider settings and click Recheck DNS records on the Domains page.
High spam report rate → Recipients are marking your emails as spam. Review whether you have proper opt-in consent and whether your content matches what subscribers expect.
Emails landing in spam for Gmail or Outlook users → Specific inbox providers may filter based on sender reputation. Use Performance by inbox provider (PRO) to identify which provider is filtering, and focus on warming up your sending volume gradually.
From address does not match authenticated domain → The Sender’s email address in campaign Settings must use the same domain verified on the Domains page.
FAQs
Where do I check if my domain authentication is set up correctly?
Go to Account settings → Domains. All three indicators (SPF, DKIM, DMARC) should show green checkmarks.
How do I find out which emails bounced in a campaign?
Open the campaign report from Email campaigns, then expand Subscriber actions and click Hard bounces or Soft bounces.
Can I see which email provider is blocking my campaigns?
Yes, if you are on a PRO plan. In the Campaign overview, click Performance by inbox provider in the left sidebar.
What subscriber statuses should I avoid sending to?
Do not send to subscribers with a status of Bounced, Reported spam, or Unsubscribed. Filter these using the Email status dropdown on the Subscribers page.
Does Sender automatically stop sending to bounced addresses?
Sender marks hard-bounced addresses with a Bounced status. These addresses are excluded from future sends automatically, but reviewing and removing them helps keep your list healthy.
If your email campaign remains in Sending status for an unusually long time and does not transition to Sent, this guide walks through the most common causes and how to resolve them.
Where to Find This Feature
In the Sender dashboard, go to: Email campaigns (left sidebar). Your campaign list displays each campaign’s current status — Draft, Scheduled, Sending, or Sent — alongside delivery stats. Use the Filter button above the list to isolate campaigns by status and quickly locate any stuck in Sending.
Steps to Resolve a Campaign Stuck in Sending
Step 1 — Check Your Plan Limits
Open Account settings → Billing from the left sidebar. Review the Email campaigns section at the top of the page. It shows your current usage for active subscribers, unique subscribers emailed, and emails sent against your plan limits. If any of these counters have reached their maximum, your campaign cannot finish sending. You will need to upgrade your plan or wait for your billing cycle to renew before the remaining emails can be delivered.
Step 2 — Verify Domain Authentication
Navigate to Account settings → Domains. Confirm that your sending domain shows green checkmarks under Ownership confirmed and Authentication. If any checkmark is missing or shows an error, your emails may be blocked or throttled. Click Recheck DNS records to refresh the status. If authentication is incomplete, update your SPF, DKIM, and DMARC DNS records with your hosting provider and recheck.
Step 3 — Review Recipient List Quality
Go to Subscribers in the left sidebar and click the Email status dropdown filter. Check how many of your subscribers are listed as Bounced, Unsubscribed, or Reported spam. If a large portion of the recipients in your campaign’s target group or segment fall into these statuses, the campaign may appear stuck because there are very few deliverable addresses. Open the campaign’s assigned group to verify it contains Active subscribers.
Step 4 — Wait or Contact Support
For large recipient lists, the Sending status is expected to persist while Sender processes and delivers each email — this can take minutes to hours depending on volume. If your plan limits are fine, your domain is authenticated, your list contains active subscribers, and the campaign has been in Sending for more than a few hours, contact Sender support via LiveChat or at [email protected] for further investigation.
What Happens After Sending Completes
Once all emails have been processed, the campaign status changes from Sending to Sent in the Email campaigns list, and a timestamp appears beside the status label. Click the report icon (bar chart) next to a sent campaign to open the Campaign overview, where you can review total emails sent, total emails delivered, opened, unique clicks, hard bounced, soft bounced, unsubscribed, and spam reports.
Common Issues
Campaign stays in Sending for hours with 0 delivered — Your plan’s unique subscriber or email send limit has been exceeded. Check Account settings → Billing and upgrade or wait for renewal.
Domain authentication shows missing checkmarks — DNS records for SPF, DKIM, or DMARC are not properly configured. Update them with your hosting provider, then click Recheck DNS records on the Domains page.
Recipient count shows 0 active subscribers — All subscribers in the selected group or segment are bounced, unsubscribed, or marked as spam. Filter your Subscribers list by Email status → Active to confirm deliverable contacts exist.
Campaign sent but delivered count is 0 with 100% hard bounces — The email addresses in your recipient list are invalid. Clean your subscriber list by removing bounced contacts and re-import verified addresses.
FAQs
Can I cancel a campaign that is stuck in Sending?
No. Once a campaign enters the Sending status, it cannot be cancelled or edited. You must wait for it to complete or contact support for assistance.
Does Sender have a daily sending limit?
No. There is no daily limit. Sending is governed by your plan’s monthly email allowance and subscriber caps, visible under Account settings → Billing.
Will my campaign resume automatically after I upgrade my plan?
Contact support to confirm whether a stuck campaign will resume after a plan upgrade, or whether you need to duplicate it and resend.
How do I prevent campaigns from getting stuck in the future?
Before sending, verify your plan has sufficient email and subscriber headroom on the Billing page, confirm domain authentication is complete on the Domains page, and ensure your recipient group contains active subscribers.
This guide explains common errors you may encounter when creating email campaigns in Sender using the Email campaign feature. It covers validation messages, warnings, and troubleshooting steps to help you resolve issues quickly.
Email campaign in Sender allows you to create, design, and send marketing emails to your subscriber lists. It is typically used when you need to reach your audience with newsletters, promotional content, announcements, or any bulk email communication.
Where to Find This Feature
In the Sender dashboard, go to:
Email campaigns (in the left sidebar)
Steps to Create a Campaign and Avoid Common Errors
Step 1 — Settings
The campaign begins on the Campaign settings page where you configure basic details. Enter your Email subject, From name, and verify the Sender’s email address. The system validates these fields in real-time and displays errors if required information is missing or incorrectly formatted. You cannot proceed until all required fields contain valid data.
Step 2 — Design
On this step, choose your email format from Drag and drop builder, Plain text email, or Custom HTML email. If using the drag-and-drop option, select a template before proceeding. For Custom HTML, you must include actual content—the editor will reject empty submissions. Click Save and continue once your design is complete.
Step 3 — Recipients
Select your target audience by checking groups or segments from the list. The counter at the top shows how many recipients you’ve selected. If the count shows zero, you cannot proceed to the next step. Use the Exclude groups/segments option to filter out specific audiences if needed.
Step 4 — Review and Send
The final step displays a summary of your campaign with a Tips & Suggestions panel highlighting any issues. Review the settings, preview your email design, and resolve any warnings before sending. Click Send now for immediate delivery or Schedule to set a future send time.
What Happens After You Save
After completing all steps, your campaign appears in the Email campaigns list. Draft campaigns show a DRAFT status until sent. Sent campaigns display delivery statistics including open rates, click rates, and bounce information. You can view detailed performance reports by clicking the analytics icon next to any sent campaign.
Common Issues
“Email subject is required” → The subject line field is empty. Enter a descriptive subject for your campaign.
“From name is required” → The sender name field is blank. Add a recognizable name recipients will see.
“Sender’s email address must be a valid email address” → The email format is incorrect. Enter a properly formatted email address.
“Content can’t be empty!” → The email body has no content. Add text, images, or HTML before saving.
Recipients showing 0 → No groups or segments are selected. Check at least one audience to enable sending.
“Add email preview text” → This is a recommendation, not an error. Preview text improves open rates by showing additional context in recipients’ inboxes.
100% hard bounces warning → All emails bounced because recipient addresses are invalid or don’t exist. Verify your subscriber list contains active, valid email addresses.
“The email account that you tried to reach does not exist” → The recipient’s email address doesn’t exist on the mail server. Remove invalid addresses from your list or contact subscribers to confirm their current email.
FAQs
Why can’t I click “Save and continue”? The button remains disabled until all required fields are completed. Check for red error messages below any fields and resolve them.
What’s the difference between hard and soft bounces? Hard bounces indicate permanent delivery failures (invalid addresses), while soft bounces are temporary issues (full inbox, server problems). Hard-bounced addresses should be removed from your list.
Can I edit a campaign after sending? No, sent campaigns cannot be modified. You can create a copy using the Create a copy button and make changes to the new version.
Why does my campaign show 0 delivered but was sent? This usually indicates all recipients had hard bounces due to invalid email addresses. Check the campaign report under Subscriber actions → Hard bounces for details.
viaSocket is an AI-powered workflow automation platform that helps you connect thousands of apps — no coding required. By linking Sender to your favorite tools, you can automate repetitive tasks, keep your subscriber lists in sync, and trigger email campaigns based on real-time events happening across your entire tech stack.
Why connect Sender with viaSocket?
Automatically add new subscribers to Sender from other apps like Google Sheets, Airtable and others.
Create and organize subscriber groups automatically based on events in connected apps.
Trigger new email campaigns in Sender whenever a specific action happens in another tool.
Keep subscriber data up to date by syncing changes from your CRM, e-commerce platform, or other sources.
Remove or unsubscribe contacts in Sender automatically when they are removed from another platform.
Connect Sender with thousands of apps — including Slack, Zendesk, Google Sheets, Razorpay, and many more.
How to integrate Sender with viaSocket?
Go to viasocket.com and log in or create a free account.
Click “Create new flow” to start building your automation workflow.
In the flow builder, name your flow and click “Select trigger” to search for the app you want to connect with Sender. For this tutorial, we will connect Sender and Google Sheets.
Once the application is selected, you will need to choose the trigger that would initiate the connection.
In this case we will choose “New or Updated Spreadsheet Row”.
You can choose the trigger to run every 5min, 15min, 1h, 12h or 24h.
To establish the integration, you will need to connect your Google Sheets account.
Once you connection is done, you will be asked to choose the Spreadsheet and its Sheet that would be used for the integration.
You can trigger the connection when the record is new or updated, when it is only new, or when it is only updated.
Don’t forget to indicate whether your sheet includes a column name to avoid missing any of the records.
Save the step once it is fully setup.
To setup Sender part of the integration, click “Add step” under “Do” (action part of the conntection) and search for Sender in the app list.
Once the app is chosen, you will be given a list of actions that can be performed when the tigger fires up:
DELETE
Delete Field
Delete Group
Delete Segment
Delete Subscribers
Remove Subscribers From Group
GET
Get Segment Details
Get Subscriber’s Data
OTHERS
Custom API
UPDATE
Rename Field
Rename Group
Update Subscriber
CREATE
Add Subscriber to Group
Create Campaign
Create Field
Create Group
Create Subscriber
For this tutorial, we will choose “Update_subscriber”.
To finalize the integration, Sender accout has to be connected too. This will require you to provide an API token from your Sender account. Click here to learn how to create your account API token.
The updated subscriber can be recognized by their email addres or their phone number.
To make sure that the subscriber is properly added to your Sender account, you have to select which collumn has data for which custom field. This is where having column names helps a lot.
Then, you need to select group(s) to which your subscribers will be added in Sender.
Lastly, you can choose to activate an automation workflow when the connection is triggered and select your subscribers’ status for all the channels upon sync:
Active
Unsubscribed
Bounced
Spam-reported
You connection is now fully setup, all that is left is to “Go Live”.
From now on, every new row added to our Google Sheet will automatically create a new subscriber in Sender.
If you got stuck on a specific task or can’t find a way to execute a particular job, contact our support team via LiveChat or [email protected] – we’re here to help 24/7.
Brand Assets is a powerful feature that allows you to save your brand’s visual identity—including your logo, colors, fonts, and social media links—so they are automatically applied to all your email campaigns and templates.
This ensures consistent branding across all your marketing communications without having to manually configure each campaign.
How to access brand assets
Log in to your Sender account.
Go to Settings.
Select “Brand assets” from the settings menu.
Upload your logo
Your logo will be displayed anywhere you have a logo block in your email campaigns. To upload your logo:
Click the “Upload image” button in the logo section.
Select an image file from your computer.
Your logo will appear in the preview area.
Supported formats: JPG, PNG, or GIF.
Tip: Make sure your logo is visible on a dark background, as some email templates may use darker color schemes.
Select a Color Theme
You can customize your brand colors to match your visual identity. Sender offers preset color themes, or you can manually adjust each color value to perfectly match your brand guidelines.
The following color settings are available:
Dark background color: this color will be applied to the chosen email backgrounds. In your design, make sure to use well-contrasting text and button colors on dark backgrounds.
Light background color: this color will be applied to the chosen email backgrounds. In your design, make sure to use well-contrasting text and button colors on light backgrounds.
Headline color: The color applied to your email headings and titles.
Paragraph text color: The color used for body text in your emails.
Accent color (for buttons and links): choose a color for buttons and links that is well visible on both dark and light backgrouds.
To customize colors:
Select a preset theme from the dropdown menu (e.g., “Bold Essence”), or
Enter specific hex color values (e.g., #F87435) in each color field to match your brand exactly.
Choose Fonts
Typography plays a crucial role in brand recognition. Sender allows you to set both primary fonts and fallback options to ensure your emails look great across all email clients.
Font settings include:
Headline font: The primary font for your email headings (e.g., Fira Sans).
Paragraph text font: The primary font for body text (e.g., DM Sans).
1st fallback headline/paragraph: A secondary font that displays if the primary font isn’t available in the recipient’s email client.
2nd fallback headline/paragraph: A tertiary font option for maximum compatibility.
To select fonts:
Click the dropdown menu next to each font setting.
Select your preferred font from the available options.
Set fallback fonts to ensure consistent display across different email clients.
Note: You can preview how your emails will look with custom fonts versus fallback fonts using the toggle buttons in the Email example preview panel on the right side of the screen.
Setup Social Links
Add your social media profiles so they can be easily included in your email campaigns. Social icons will automatically appear in templates that include a social block.
To add a social link:
Click “+ Add social link” button.
Select the social media platform.
Enter your profile URL.
Automatic Brand Setup
Want to save time? Sender can automatically import your brand assets from your website. This feature extracts your brand colors, fonts, logo, and social links directly from your website URL.
To use automatic brand setup:
Scroll down to the “Automatic brand setup” section.
Review the imported settings and make any necessary adjustments.
Note: New styles will be applied to all new branded blocks and email templates. Existing campaigns will remain unchanged unless edited.
Preview Your Brand Settings
The right side of the Brand Settings page displays a live email preview showing how your brand settings will look in an actual email campaign. This preview updates in real-time as you make changes.
Use the preview to:
See how your logo appears in the email header.
Check how your color scheme looks across different email sections.
Toggle between “Custom fonts” and “Fallback fonts” to see how your emails will render in different email clients.
Verify that buttons and links display correctly with your accent color.
Once you’re satisfied with your brand configuration, click the “Save brand” button in the top right corner.
If you got stuck on a specific task or can’t find a way to execute a particular job, contact our support team via LiveChat or [email protected] – we’re here to help 24/7.
Migrating your subscriber list to Sender is easy and straightforward. We have multiple methods to help you transfer your contacts seamlessly, whether you’re moving from another email marketing platform or importing your existing list.
This guide will walk you through all available migration options, helping you choose the best method for your needs.
How to migrate from Mailchimp or GetResponse?
We have dedicated articles for an easy to follow step-by-step instructions on how to migrate from these two platforms.
Follow this comprehensive tutorial to migrate from Mailchimp.
Click here for a tutorial on how to migrate from GetResponse.
Migrating from any other tool
File Upload Import
If you prefer to upload your subscriber list directly, Sender supports multiple file formats.
Supported file formats:
.csv (Comma-Separated Values)
.txt (Text files)
MS Excel (.xlsx)
NOTE: Maximum file size: 64MB
Step-by-Step File Upload Process
Navigate to Subscribers > “Add subscribers”
Click “Import via file” option
Upload your file (drag and drop or browse)
If your subscribers are in another type of file and you need a clean template to add all of your subscribers before import, we provide a downloadable Excel and CSV templates.
Copy/paste method
For smaller lists or quick additions, the manual copy & paste method is convenient.
Go to Subscribers > “Add subscribers”
Select the “Copy & Paste subscriber list” option
3. Paste your subscriber data directly into the text field
4. Ensure your data includes email addresses or phone number (required)
5. Each subscriber should be added into a new row with their additional information separated by commas
Next step is the same, regardless if you chose to import from a file or via the copy/past method.
After uploading your file or pasting your subscribers, you’ll need to map your columns to Sender’s custom fields:
If you do not have a custom field for a particular column of data, you can create one by clicking “Create a new field” at the bottom of the drop-down bar or skip the collumn all together if you don’t need that information imported.
You can also skip all unselected columns if you have all of unneccessary information and do not want to skip them one-by-one.
When importing subscribers, you’ll be prompted to assign them to a group. Groups help you organize your contacts and target specific audiences with your campaigns.
You can select one or multiple groups upon import. You can also skip this step but it may be hard for you to differenciate your subscribers in the future when you are sending campaigns.
Selecting recipients for email and SMS campaigns has to be done by choosing groups, segments or all active subscribers, therefore we suggest making sure that each subscriber belongs to at least one group to make it easier for yourself in the future.
Once you are all set, click “Start import”.
After that, you will see your import progress and results.
New subscribers – subscribers that have been imported to your list for the first time.
Subscribers updated – subscribers that have been imported in your list in the past. After import, their custom field information has been updated with the new data provided during the upload.
Duplicate subscribers – if the file contained the same email address more than once, only one copy of that email address will be uploaded to prevent duplicate imports.
Invalid emails – email addresses that contains typos, unsupported characters or unfinished email addresses.
Duplicate phone numbers – if the file contained the same phone number more than once, only one copy of that phone number will be uploaded to prevent duplicate imports.
Invalid phone numbers – partial phone number or the phone number that is missing a plus sign and country code.
Best Practices for Migration
Before You Import
Clean your list – remove inactive or invalid email addresses,
Organize your data – structure your file with clear column headers,
Prepare custom fields – decide which additional data you want to track,
Plan your groups – determine how you’ll segment your audience.
During Import
Assign to appropriate groups – don’t skip this step to prepare well for future sends,
Map all relevant fields – ensure data transfers to the correct custom fields,
Review field mapping – double-check before finalizing the import,
Start with a test – if you have a large list, import a small batch first.
After Import
Verify subscriber count – ensure all contacts imported successfully,
Check custom field data – confirm information is mapped correctly,
Review group assignments – make sure subscribers are in the right groups,
Send a welcome campaign – re-engage your migrated subscribers.
Troubleshooting Common Issues
Import Fails
Check file format – ensure you’re using .csv, .txt, or .xlsx,
Verify file size – must be under 64MB,
Remove special characters – some characters may cause import errors,
Check email format – all emails must be valid addresses.
Missing Custom Field Data
Review field mapping – make sure columns were assigned correctly,
Check data format – dates should be in YYYY-MM-DD format.
Subscribers Not Showing in Groups
Assign during import – groups must be selected when importing,
Manually add to groups – you can assign groups after import via the dashboard.
That’s it!
If you are stuck on a specific task or can’t find a way to execute a particular job, contact our support team via LiveChat or [email protected] – we’re here to help 24/7.
Once you connected your Shopify store to Sender, it is important to enable theme app extension to add subscription forms with less hassle.
Here is how the whole process looks like:
How to insert your embedded form
Go to your Sender account, access the Form section and head to the overview page of the form that you want to embed.
Look for the form ID and copy it.
Now head back to your store site editor and choose to add a section and in the Apps section choose Sender – Embedded Form.
You will be asked to enter the form ID you have just copied. Once you paste it, the form will be displayed immediately. Make alignment changes if needed.
If you got stuck on a specific task or can’t find a way to execute a particular job, contact our support team via LiveChat or [email protected] – we’re here to help 24/7.
Transactional emails are automated messages sent to individual users in response to specific actions, such as password resets, order confirmations, welcome emails, and account notifications. This guide will walk you through setting up transactional email sending in Sender.
Before you begin, make sure you have verified your domain and its DNS parameters (SPF, DKIM and DMARC) in your Sender account. Click here for detailed instructions on how to do that.
Once your domain is verified, you can start sending transactional emails using either the API or SMTP relay.
Sending Emails with API
API allows you to send transactional emails programmatically. We support multiple programming languages and provide ready-to-use code examples.
Important: Replace YOUR_TOKEN_HERE with your actual API token, and update the FROM and TO email addresses. The FROM email address must match your verified domain.
Once you send your email, you can check the status of your message in Logs.
Logs can be filtered by event types:
Emails sent
Opens
Clicks
Bounces
Unsubscribes
Spam reports
You can also search for a log by email address, the sender’s domain and campaign name.
You can choose the date range for the logs that you are interested in.
Laravel Integration
Sender provides a Laravel mail transport package for seamless integration with Laravel’s Mail facade:
1. Install the SDK (auto-discovery registers SenderServiceProvider):
4. Use Laravel’s mailing features as usual. Any SenderNetRequestException raised by the SDK is converted into Symfony\Component\Mailer\Exception\TransportException with the original message preserved.
PHP Integration
For standard PHP applications, install the recommended HTTP client and SDK:
use SenderNet\SenderNet;
use SenderNet\Helpers\Builder\EmailParams;
use SenderNet\Helpers\Builder\Recipient;
$sender = new SenderNet(['api_key' => getenv('SENDER_API_KEY')]);
$emailParams = (new EmailParams())
->setFrom('[email protected]')
->setFromName('Gabrielle')
->setRecipients([new Recipient('[email protected]', 'User')])
->setSubject('Welcome')
->setText('Thanks for signing up\!');
$response = $sender->email->send($emailParams);
Sending Emails with SMTP
SMTP (Simple Mail Transfer Protocol) is a standard protocol for sending emails. Many applications and content management systems support SMTP configuration.
Setting Up SMTP
Navigate to your Setup instructions page in Sender
Select the SMTP tab
Click Create SMTP user to generate your credentials
Password: (provided when creating the user; safe it as it will only be shown once)
Configuring SMTP in Your Application
Enter the following settings in your application or CMS:
SMTP Host/Server: smtp.sender.net
Port: 25, 2525, or 587 (choose based on your server configuration)
Encryption: TLS or STARTTLS
Username: Your generated SMTP username
Password: Your SMTP password
Important: The from email address must match your verified domain.
Managing SMTP Users
From the SMTP Users section, you can:
Edit user settings
Regenerate password if credentials are compromised or you lost the password
Delete users you no longer need
JavaScript/Node.js Integration
Here’s a complete example of sending a transactional email:
var axios = require('axios');
Configuration Parameters
URL Structure: Replace CAMPAIGN_ID with your actual campaign ID from your Sender account.
Authentication: Replace PLACE_YOUR_API_TOKEN_HERE with your API token, which you can find in your Sender account settings.
Request Body:
to: Recipient information including email address and name
variables: Custom variables that can be used in your email template (like firstname, lastname)
text: The email content or a trigger for your template
All other available parameters can be found at api.sender.net.
API Features and Capabilities
Sending to Multiple Recipients
For individual personalized emails: Make separate API calls for each recipient to ensure personalization and privacy.
For bulk sending: Use Sender’s bulk endpoint to send to multiple recipients efficiently. Note that when multiple recipients are added to the same “to” field, they will be able to see each other’s email addresses.
Adding Attachments
You can attach files to your transactional emails by including file URLs in your API request:
Supported formats: PDF, Office documents, images, ZIP files, and more
Send Transactional Emails with SMTP via Python
1. Generate your Credentials
Navigate to the Transactional Emails section in your Sender dashboard and click on Setup instructions.
Select the SMTP tab.
Click Add SMTP User to generate a dedicated alphanumeric username (e.g., USER_elRMvr) and password.
2. Input Parameters in Your Application
Enter the following settings exactly within your application framework or environment config:
SMTP Host/Server:smtp.sender.net
Port:587 (Recommended for modern web frameworks with STARTTLS) or 25 / 2525.
Encryption:TLS / STARTTLS
Username: Your generated Sender SMTP username.
Password: Your generated SMTP password.
3. Python Integration Example
4. Common Pitfalls for Python SMTP Users
The send_message() Header Wrap: Python’s high-level server.send_message() helper automatically formats email headers. If the generated multi-part boundary line is long, Python splits it across multiple lines but often drops the required leading whitespace tab. This triggers a 550 Unable to parse msg. rejection from our inbound servers. Solution: Use outer_msg.as_bytes(policy=email.policy.SMTP) and pass the resulting bytes into server.sendmail() instead.
Using the SMTP Username as the Sender Address: The alphanumeric SMTP username generated in your dashboard (e.g., USER_elRMvr) is an API credential, not an email address. Placing a bare username string inside your From: or Message-ID fields will break protocol parser validation. Solution: Always formulate fully qualified addresses ([email protected]) inside your message header blocks.
Flawed MIME Hierarchy Nesting: When sending text alongside attachments, failing to nest your objects correctly causes modern email clients to display raw payload code or drop files entirely. Solution: Maintain an outer multipart/mixed structure for the attachment layout and embed an inner multipart/alternative structure for your plaintext and HTML body options.
5. Method 1 Frequently Asked Questions (FAQs)
Q: Why does my Python script hang or experience socket connection timeouts? A: Most cloud computing providers (such as AWS EC2, DigitalOcean, or Linode) and consumer ISPs block outbound traffic on Port 25 to mitigate spam. Ensure your application configuration targets Port 587 with STARTTLS enabled.
Q: Can I use Port 465 with the provided code snippet? A: No. Port 465 is not supported, as it’s not RFC compliant. The provided code snippet uses Port 587, which initializes an unencrypted connection and upgrades it safely via opportunistic TLS.
Q: How do I handle file attachments that contain international characters or non-ASCII names? A: Standard ASCII strings cannot natively support international character variants in email headers. If you attempt to pass a filename with special characters directly into add_header, it will corrupt your message formatting. To fix this, explicitly encode the filename parameters using a UTF-8 tuple inside the attachment block:
Sender allows you to create and use email templates with your transactional emails for consistent branding and easier management.
API documentation for sending a transactional email with a template can be found here.
Creating a Template
Navigate to the Transactional email overview page
Create or select an existing template
Complete the Settings, Design, and API steps
In the API step, select your preferred programming language (JavaScript, PHP, or Python)
Template API Examples
Each template has a unique campaign ID that you’ll use in your API calls. You can find this ID in the API example section of your template.
The API example section provides language-specific code examples with your template ID already included:
JavaScript – Using axios
PHP – Native PHP implementation
Python – Using requests library
Important: Replace PLACE_YOUR_API_TOKEN_HERE with your actual API token in the code examples.
Sending a Test Email
Before going live, you can test your template:
Go to the Transactional email overview page
Enter your email address
Click Send to receive a test email
Variables
Personalize your transactional emails using variables and dynamic content to create unique experiences for each recipient.
Using Liquid Tags
Liquid tags allow you to insert dynamic content into your emails. Liquid tags should be enclosed in double curly brackets:
Hello {{firstname}}, Your order {{order_id}} has been confirmed.
When sending via API, pass the personalization data:
{
"to": {
"email": "[email protected]",
"name": "John"
},
"subject": "Order Confirmation",
"html": "Hello {{firstname}}, your order {{order_id}} is confirmed.",
"variables": {
"firstname": "John",
"order_id": "12345"
}
}
Liquid tag rules:
Must be enclosed in double curly brackets: {{variable}}
May contain alphanumeric characters and underscores
Must not start with a number or underscore
Are case-sensitive: {{VAR}} is different from {{var}}
Conditional Content
Show different content based on conditions, e.g.:
{% if subscription_level == 'premium' %} You’re enjoying all premium features 🎉 {% else %} Upgrade your subscription to access premium features. {% endif %}
Common Issues and Solutions
Email not sending:
Verify that your from email address matches your verified domain,
Check that your API token or SMTP credentials are valid and active,
Ensure you’re providing either HTML content, text content, or a template ID,
Confirm your request format follows the API documentation exactly,
Check that all required fields are included in your request.
Authentication errors:
Confirm your API token is correct and hasn’t been regenerated
Esure the API token has not expired (use “Forever” for transactional emails)
For SMTP, verify your username and password are entered correctly and without extra spaces
Check that your account has sending permissions and is not suspended
Recipient not receiving emails:
Check if the subscriber status is active (not bounced, unsubscribed, or reported spam)
Verify the recipient’s email address is valid and has no typos
Look for bounce or spam complaint notifications in your activity log
Check if your domain’s sending reputation is healthy
Ensure SPF, DKIM, and DMARC records for your domain are properly configured and verified
Template issues:
Verify your Campaign ID is correct in the API call
Check that all liquid tags are properly closed with matching brackets
Test liquid tag syntax with sample data before sending live
Ensure custom fields referenced in liquid tags exist in your subscriber data, if not – set up default values.
API Error Codes
Understanding error codes helps you quickly identify and fix issues:
Code
Meaning
Common Solution
400
Bad request
Review your request format and ensure all JSON is valid
401
Unauthorized
Verify your API token is correct and properly formatted
403
Forbidden
Check your account permissions and sending limits
404
Not found
Verify the endpoint URL and Campaign ID are correct
422
Validation error
Review the error message for specific field issues
429
Too many requests
Reduce your request rate or implement exponential backoff
500
Server error
Retry your request after a brief delay
Common 422 Validation Errors
Error Message
What It Means
Solution
“From email must be verified”
The sender address doesn’t match your verified domain
Include either “html” or “text” field in your request
“Campaign not found”
Invalid Campaign ID
Verify the Campaign ID from your template settings
“Rate limit exceeded”
Too many requests sent
Implement rate limiting in your application
Email status meaning
Track your email delivery with these status indicators:
If you got stuck on a specific task or can’t find a way to execute a particular job, contact our support team via LiveChat or [email protected] – we’re here to help 24/7.