Campaign Builder & CSV Pipeline Flow
Understand the core mechanics, queues, and logic routines running on our servers when processing this module.
System Execution Pipeline
Below is the step-by-step sequence of events executed by our background workers.
Upload Contacts
User uploads a CSV list. Papaparse processes headers and matches columns.
Sanity Checks
Filters duplicates and matches formatting to RFC 5322 guidelines.
MX Resolution
Queries DNS servers to verify recipient domains have active mail exchange servers.
Spintax & Merge
For each recipient, variables are replaced and a random Spintax variant is generated.
Queue Injection
Cleaned recipient entries are sent to the sharded queue.
Developer & Architect Notes
Technical Architecture
This module operates as a stateless service hosted across horizontally scalable server nodes. Distributed state coordinates through highly optimized Redis transactions to ensure consistency without deadlocks.
Edge Fail-Safe Rules
Critical protocols (like connection failure retries, cool-down timers, and data limits) are verified before outbound dispatches. Failures degrade gracefully, prioritizing list health and preventing blacklisting.
How campaign builder & csv pipeline behaves.
Answers about the execution flow, failure handling and limits of this module.
Can I personalise each email with data from my list?
Yes. Any column in your uploaded CSV becomes a merge field usable in both the subject line and the body, so each recipient receives a message built from their own row.
What is Spintax and why would I use it?
Spintax lets you write several alternative phrasings of the same sentence and have one chosen at random per recipient. It means no two messages in a campaign are byte-identical, which matters because identical bulk content is itself a filtering signal.
How is my contact list validated before sending?
Uploads are parsed and checked for malformed addresses, syntax errors and duplicates, with MX record lookups confirming the receiving domain can accept mail at all. Invalid rows are reported before the campaign is queued, not after they bounce.
Can I reuse templates across campaigns?
Yes. Templates are saved separately from campaigns, so you can build a layout once and use it repeatedly with different lists and merge data.