©Code byMilanParmar

Campaign platform

A campaign orchestration platform built to take a campaign from strategy to launch and fulfillment. Users choose the campaign type, define the business goal, select an existing audience, configure the experience, choose gifts and postcards, build multi-step outreach, review the complete cost, pay, and launch. I built the frontend and backend end to end, connecting campaign configuration, recipient actions, communication workflows, physical fulfillment, payments, and background processing into one system.

Category
SaaS
Industry
Marketing technology
Type
Campaign orchestration platform
Year
2025
Result
A production-ready campaign orchestration platform that connects digital outreach, personalized campaign experiences, physical gifts, postcards, behavioral automation, payment, and fulfillment into one end-to-end workflow.

The product

One campaign. Every touchpoint connected.

This platform takes a campaign from strategy to execution. Users choose the type of campaign, define its goal, select an audience, configure the experience, choose physical touches, build outreach, pay, and launch — all from one workflow.

Campaign builder

Start with the play. The workflow adapts.

Campaigns can start as events, ABM plays, product launches, expansion campaigns, referrals, customer-success campaigns, and more. The selected campaign type determines the goals and configuration experience that follows.

  1. 01

    Campaign type

  2. 02

    Goal

  3. 03

    Audience

  4. 04

    Campaign experience

  5. 05

    Gift

  6. 06

    Outreach

  7. 07

    Payment

  8. 08

    Launch

Audience

Start with the people you already know.

Campaigns use existing contact lists so teams can move directly from audience selection into campaign configuration without rebuilding their contact data.

Campaign experience

Give every recipient the right context.

Each campaign can include a predefined landing-page experience with configurable content and recipient variables. The experience is built directly into the product rather than requiring users to create arbitrary HTML.

Physical touchpoints

Digital outreach can end at someone's doorstep.

Campaigns can include gifts and postcards alongside digital outreach. When a recipient submits their address, that information becomes part of the fulfillment workflow.

Automation

The campaign doesn't stop after the first send.

Follow-ups can depend on what the recipient does. Opens, clicks, landing-page activity, form submissions, address collection, and other events can influence what happens next.

  1. 01

    Initial outreach

  2. 02

    Recipient opens

  3. 03

    Follow-up

  4. 04

    Landing page

  5. 05

    Address submitted

  6. 06

    Gift fulfillment

Orchestration

The hard part was connecting everything.

Email, landing pages, recipient state, gifts, postcards, shipping, payment, and follow-up logic all operate on different timelines. The platform brings them together into one stateful campaign workflow.

Launch

Know the cost before the campaign goes live.

Gift costs, shipping, postcards, and other campaign costs are combined into a final campaign price. Stripe payment is completed before the campaign is allowed to launch.

Under the hood

Campaign operations happen in the background.

The React campaign builder connects to NestJS APIs, MongoDB, Redis, BullMQ, background workers, communication services, Stripe, AWS S3, and dedicated campaign microservices.

  1. 01

    React Campaign Builder

  2. 02

    NestJS APIs

  3. 03

    MongoDB

  4. 04

    Redis

  5. 05

    BullMQ

  6. 06

    Workers

  7. 07

    Campaign Services

  8. 08

    Resend

  9. 09

    Stripe

Recipient state

Every recipient has their own journey.

A campaign is not one linear process. One recipient may open immediately, another may need a follow-up, and another may submit an address and move into fulfillment. The platform tracks those states independently.

The result

A campaign system built around the whole journey.

The finished platform connects campaign strategy, audience selection, digital experiences, physical fulfillment, behavioral automation, payment, and analytics into one end-to-end workflow.

Features

  • Adaptive campaign wizard

    Campaign type drives the rest of the setup. Event, ABM, product launch, expansion, takeout, customer success, express send, HR, referral, and custom each surface different goals and steps.

  • Existing audience selection

    Campaigns use existing contact lists, with recipient count, association, state tracking, and duplicate handling.

  • Predefined landing pages

    JSX-based campaign templates with configurable content and recipient variables. Users edit the experience in-product instead of supplying arbitrary HTML.

  • Address collection

    Landing pages can collect a recipient address so physical gifts can move into fulfillment.

  • Gift fulfillment

    Physical gifts are selected, associated with recipients, costed with shipping, and tracked through fulfillment.

  • Postcard campaigns

    Postcards can be selected and configured as another physical touchpoint with personalized content and recipient address.

  • Multi-step outreach

    Sequences mix email, postcard, gift, and other channels. Follow-ups can wait, react to opens, or fire after an address is submitted.

  • Behavior-based automation

    Opens, clicks, page visits, form and address submissions, gift delivery, time delays, event dates, and booked meetings can all trigger the next action.

  • Recipient-level state

    Each recipient progresses independently through draft to running, paused, completed, or cancelled, so one campaign can hold many journeys.

  • Stripe payment before launch

    Gift, shipping, postcard, and campaign costs roll into one price. Payment completes before the workflow is allowed to start.

  • Campaign analytics

    Owners can monitor recipients, opens, clicks, visits, submissions, gift and postcard status, conversions, spend, errors, and recipient-level state.

Outcomes

  • Adaptive campaign wizard
  • Multiple campaign types and dynamic goals
  • Existing contact-list integration
  • Predefined JSX landing-page experiences
  • Recipient personalization variables
  • Address collection
  • Gift selection and fulfillment
  • Postcard campaigns
  • Multi-step outreach and behavior-based follow-ups
  • Recipient-level campaign state
  • Campaign analytics
  • Gift and shipping cost calculation
  • Stripe payment before launch
  • BullMQ and Redis background processing
  • NestJS, MongoDB, AWS S3, and Resend
  • Microservice architecture
  • Authentication, retries, and failure handling