Skip to main content

POST /api/v1/public/campaigns//conditions/

Adds a new condition to a campaign. Conditions allow you to create branching logic in your campaign flow. Auth: X-API-Key

Path Parameters

  • id (integer, required): Campaign ID

Request Body

{
  "condition_type": "HAS_EMAIL",
  "delay_in_hours": 0,
  "parent_step_id": 123,
  "yes_child_step_id": 456,
  "no_child_step_id": 789
}

Available Condition Types

  • HAS_EMAIL: Check if the prospect has an email address
  • HAS_EMAIL_PREMIUM: Check if the prospect has a premium email (Gmail, Outlook, etc.)
  • ACCEPTED_INVITE: Check if the prospect accepted the LinkedIn connection request
  • ALREADY_CONNECTED: Check if the prospect is already connected on LinkedIn

Flow Management Fields

  • parent_step_id (integer, optional): ID of the step that comes before this condition
  • yes_child_step_id (integer, optional): ID of the step to execute if condition is true
  • no_child_step_id (integer, optional): ID of the step to execute if condition is false

Response

{
  "success": true,
  "condition": {
    "id": 101,
    "condition_type": "HAS_EMAIL",
    "delay_in_hours": 0,
    "parent_step_id": 123,
    "yes_child_step_id": 456,
    "no_child_step_id": 789,
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T10:30:00Z"
  },
  "campaign": {...}
}

Example

curl -X POST -H "X-API-Key: <key>" \
  -H "Content-Type: application/json" \
  -d '{
    "condition_type": "HAS_EMAIL",
    "parent_step_id": 123,
    "yes_child_step_id": 456,
    "no_child_step_id": 789
  }' \
  "https://api.seleqt.ai/api/v1/public/campaigns/123/conditions/"

Building Conditional Flows

Here’s an example of how to create a conditional campaign flow:

1. Create initial LinkedIn invite

curl -X POST -H "X-API-Key: <key>" \
  -H "Content-Type: application/json" \
  -d '{
    "step_type": "LINKEDIN_INVITE",
    "message_template": "Hi {{first_name}}, I would love to connect!",
    "delay_in_hours": 0
  }' \
  "https://api.seleqt.ai/api/v1/public/campaigns/123/steps/"

2. Create a condition to check if they have email

curl -X POST -H "X-API-Key: <key>" \
  -H "Content-Type: application/json" \
  -d '{
    "condition_type": "HAS_EMAIL",
    "parent_step_id": 456
  }' \
  "https://api.seleqt.ai/api/v1/public/campaigns/123/conditions/"

3. Create email step for prospects with email (YES path)

curl -X POST -H "X-API-Key: <key>" \
  -H "Content-Type: application/json" \
  -d '{
    "step_type": "EMAIL",
    "message_template": "Hi {{first_name}}, thanks for connecting!",
    "subject_line": "Quick question about {{company_name}}",
    "delay_in_hours": 24,
    "parent_condition_id": 101
  }' \
  "https://api.seleqt.ai/api/v1/public/campaigns/123/steps/"

4. Create LinkedIn message for prospects without email (NO path)

curl -X POST -H "X-API-Key: <key>" \
  -H "Content-Type: application/json" \
  -d '{
    "step_type": "LINKEDIN_MESSAGE",
    "message_template": "Thanks for connecting {{first_name}}! I would love to discuss how we can help {{company_name}}.",
    "delay_in_hours": 48,
    "parent_condition_id": 101
  }' \
  "https://api.seleqt.ai/api/v1/public/campaigns/123/steps/"
This creates a flow: LinkedIn Invite → Check if has email → Email (if yes) OR LinkedIn Message (if no)