SequenceSteps

Create a sequence step

Creates an interval-based sequence step on the given sequence. interval is in MINUTES. This endpoint only creates interval-based steps. date/scheduled-send fields and AI LinkedIn fields (linkedInMessageAgentConfig, ...) are not supported here.

When order is omitted, SEP appends the step to the end of the sequence. SEP also creates the step's per-step email template (for email-action steps), compacts sequence step order, and writes the audit log.

action: "automatic_linkedin_message" is rejected (400). SEP only allows it inside connection-request follow-up (child) sequences, which this API does not expose. Use "manual_linkedin_message" instead.

Email content is written via emailSubject/emailBody here and read back by passing step.template.id to GET /emailTemplate/{id}. Reply-action steps (manual_email_reply, auto_email_reply) always have their template subject forced to "" regardless of emailSubject.

aiEmail configures AI email personalization, and is supported only on manual email steps (manual_email / manual_email_reply). It is rejected with 400 on auto_email/auto_email_reply and on every non-email action. Nooks has no AI automatic email. The sequence builder offers AI email configuration on manual steps only, so an AI automatic step created here could not be viewed or edited in the product, and its drafts would send with no rep review. This may widen later.

Provide exactly one of: aiEmail.agent, pointing at an existing AI Studio email agent, or aiEmail.promptOverride, a freeform prompt that drafts a fresh one-off agent for this step. Agent IDs are not discoverable via this API yet (no list-agents endpoint), so obtain them from the Nooks UI. An unknown or non-email agent ID returns 422. Internally the step is created, then immediately PATCHed with the AI config in a second call. If that second call fails, the step still exists as a plain manual email step (unconfigured for AI). The 422/500 error text says so, so retry with PATCH /sequenceSteps/{id} rather than re-running the create.

OAuth callers with the user role can only add steps to sequences they own (403 INSUFFICIENT_PERMISSION otherwise); admin and manager roles can add steps to any sequence in the workspace.

post/sequenceSteps

Request

  • Base URL: https://partner-api.nooks.in/v1
  • URL: https://partner-api.nooks.in/v1/sequenceSteps
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://oauth.nooks.in/oauth/authorize, token URL https://oauth.nooks.in/oauth/token, scopes: sequence-steps:write)

Request body

Example request

{
  "data": {
    "sequence": {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    },
    "action": "call",
    "interval": 1440,
    "order": 2,
    "name": "Follow-up call",
    "note": "Mention the pricing page",
    "emailSubject": "Quick question about {{company}}",
    "emailBody": "<p>Hi {{firstName}},</p>",
    "aiEmail": {
      "agent": {
        "id": "cc0e8400-e29b-41d4-a716-446655440090"
      },
      "promptOverride": "Reference their recent Series B funding announcement and keep it under 80 words."
    }
  }
}

Response

Sequence step created

idstring uuid required

Unique identifier for the sequence step

orderinteger required

Zero-based position of this step within the sequence

namestring nullable required

Optional display name for this step, or null if unnamed

intervalinteger nullable required

Number of minutes to wait before executing this step (null for the first step). POST/PATCH /sequenceSteps always require a non-null interval. null is a read-only state you cannot currently set through this API.

action'call' | 'manual_email' | 'auto_email' | 'manual_email_reply' | 'auto_email_reply' | 'basic_task' | 'linkedin_connection_request' | 'manual_linkedin_connection_request' | 'manual_linkedin_message' | 'automatic_linkedin_message' | 'manual_sms' | 'auto_sms' required

Type of action for this step:

  • call: Phone call task
  • manual_email: Manually composed email
  • auto_email: Automatically sent email
  • manual_email_reply: Manual email reply
  • auto_email_reply: Automatic email reply
  • basic_task: Generic manual task
  • linkedin_connection_request: LinkedIn connection request
  • manual_linkedin_connection_request: Manual LinkedIn connection request
  • manual_linkedin_message: Manual LinkedIn message
  • automatic_linkedin_message: Automatically sent LinkedIn message
  • manual_sms: Manual SMS message
  • auto_sms: Automatically sent SMS message
notestring nullable required

Optional note or instructions for this step

hasAbVariantsboolean required

Whether this step is running an A/B test (i.e. has multiple variants).

createdAtstring date-time required

When the step was created

updatedAtstring date-time required

When the step was last updated

Example response

{
  "id": "aa0e8400-e29b-41d4-a716-446655440030",
  "name": "Intro email",
  "interval": 4320,
  "action": "auto_email",
  "note": "Initial outreach email",
  "sequence": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "_href": "/v1/sequences/550e8400-e29b-41d4-a716-446655440000"
  },
  "template": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "_href": "/v1/sequences/550e8400-e29b-41d4-a716-446655440000"
  },
  "analytics": {
    "email": {
      "delivered": 412,
      "opened": 198,
      "clicked": 41,
      "replied": 23,
      "bounced": 7,
      "unsubscribed": 2
    },
    "calls": {
      "dialed": 380,
      "connected": 71,
      "meetings": 5
    },
    "linkedIn": {
      "connectionRequestsSent": 96,
      "connectionRequestsAccepted": 31,
      "messagesSent": 64,
      "repliesReceived": 12
    }
  },
  "createdAt": "2025-10-01T10:00:00.000Z",
  "updatedAt": "2025-10-01T10:00:00.000Z"
}

Changes

No recorded changes to this operation across all 1 revision of this API.