Skip to main content

Overview

Actions are the building blocks of templates. Each action type has specific configuration options, execution behavior, and completion criteria. This reference covers all available action types in detail.

Action Categories

Actions are organized into three categories:
CategoryDescriptionAction Types
CommunicationMessages sent to customersSEND_EMAIL, SLACK
Customer TasksActions customers complete in portalREQUEST_DOCS, COLLECT_INFO, REQUEST_ASSETS
MeetingsScheduling and meeting coordinationSCHEDULE_MEETING

Common Configuration

All actions share these configuration options:

Basic Settings

SettingDescriptionRequired
LabelDisplay name shown to CSMs and customersYes
DescriptionDetailed explanation of the actionNo
TriggerWhen the action activatesYes

Trigger Configuration

Trigger Types:
├── milestone_start    # When milestone begins
│   └── delay_hours    # Optional delay (0-720 hours)
└── manual             # CSM triggers manually
Trigger TypeDescription
milestone_startActivates when the containing milestone starts
manualCSM must manually trigger from dashboard
Delay Configuration:
  • delay_hours: 0 - Immediate (default)
  • delay_hours: 24 - 1 day after milestone start
  • delay_hours: 168 - 1 week after milestone start

Visibility Settings

Control where actions appear: CSM Dashboard Settings:
SettingDescription
visibleShow in CSM implementation tab
labelCustom label for CSM view
sectionGroup under specific section
Customer Portal Settings:
SettingDescription
visibleShow in customer portal
labelCustomer-facing label
blockerBlock milestone completion until done

Blocker Configuration

When blocker: true, the action must be completed before:
  • The milestone can be marked complete
  • The customer sees “completed” status
  • Progress percentage reaches 100%

SEND_EMAIL

Send templated emails to customers with variable interpolation. [SCREENSHOT: Email action configuration panel] Caption: Configure email subject, body, and recipients

Configuration

FieldTypeDescriptionRequired
subjectstringEmail subject lineYes
bodystringEmail body (HTML supported)Yes
tostring[]Primary recipientsYes
ccstring[]CC recipientsNo
bccstring[]BCC recipientsNo

Variable Interpolation

Use variables in subject and body:
Available Variables:
├── {{company_name}}      # Customer company name
├── {{contact_name}}      # Primary contact name
├── {{contact_email}}     # Primary contact email
├── {{csm_name}}          # Assigned CSM name
├── {{csm_email}}         # Assigned CSM email
├── {{milestone_name}}    # Current milestone name
└── {{custom_field}}      # Any custom field value
Example:
Subject: Welcome to Thread, {{company_name}}!

Body: Hi {{contact_name}},

I'm {{csm_name}}, your Customer Success Manager.
I'm excited to help {{company_name}} get started with Thread.

Execution

  1. Draft Generation: AI generates initial draft based on template
  2. CSM Review: CSM reviews and edits in implementation tab
  3. Approval: CSM approves the email
  4. Sending: Email sent via configured email provider

Completion

  • Type: Manual
  • Criteria: CSM marks action as complete after sending
  • Status Flow: draftapprovedsentcompleted

Best Practices

Personalize Early

Include contact name in subject for better open rates

Clear CTAs

One clear call-to-action per email

Mobile-Friendly

Keep subject under 50 characters

Test Variables

Preview with real data before sending

REQUEST_DOCS

Request document uploads from customers through the portal. [SCREENSHOT: Document request configuration] Caption: Configure document types and requirements

Configuration

FieldTypeDescriptionRequired
document_typesarrayTypes of documents to requestYes
instructionsstringInstructions for customerNo
allow_multiplebooleanAllow multiple files per typeNo

Document Type Configuration

{
  document_types: [
    {
      name: "Logo",
      description: "Company logo in PNG or SVG format",
      required: true,
      accepted_formats: [".png", ".svg", ".jpg"]
    },
    {
      name: "Brand Guidelines",
      description: "Brand style guide if available",
      required: false,
      accepted_formats: [".pdf", ".doc", ".docx"]
    }
  ]
}

Execution

  1. Activation: Action appears in customer portal
  2. Upload: Customer uploads requested files
  3. Validation: System validates file types and sizes
  4. Notification: CSM notified when files uploaded

Completion

  • Type: Automatic
  • Criteria: All required documents uploaded
  • Partial Completion: Shows X of Y documents uploaded

File Restrictions

RestrictionDefaultConfigurable
Max file size10 MBYes
Accepted formatsPer document typeYes
Max files per type5Yes

COLLECT_INFO

Collect structured information from customers via forms. [SCREENSHOT: Form builder interface] Caption: Build custom forms with various field types

Configuration

FieldTypeDescriptionRequired
intro_textstringIntroduction shown before formNo
fieldsarrayForm field definitionsYes
completion_messagestringMessage shown after submissionNo

Field Types

Available Field Types:
├── text           # Single-line text input
├── textarea       # Multi-line text area
├── select         # Dropdown selection
├── multi_select   # Multiple choice selection
├── checkbox       # Boolean checkbox
├── date           # Date picker
├── email          # Email with validation
├── phone          # Phone number
└── number         # Numeric input

Field Configuration

{
  fields: [
    {
      id: "primary_use_case",
      type: "textarea",
      label: "What is your primary use case?",
      placeholder: "Describe how you plan to use our product...",
      required: true,
      validation: {
        min_length: 50,
        max_length: 1000
      }
    },
    {
      id: "team_size",
      type: "select",
      label: "Team size",
      options: ["1-10", "11-50", "51-200", "200+"],
      required: true
    }
  ]
}

Execution

  1. Activation: Form appears in customer portal
  2. Completion: Customer fills out all required fields
  3. Validation: Client and server-side validation
  4. Submission: Data stored and CSM notified

Completion

  • Type: Automatic
  • Criteria: Form submitted successfully
  • Validation: All required fields must pass validation

Quick-Fill Feature

Customers can use AI-powered quick-fill:
  1. Paste relevant text (emails, documents)
  2. AI extracts information
  3. Fields auto-populated
  4. Customer reviews and submits

REQUEST_ASSETS

Request brand assets combining document uploads and form fields in a unified flow. [SCREENSHOT: Asset request configuration] Caption: Configure combined asset and information request

Configuration

FieldTypeDescriptionRequired
asset_typesarrayDocuments/images to requestYes
form_fieldsarrayAdditional information fieldsNo
instructionsstringOverall instructionsNo

Asset Type Configuration

{
  asset_types: [
    {
      name: "Primary Logo",
      description: "Main company logo",
      type: "image",
      required: true,
      dimensions: {
        min_width: 500,
        recommended: "1000x1000"
      }
    },
    {
      name: "Brand Colors",
      description: "Primary and secondary brand colors",
      type: "color_picker",
      required: true,
      count: 3
    }
  ],
  form_fields: [
    {
      id: "tagline",
      type: "text",
      label: "Company tagline",
      required: false
    }
  ]
}

Combined Flow

REQUEST_ASSETS combines:
  • Document uploads (like REQUEST_DOCS)
  • Form fields (like COLLECT_INFO)
  • Special asset types (colors, dimensions)
Use Cases:
  • Brand kit collection
  • Design asset gathering
  • Marketing material requests

Execution

  1. Activation: Combined interface appears in portal
  2. Upload: Customer uploads images/documents
  3. Form Fill: Customer completes additional fields
  4. Submission: All data submitted together

Completion

  • Type: Automatic
  • Criteria: All required assets and fields submitted
  • Progress: Shows completion percentage

SCHEDULE_MEETING

Coordinate meeting scheduling with customers. [SCREENSHOT: Meeting configuration panel] Caption: Configure meeting details and scheduling options

Configuration

FieldTypeDescriptionRequired
meeting_typestringType of meetingYes
durationnumberDuration in minutesYes
agendastringMeeting agendaNo
attendeesarrayRequired attendeesNo

Meeting Types

Common Meeting Types:
├── Kickoff Call       # Initial onboarding meeting
├── Training Session   # Product training
├── Check-in           # Regular touchpoint
├── QBR                # Quarterly business review
└── Executive Sync     # Leadership meeting

Configuration Example

{
  meeting_type: "Kickoff Call",
  duration: 60,
  agenda: "1. Introductions\n2. Goals review\n3. Timeline walkthrough\n4. Q&A",
  attendees: {
    internal: ["csm", "implementation_lead"],
    external: ["primary_contact", "executive_sponsor"]
  }
}

Execution

  1. Activation: Meeting action becomes active
  2. Scheduling: CSM shares scheduling link or books directly
  3. Confirmation: Calendar invites sent to all parties
  4. Meeting: Meeting occurs
  5. Completion: CSM marks complete after meeting

Completion

  • Type: Manual
  • Criteria: CSM marks complete after meeting held
  • Notes: CSM can add meeting notes on completion

Calendar Integration

When connected to Google Calendar or Microsoft:
  • Availability checking
  • Auto-generated meeting links (Meet/Teams)
  • Calendar invites sent automatically

SLACK

Send messages to Slack channels (requires Slack integration). [SCREENSHOT: Slack message configuration] Caption: Configure Slack message content and channel

Configuration

FieldTypeDescriptionRequired
channelstringTarget Slack channelYes
messagestringMessage contentYes
formattingobjectMessage formatting optionsNo

Message Configuration

{
  channel: "#customer-{{company_slug}}",
  message: "Welcome to Thread! Your CSM {{csm_name}} will reach out shortly.",
  formatting: {
    include_logo: true,
    include_links: true
  }
}

Variable Support

Same variables as SEND_EMAIL:
  • {{company_name}}
  • {{contact_name}}
  • {{csm_name}}
  • Custom fields

Execution

  1. Channel Setup: Shared Slack channel must exist
  2. Draft: Message prepared with variables
  3. Review: CSM reviews message
  4. Send: Message posted to channel

Completion

  • Type: Manual
  • Criteria: CSM marks complete after sending
  • Verification: Message delivery confirmed

Prerequisites

  • Slack integration connected
  • Shared channel with customer
  • Bot has channel access

Comparison Table

Action TypeAuto-CompletePortal VisibleExecutableCategory
SEND_EMAILNoNoYesCommunication
REQUEST_DOCSYesYesYesCustomer Tasks
COLLECT_INFOYesYesYesCustomer Tasks
REQUEST_ASSETSYesYesYesCustomer Tasks
SCHEDULE_MEETINGNoOptionalNoMeetings
SLACKNoNoNoCommunication

Best Practices

Choosing Action Types

Use SEND_EMAIL for:
  • Formal communications
  • Content customers need to reference later
  • External stakeholders not in Slack
Use SLACK for:
  • Quick updates
  • Casual check-ins
  • Time-sensitive notifications
Use REQUEST_DOCS for:
  • Single document type requests
  • Compliance documents
  • Contracts and agreements
Use REQUEST_ASSETS for:
  • Brand kit collection
  • Multiple related assets
  • Combined file and form data
Best for:
  • Structured data collection
  • Survey responses
  • Configuration preferences
  • Technical requirements

Trigger Timing

ScenarioRecommended Delay
Welcome email0 hours (immediate)
Follow-up check-in48-72 hours
Document request24 hours
Training scheduling72-168 hours

Blocker Strategy

Mark as blocker when:
  • Action is critical to milestone success
  • Downstream actions depend on completion
  • Customer commitment is required
Don’t mark as blocker when:
  • Action is nice-to-have
  • CSM can proceed without it
  • Action is informational only

Next Steps