Skip to content

Activate a sequence

client.Sequence.Activate(ctx, id, body) (*SequenceActivateResponse, error)
POST/v1/sequences/{id}/activate

Starts sending a published sequence to its enrolled contacts and returns it. Requires a published version and an available sender for each channel the steps use; senders are added through the draft. An active sequence is returned unchanged. The sequence’s status changes immediately; its enrollments’ statuses follow asynchronously. Returns 400 sequence_not_published before the first publish, 400 no_selectable_sender when a channel has no available sender, and 409 when the sequence changed while the request ran: re-read it to see the change, then retry.

Required scope: sequences:update

Rate limit category: Write

ParametersExpand Collapse
id string

Unique identifier of the sequence.

body SequenceActivateParams
Body param.Field[SequenceActivateParamsBody]Optional
ReturnsExpand Collapse
type SequenceActivateResponse struct{…}
ID string

Unique identifier of the sequence.

Channels []string

Channels the published steps send on; empty before the first publish.

One of the following:
const SequenceActivateResponseChannelEmail SequenceActivateResponseChannel = "EMAIL"
const SequenceActivateResponseChannelLinkedin SequenceActivateResponseChannel = "LINKEDIN"
CreatedAt string

ISO 8601 creation timestamp.

Definition SequenceActivateResponseDefinition

Published configuration, or null before the first publish.

Description string

What this version of the sequence is for.

Messaging SequenceActivateResponseDefinitionMessaging

Messaging inputs that frame every step.

CallToAction string

What the recipient is asked to do.

Persona string

Who the sequence targets.

Trigger string

Why the outreach is timely.

ValueProp string

The value proposition.

Pacing SequenceActivateResponseDefinitionPacing

How the whole sequence paces each step type it sends, keyed by sequence step type.

Email SequenceActivateResponseDefinitionPacingEmail

Email steps.

DailyLimit int64

Most sends of this step type across the whole sequence in any rolling 24 hours, or null when the sequence sets no daily cap. Workspace and sender limits still apply.

minimum-9007199254740991
maximum9007199254740991
LinkedinInvite SequenceActivateResponseDefinitionPacingLinkedinInvite

LinkedIn connection requests.

DailyLimit int64

Most sends of this step type across the whole sequence in any rolling 24 hours, or null when the sequence sets no daily cap. Workspace and sender limits still apply.

minimum-9007199254740991
maximum9007199254740991
LinkedinMessage SequenceActivateResponseDefinitionPacingLinkedinMessage

LinkedIn messages.

DailyLimit int64

Most sends of this step type across the whole sequence in any rolling 24 hours, or null when the sequence sets no daily cap. Workspace and sender limits still apply.

minimum-9007199254740991
maximum9007199254740991
Priority string

Send priority relative to other sequences.

One of the following:
const SequenceActivateResponseDefinitionPriorityHigh SequenceActivateResponseDefinitionPriority = "HIGH"
const SequenceActivateResponseDefinitionPriorityNormal SequenceActivateResponseDefinitionPriority = "NORMAL"
SendWindow SequenceActivateResponseDefinitionSendWindow

When the sequence may send.

DaysOfWeek []int64

Days sends may go out, 0 = Sunday.

EndHour int64

Local hour sends stop, exclusive (1–24).

minimum-9007199254740991
maximum9007199254740991
StartHour int64

First local hour sends may go out (0–23).

minimum-9007199254740991
maximum9007199254740991
Timezone string

IANA timezone of the window.

Steps []SequenceActivateResponseDefinitionStepUnion

Email, LinkedIn and wait steps in execution order.

One of the following:
type SequenceActivateResponseDefinitionStepObject struct{…}
ID string

Step identifier, referenced by enrollment currentStepId and message sequenceStepId.

DeliveryMode string

AUTO sends without manual approval, subject to the send window and limits; FOR_REVIEW requires a person to approve the draft before sending.

One of the following:
const SequenceActivateResponseDefinitionStepObjectDeliveryModeAuto SequenceActivateResponseDefinitionStepObjectDeliveryMode = "AUTO"
const SequenceActivateResponseDefinitionStepObjectDeliveryModeForReview SequenceActivateResponseDefinitionStepObjectDeliveryMode = "FOR_REVIEW"
Mode string

How each message is written: AGENT composes it from prompt; TEMPLATE sends template to every contact, with its variables filled in.

Name string

Display name of the step.

Prompt string

Instructions the agent follows when composing this message.

Type string

Step type.

One of the following:
const SequenceActivateResponseDefinitionStepObjectTypeEmail SequenceActivateResponseDefinitionStepObjectType = "EMAIL"
const SequenceActivateResponseDefinitionStepObjectTypeLinkedinMessage SequenceActivateResponseDefinitionStepObjectType = "LINKEDIN_MESSAGE"
type SequenceActivateResponseDefinitionStepObject2 struct{…}
ID string

Step identifier, referenced by enrollment currentStepId and message sequenceStepId.

DeliveryMode string

AUTO sends without manual approval, subject to the send window and limits; FOR_REVIEW requires a person to approve the draft before sending.

One of the following:
const SequenceActivateResponseDefinitionStepObject2DeliveryModeAuto SequenceActivateResponseDefinitionStepObject2DeliveryMode = "AUTO"
const SequenceActivateResponseDefinitionStepObject2DeliveryModeForReview SequenceActivateResponseDefinitionStepObject2DeliveryMode = "FOR_REVIEW"
IncludeNote bool

Whether the connection request carries a note. A step authored before this setting existed reads as true.

Mode string

How each message is written: AGENT composes it from prompt; TEMPLATE sends template to every contact, with its variables filled in.

Name string

Display name of the step.

Prompt string

Instructions the agent follows when composing this message.

Type string

Step type.

type SequenceActivateResponseDefinitionStepObject3 struct{…}
ID string

Step identifier, referenced by enrollment currentStepId and message sequenceStepId.

DeliveryMode string

AUTO sends without manual approval, subject to the send window and limits; FOR_REVIEW requires a person to approve the draft before sending.

One of the following:
const SequenceActivateResponseDefinitionStepObject3DeliveryModeAuto SequenceActivateResponseDefinitionStepObject3DeliveryMode = "AUTO"
const SequenceActivateResponseDefinitionStepObject3DeliveryModeForReview SequenceActivateResponseDefinitionStepObject3DeliveryMode = "FOR_REVIEW"
Mode string

How each message is written: AGENT composes it from prompt; TEMPLATE sends template to every contact, with its variables filled in.

Name string

Display name of the step.

Template SequenceActivateResponseDefinitionStepObject3Template

The email every contact receives.

Body string

Email body as Markdown, without the sign-off or signature, which are added when the message is written. Each {{ }} is a variable filled in per contact, with a fallback for a contact missing the value; a field variable names the field by the ad_ ID the field-definitions endpoints list.

Subject string

Plain-text subject line. Each {{ }} is a variable filled in per contact, with a fallback for a contact missing the value; a field variable names the field by the ad_ ID the field-definitions endpoints list.

Type string

Step type.

type SequenceActivateResponseDefinitionStepObject4 struct{…}
ID string

Step identifier, referenced by enrollment currentStepId and message sequenceStepId.

DeliveryMode string

AUTO sends without manual approval, subject to the send window and limits; FOR_REVIEW requires a person to approve the draft before sending.

One of the following:
const SequenceActivateResponseDefinitionStepObject4DeliveryModeAuto SequenceActivateResponseDefinitionStepObject4DeliveryMode = "AUTO"
const SequenceActivateResponseDefinitionStepObject4DeliveryModeForReview SequenceActivateResponseDefinitionStepObject4DeliveryMode = "FOR_REVIEW"
Mode string

How each message is written: AGENT composes it from prompt; TEMPLATE sends template to every contact, with its variables filled in.

Name string

Display name of the step.

Template SequenceActivateResponseDefinitionStepObject4Template

The message every contact receives; for an invite, its connection note, sent only with includeNote.

Body string

Plain-text message. Each {{ }} is a variable filled in per contact, with a fallback for a contact missing the value; a field variable names the field by the ad_ ID the field-definitions endpoints list.

Type string

Step type.

type SequenceActivateResponseDefinitionStepObject5 struct{…}
ID string

Step identifier, referenced by enrollment currentStepId and message sequenceStepId.

DeliveryMode string

AUTO sends without manual approval, subject to the send window and limits; FOR_REVIEW requires a person to approve the draft before sending.

One of the following:
const SequenceActivateResponseDefinitionStepObject5DeliveryModeAuto SequenceActivateResponseDefinitionStepObject5DeliveryMode = "AUTO"
const SequenceActivateResponseDefinitionStepObject5DeliveryModeForReview SequenceActivateResponseDefinitionStepObject5DeliveryMode = "FOR_REVIEW"
IncludeNote bool

Whether the connection request carries a note. A step authored before this setting existed reads as true.

Mode string

How each message is written: AGENT composes it from prompt; TEMPLATE sends template to every contact, with its variables filled in.

Name string

Display name of the step.

Template SequenceActivateResponseDefinitionStepObject5Template

The message every contact receives; for an invite, its connection note, sent only with includeNote.

Body string

Plain-text message. Each {{ }} is a variable filled in per contact, with a fallback for a contact missing the value; a field variable names the field by the ad_ ID the field-definitions endpoints list.

Type string

Step type.

type SequenceActivateResponseDefinitionStepObject6 struct{…}
ID string

Step identifier.

Duration int64

Length of the wait.

minimum-9007199254740991
maximum9007199254740991
Type string

WAIT pauses for a fixed time; WAIT_FOR_CONNECTION waits up to that long for a LinkedIn invite to be accepted.

One of the following:
const SequenceActivateResponseDefinitionStepObject6TypeWait SequenceActivateResponseDefinitionStepObject6Type = "WAIT"
const SequenceActivateResponseDefinitionStepObject6TypeWaitForConnection SequenceActivateResponseDefinitionStepObject6Type = "WAIT_FOR_CONNECTION"
Unit string

Unit of duration.

One of the following:
const SequenceActivateResponseDefinitionStepObject6UnitDay SequenceActivateResponseDefinitionStepObject6Unit = "DAY"
const SequenceActivateResponseDefinitionStepObject6UnitMinute SequenceActivateResponseDefinitionStepObject6Unit = "MINUTE"
FirstActivatedAt string

When the sequence was first activated.

LastActivatedAt string

When the sequence was most recently activated.

Name string

Name of the sequence.

ObjectType SequenceActivateResponseObjectType

Always sequence.

Reviewers []SequenceActivateResponseReviewer

Extra members who may approve this sequence’s FOR_REVIEW messages before they send. The sending member and the sequence’s creator always review, whether or not they are listed.

ID string

ID of the member.

minLength1
ObjectType string

Always member.

Senders []SequenceActivateResponseSender

The senders this sequence sends from; new contacts rotate across them. An archived sender stays listed but never sends; any change to the list drops it.

ID string

ID of the sender.

minLength1
ObjectType string

Always sender.

Status SequenceActivateResponseStatus

DRAFT has not been published; ACTIVE is enabled for sending; DEACTIVATED is published but paused.

One of the following:
const SequenceActivateResponseStatusDraft SequenceActivateResponseStatus = "DRAFT"
const SequenceActivateResponseStatusActive SequenceActivateResponseStatus = "ACTIVE"
const SequenceActivateResponseStatusDeactivated SequenceActivateResponseStatus = "DEACTIVATED"

Activate a sequence

package main

import (
  "context"
  "fmt"

  "github.com/Lightfld/lightfield-go"
  "github.com/Lightfld/lightfield-go/option"
)

func main() {
  client := githubcomlightfldlightfieldgo.NewClient(
    option.WithAPIKey("My API Key"),
  )
  sequenceActivateResponse, err := client.Sequence.Activate(
    context.TODO(),
    "id",
    githubcomlightfldlightfieldgo.SequenceActivateParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", sequenceActivateResponse.ID)
}
{
  "id": "id",
  "channels": [
    "EMAIL"
  ],
  "createdAt": "createdAt",
  "definition": {
    "description": "description",
    "messaging": {
      "callToAction": "callToAction",
      "persona": "persona",
      "trigger": "trigger",
      "valueProp": "valueProp"
    },
    "pacing": {
      "EMAIL": {
        "dailyLimit": -9007199254740991
      },
      "LINKEDIN_INVITE": {
        "dailyLimit": -9007199254740991
      },
      "LINKEDIN_MESSAGE": {
        "dailyLimit": -9007199254740991
      }
    },
    "priority": "HIGH",
    "sendWindow": {
      "daysOfWeek": [
        -9007199254740991
      ],
      "endHour": -9007199254740991,
      "startHour": -9007199254740991,
      "timezone": "timezone"
    },
    "steps": [
      {
        "id": "id",
        "deliveryMode": "AUTO",
        "mode": "AGENT",
        "name": "name",
        "prompt": "prompt",
        "type": "EMAIL"
      }
    ]
  },
  "firstActivatedAt": "firstActivatedAt",
  "lastActivatedAt": "lastActivatedAt",
  "name": "name",
  "objectType": "sequence",
  "reviewers": [
    {
      "id": "x",
      "objectType": "member"
    }
  ],
  "senders": [
    {
      "id": "x",
      "objectType": "sender"
    }
  ],
  "status": "DRAFT"
}
Returns Examples
{
  "id": "id",
  "channels": [
    "EMAIL"
  ],
  "createdAt": "createdAt",
  "definition": {
    "description": "description",
    "messaging": {
      "callToAction": "callToAction",
      "persona": "persona",
      "trigger": "trigger",
      "valueProp": "valueProp"
    },
    "pacing": {
      "EMAIL": {
        "dailyLimit": -9007199254740991
      },
      "LINKEDIN_INVITE": {
        "dailyLimit": -9007199254740991
      },
      "LINKEDIN_MESSAGE": {
        "dailyLimit": -9007199254740991
      }
    },
    "priority": "HIGH",
    "sendWindow": {
      "daysOfWeek": [
        -9007199254740991
      ],
      "endHour": -9007199254740991,
      "startHour": -9007199254740991,
      "timezone": "timezone"
    },
    "steps": [
      {
        "id": "id",
        "deliveryMode": "AUTO",
        "mode": "AGENT",
        "name": "name",
        "prompt": "prompt",
        "type": "EMAIL"
      }
    ]
  },
  "firstActivatedAt": "firstActivatedAt",
  "lastActivatedAt": "lastActivatedAt",
  "name": "name",
  "objectType": "sequence",
  "reviewers": [
    {
      "id": "x",
      "objectType": "member"
    }
  ],
  "senders": [
    {
      "id": "x",
      "objectType": "sender"
    }
  ],
  "status": "DRAFT"
}