---
title: "Klaviyo Campaign Scheduling Across Markets | Kylon"
description: "How a lifecycle team decides, builds and withdraws Klaviyo campaigns across markets, reviews the send plan and handles freezes in one Kylon room, each build approved."
url: "https://kylon.io/use-cases/klaviyo-campaign-scheduling"
language: "en"
---

[HOME](https://kylon.io/)\>[Use Cases](https://kylon.io/use-cases)\>Klaviyo Campaign Scheduling: Four Markets and One Send Calendar That Stays Right

Use Case8 min read

# Klaviyo Campaign Scheduling: Four Markets and One Send Calendar That Stays Right

Campaign requests from four markets are scheduled or held under one policy, built in Klaviyo after approval, and reassessed when a market freezes, segments change or templates arrive. The lifecycle manager approves every build and withdrawal.

[Get started](https://app.kylon.io/sign-up)

Kylon TeamProduct

November 6, 2026

## Four markets, one send calendar and campaigns that change after they are built

Lifecycle marketing takes campaign requests from four market teams in an Airtable base: the offer, the segment, the send date and the template. The scheduling policy decides which ones go out. No two campaigns hit overlapping segments on the same day, each market has a weekly cap, and a campaign needs a template that has passed review. Scheduled campaigns are built in Klaviyo. Held ones wait in the base with their reason.

Most of the work comes after the first build. The German market freezes sends while a pricing change is reviewed. The data team revises two segments, which changes who overlaps with whom. Design assigns templates to campaigns that were waiting for one. Each change can turn a held campaign into a scheduled one that needs building, or a built one into a held one that has to come out of Klaviyo before it sends.

## Who works in the room

People

-   Lifecycle marketing manager
    
    Owns the scheduling policy and approves every build, withdrawal and close-out
    
-   Market leads
    
    Request campaigns for their market and decide when a market freezes sends
    
-   Data team
    
    Owns segment definitions and confirms each revision
    

Agents

-   NovaCampaign planner
    
    Schedules or holds each request under the policy, builds approved campaigns in Klaviyo and withdraws ones that become held
    
    KlaviyoAirtableGoogle Docs
    
-   RyanSend plan checker
    
    Checks the coordinator's send plan against the decisions, with one review code per line
    
    AirtableGoogle Drive
    
-   FinMarket correspondence
    
    Drafts replies to market leads on their own threads and picks up questions from Slack
    
    [Gmail](https://kylon.io/integrations/gmail) [Slack](https://kylon.io/integrations/slack)
    

The send calendar has one Kylon room. Nova is the default agent and owns the decisions and the builds, so a question about whether a campaign goes out on Thursday reaches Nova. Ryan checks the send plan, and Fin handles the market teams' email threads. Nova builds in Klaviyo through a grant the lifecycle manager approved for the room and reads the policy from Google Docs. After each reassessment, Nova posts the changed campaigns in the thread and mentions Ryan to check the plan against them before anyone acts.

## How the week's campaigns get decided

Both the scheduling policy and the tier rules are Google Docs, and change notices arrive in the run folder. The withdrawal rule is spelled out in the room guidelines: a built campaign that becomes held is pulled from the schedule and renamed with the team's withdrawn prefix, never deleted.

```mermaid
flowchart TD
  requests([Market teams request<br>campaigns in Airtable])
  decide["<b>Nova</b> schedules or holds each<br>request under the policy"]
  ok1["<b>Lifecycle manager</b> approves<br>before anything is built"]
  build["<b>Nova</b> builds scheduled campaigns,<br>then sets follow-up tiers"]
  plan["<b>Ryan</b> checks the send plan,<br>one review code per line"]
  freeze["<b>Market lead</b><br>confirms a freeze"]
  seg["<b>Data team</b> confirms<br>revised segments"]
  bt["<b>Nova</b> reassesses held ones<br>with a reviewed template"]
  wd["<b>Nova</b> proposes withdrawing<br>built ones, never deleting"]
  ov["<b>Nova</b> re-checks them<br>for overlap and cap"]
  reply["<b>Fin</b> drafts one reply on<br>the market lead's thread"]
  appr["<b>Lifecycle manager</b> approves each<br>build and withdrawal"]
  close["<b>Nova</b> writes one note per market"]
  sign["<b>Lifecycle manager</b> signs off"]
  requests --> decide --> ok1 --> build --> plan
  plan --> freeze & seg & bt
  freeze --> wd
  seg --> ov
  bt --> reply
  wd & ov & reply --> appr --> close --> sign
  class decide,build,plan,bt,wd,ov,reply,close agent
  class ok1,freeze,seg,appr,sign person
  class requests event
  classDef agent fill:#FFFFFF,stroke:#DCD3C8,color:#1B1712
  classDef person fill:#EEF0E3,stroke:#6E7447,color:#1B1712
  classDef event fill:#F4ECDD,stroke:#F4ECDD,color:#564C42
```

| Stage | What happens | Who acts | Who decides |
| --- | --- | --- | --- |
| Decisions | Every request is scheduled or held under the policy, scheduled ones are built in Klaviyo, and follow-up tiers stay blank | Nova, from Airtable | The lifecycle manager approves before anything is built or written |
| Follow-up tiers | Each scheduled campaign gets a follow-up tier under the tier rules | Nova | The lifecycle manager approves |
| Send plan check | The coordinator's send plan is checked against the decisions, one review code per line | Ryan | The coordinator corrects the plan |
| Market freeze | Every campaign for the frozen market is reassessed, and built ones are withdrawn | Nova | The market lead confirms the freeze; the lifecycle manager approves |
| Segment revisions | Campaigns whose segments changed are checked again for overlap and cap | Nova | The data team confirms the segments |
| Template assignments | Held campaigns that now have a reviewed template are reassessed and built if they qualify | Nova, then Fin for the market reply | The lifecycle manager approves; a person sends the reply |
| Close-out | One note per market with what is scheduled, held and withdrawn | Nova | The lifecycle manager signs off |

Stages of one week's campaign scheduling. Campaigns, markets and caps in this example are illustrative.

## When a market freezes or a segment is redrawn

The freeze for the German market arrives on Wednesday. Nova reassesses every German campaign, not only the ones going out this week. Two are already built in Klaviyo, so Nova proposes pulling them from the schedule and renaming them with the withdrawn prefix, and does it after the lifecycle manager approves. A German campaign that was already held stays held, with the freeze as its new reason.

A segment revision can cut either way. When the data team narrows a segment, a campaign held for overlap may now clear the policy, and Nova builds it after approval. When a market lead asks about a campaign that moved, Fin drafts one reply on the thread the lead started, names that one campaign, and leaves it for a person to send.

## What the checks catch

-   A send plan line that schedules a campaign the policy held, which is a wrong entry and not a missing one
-   A campaign that moved from held to scheduled but was never built in Klaviyo
-   A built campaign that is now held but still on the schedule
-   Follow-up tiers filled in on the first pass, before the tier rules apply
-   A second reply on the same request, or a reply on the wrong thread

## What stays with people

-   Approving every build and withdrawal before it touches Klaviyo
-   Freezing a market, which the market lead decides
-   Confirming segment definitions with the data team
-   Sending each reply to a market lead and signing the close-out

## Integrations in this workflow

Kylon is not a marketing automation platform and it does not replace Klaviyo. Campaigns stay in Klaviyo and requests stay in Airtable, and the room holds the decisions that connect them.

-   Airtable
    
-   [Gmail](https://kylon.io/integrations/gmail)
-   Google Docs
    
-   Google Drive
    
-   Klaviyo
    
-   [Slack](https://kylon.io/integrations/slack)

-   **Klaviyo** holds the campaigns, segments and templates, and builds and withdrawals happen there
-   **Airtable** holds the market teams' requests with each campaign's decision, reason and follow-up tier
-   **Google Docs** holds the scheduling policy and the tier rules
-   **Google Drive** keeps the run folder with the send plan and each change notice
-   **Gmail** carries replies to market leads, sent by a person from Fin's drafts
-   **Slack** is where market teams ask about a campaign's status

## Where to start

One market and one week is enough to begin. Connect Klaviyo and the Airtable base to the room, link the policy doc, and put the withdrawal rule in the room guidelines: nothing is built or withdrawn until the lifecycle manager approves, and a withdrawn campaign is renamed, never deleted.

> “A campaign that should not send has to come out of Klaviyo, not just off the plan.”

## Set it up with your agent

Open a new Room, add your agent and paste this prompt. It connects the tools, builds the App with you and asks for your rules one step at a time, and nothing goes out until a person approves it.

Set-up prompt

Set up our campaign scheduling desk in this Room. Take it one step at a time and wait for my OK before you move on.

1. Connect Airtable, Gmail, Google Docs, Google Drive, Klaviyo and Slack. Tell me which ones still need connecting.
2. Ask me who works this desk: the lifecycle marketing manager, the market leads and the data team. Help me invite them to this Room.
3. Build a Campaign Plan App with columns Requested, Held, Approved and Built, one record per campaign request. Fill it from the open requests in Airtable.
4. Check each request against our scheduling policy and tier rules in Google Docs. Propose a decision, a reason and a follow-up tier for each. Flag overlap, cap breaches and missing reviewed templates, and show me the ones that fail.
5. Draft replies to market leads on their own Gmail threads and pick up status questions from Slack. Leave every reply for a person to send. Build or withdraw nothing in Klaviyo until the lifecycle marketing manager approves. Rename withdrawn campaigns with the team prefix.
6. Write our withdrawal rule, the approval order and who confirms what into this Room's guideline so every request and change follows it.
7. After one clean week, offer to turn the reassessment and check sequence into an Automation.

Before you start, ask me for our rules one at a time.

[Get started](https://app.kylon.io/sign-up)

Your first company harness. Where humans and agents run your business together.

[Get started](https://app.kylon.io/sign-up)

## More Use Cases

[View all](https://kylon.io/use-cases)

[

### Ad Creative Approvals: A Launch Board That Matches What Is Actually Live

The agency's launch sheet is audited against live Meta Ads campaigns and Instagram posts, every creative gets a status and a launch window on the Miro board, and holds, budget cuts and late approvals are absorbed mid-wave. The desk lead approves every board change.

Media, publishing & agenciesApprovals & reviewsMarketing operations

](https://kylon.io/use-cases/ad-creative-approvals)[

### Ad Delivery Make-Goods: Every Shortfall Settled as a Bonus Placement or a Credit

Insertion orders are reconciled against delivered impressions and contract terms in one Kylon room. Agents work Attio, the Notion delivery report and the Outlook contract threads, re-run bonus allocations when numbers change, and the ad operations lead approves every outcome.

Media, publishing & agenciesMarketing operations

](https://kylon.io/use-cases/ad-delivery-makegoods)
