Campaigns

Campaigns in Luella represent a complete outreach strategy that combines a set of sequences (including messaging, wait times, and configurations), a targeted list of contacts, and specific sending schedules. Each campaign ensures that the right messages are sent to the right people at the right time, following the configured logic of the selected sequences.

The campaign model

The campaign model defines metadata, status, ownership, performance metrics, and automation settings for running targeted outreach campaigns.

Properties

  • Name
    campaignId
    Type
    string
    Description

    Unique identifier for the campaign.

  • Name
    workspaceId
    Type
    string
    Description

    Workspace the campaign belongs to.

  • Name
    emoji
    Type
    string
    Description

    Optional emoji tag for visual identification.

  • Name
    name
    Type
    string
    Description

    Name of the campaign.

  • Name
    description
    Type
    string
    Description

    Optional description or context about the campaign.

  • Name
    creator
    Type
    string
    Description

    User who originally created the campaign.

  • Name
    owner
    Type
    string
    Description

    User currently responsible for the campaign.

  • Name
    status
    Type
    string
    Description

    Current campaign status (e.g., Draft, Active, Paused, Completed).

  • Name
    metadata
    Type
    object
    Description

    Campaign configuration settings such as daily limits, provider matching, and open tracking.

  • Name
    sentCount
    Type
    number
    Description

    Number of messages sent so far.

  • Name
    replyCount
    Type
    number
    Description

    Number of replies received.

  • Name
    openCount
    Type
    number
    Description

    Number of opens tracked.

  • Name
    createdAt
    Type
    timestamp (ISO string)
    Description

    Time the campaign was created.

  • Name
    lastUpdatedAt
    Type
    timestamp (ISO string)
    Description

    Time the campaign was last updated.


POST/campaigns/ListCampaigns

List all campaigns

Retrieve a list of campaigns filtered by sequence, schedule, owner, or status.

Required attributes

  • Name
    userId
    Type
    string
    Description

    User requesting the campaign list.

  • Name
    workspaceId
    Type
    string
    Description

    Workspace to list campaigns from.

Optional attributes

  • Name
    sequenceId
    Type
    string
    Description

    Filter campaigns by sequence ID.

  • Name
    scheduleId
    Type
    string
    Description

    Filter campaigns by schedule ID.

  • Name
    status
    Type
    string
    Description

    Filter by campaign status.

  • Name
    creator
    Type
    string
    Description

    Filter by creator ID.

  • Name
    owner
    Type
    string
    Description

    Filter by current owner.

  • Name
    sortOrder
    Type
    string
    Description

    Sort results (Ascending or Descending).

  • Name
    maxItems
    Type
    number
    Description

    Maximum campaigns to return.

  • Name
    nextToken
    Type
    number
    Description

    Pagination token to retrieve next set of campaigns.

Request

POST
/campaigns/ListCampaigns
{
  "userId": "user_123",
  "workspaceId": "workspace_456",
  "status": "Active",
  "maxItems": 10
}

Response

{
  "campaigns": [
    {
      "campaignId": "camp_001",
      "owner": "user_123",
      "status": "Active",
      "emoji": "๐Ÿš€",
      "name": "April Outreach",
      "sentCount": 100,
      "replyCount": 23,
      "openCount": 70,
      "createdAt": "2024-04-01T00:00:00.000Z"
    }
  ],
  "nextToken": null
}

POST/campaigns/CreateCampaign

Create a new campaign

Create a new campaign with a name, optional emoji, description, and owner.

Required attributes

  • Name
    userId
    Type
    string
    Description

    User creating the campaign.

  • Name
    workspaceId
    Type
    string
    Description

    Workspace in which the campaign is created.

  • Name
    name
    Type
    string
    Description

    Name of the campaign.

Optional attributes

  • Name
    emoji
    Type
    string
    Description

    Optional emoji label for campaign.

  • Name
    description
    Type
    string
    Description

    Short description of the campaign.

  • Name
    owner
    Type
    string
    Description

    Optional owner ID of the campaign.

Request

POST
/campaigns/CreateCampaign
{
  "userId": "user_123",
  "workspaceId": "workspace_456",
  "name": "Cold Outreach Q2",
  "emoji": "๐ŸŽฏ",
  "description": "Targeting early-stage startups",
  "owner": "user_123"
}

Response

{
  "campaignId": "camp_001"
}

POST/campaigns/GetCampaign

Get a campaign

Retrieve full details and metadata of a campaign using its unique ID.

Required attributes

  • Name
    userId
    Type
    string
    Description

    ID of the requesting user.

  • Name
    workspaceId
    Type
    string
    Description

    Workspace that owns the campaign.

  • Name
    campaignId
    Type
    string
    Description

    The campaign ID to retrieve.

Request

POST
/campaigns/GetCampaign
{
  "userId": "user_123",
  "workspaceId": "workspace_456",
  "campaignId": "camp_001"
}

Response

{
  "workspaceId": "workspace_456",
  "campaignId": "camp_001",
  "emoji": "๐ŸŽฏ",
  "name": "Cold Outreach Q2",
  "description": "Targeting early-stage startups",
  "creator": "user_789",
  "owner": "user_123",
  "status": "Active",
  "metadata": {
    "mailboxes": ["john@luella.ai", "john.doe@luella.ai"],
    "openTracking": true,
    "dailyLimit": 100,
    "providerMatching": true,
    "stopOnAutoReply": true,
    "ccAddresses": [],
    "bccAddresses": [],
    "autoOptimize": false
  },
  "sentCount": 250,
  "replyCount": 42,
  "openCount": 180,
  "createdAt": "2024-04-01T00:00:00.000Z",
  "lastUpdatedAt": "2024-04-05T08:30:00.000Z"
}

POST/campaigns/UpdateCampaignMetadata

Update campaign metadata

Update metadata settings such as mailboxes, limits, tracking, and automation for a specific campaign.

Required attributes

  • Name
    userId
    Type
    string
    Description

    User making the update.

  • Name
    workspaceId
    Type
    string
    Description

    Workspace the campaign belongs to.

  • Name
    campaignId
    Type
    string
    Description

    ID of the campaign being updated.

Optional attributes

  • Name
    mailboxes
    Type
    string[]
    Description

    Array of email addresses to be used in the campaign.

  • Name
    openTracking
    Type
    boolean
    Description

    Enable open tracking for this campaign.

  • Name
    dailyLimit
    Type
    number
    Description

    Max number of messages to send per day.

  • Name
    providerMatching
    Type
    boolean
    Description

    Match sending domain with recipient domain where possible.

  • Name
    stopOnAutoReply
    Type
    boolean
    Description

    Stop sending if an auto-reply is detected.

  • Name
    ccAddresses
    Type
    string[]
    Description

    Email addresses to CC in each message.

  • Name
    bccAddresses
    Type
    string[]
    Description

    Email addresses to BCC in each message.

  • Name
    autoOptimize
    Type
    boolean
    Description

    Enable dynamic optimization of send order and timing.

Request

POST
/campaigns/UpdateCampaignMetadata
{
  "userId": "user_123",
  "workspaceId": "workspace_456",
  "campaignId": "camp_001",
  "mailboxes": ["john.doe@luella.ai"], // This email address should already be onboarded to Luella.
  "openTracking": true,
  "dailyLimit": 75,
  "providerMatching": true,
  "autoOptimize": false
}

Response

{
  "campaignId": "camp_001"
}

POST/campaigns/UpdateCampaign

Update a campaign

Update the core attributes of a campaign such as name, description, owner, emoji, and status.

Required attributes

  • Name
    userId
    Type
    string
    Description

    User making the request.

  • Name
    workspaceId
    Type
    string
    Description

    Workspace the campaign belongs to.

  • Name
    campaignId
    Type
    string
    Description

    ID of the campaign being updated.

  • Name
    name
    Type
    string
    Description

    Updated campaign name.

  • Name
    status
    Type
    string
    Description

    New campaign status (e.g., Draft, Active, Paused, Completed).

Optional attributes

  • Name
    emoji
    Type
    string
    Description

    Updated emoji tag.

  • Name
    description
    Type
    string
    Description

    Updated description text.

  • Name
    owner
    Type
    string
    Description

    New owner ID.

Request

POST
/campaigns/UpdateCampaign
{
  "userId": "user_123",
  "workspaceId": "workspace_456",
  "campaignId": "camp_001",
  "name": "Updated Campaign Name",
  "status": "Paused",
  "emoji": "โœ‰๏ธ",
  "description": "Updated description",
  "owner": "user_456"
}

Response

{
  "campaignId": "camp_001"
}

POST/campaigns/DeleteCampaign

Delete a campaign

Permanently deletes a campaign and all its related metadata.

Required attributes

  • Name
    userId
    Type
    string
    Description

    User initiating the deletion.

  • Name
    workspaceId
    Type
    string
    Description

    Workspace the campaign belongs to.

  • Name
    campaignId
    Type
    string
    Description

    ID of the campaign to delete.

Request

POST
/campaigns/DeleteCampaign
{
  "userId": "user_123",
  "workspaceId": "workspace_456",
  "campaignId": "camp_001"
}

Response

{}

Was this page helpful?