Tellescope logo
Home    Product Blog    For Developers    Login    

Getting Started

Creating an Account

If your organization is already part of Tellescope, an administrator can send you an invitation to register through their Settings page.

To register a new account and create a new organization:
  • Register for a new account
  • Confirm your email address
  • Create a new organization (making you an administrator)

Once you have an account, you can generate an API key in your Settings page.

Authentication

Include an API key (Secret Key) in each request with the apiKey parameter.
You may also include an authToken as a Bearer Token in requests.

Public endpoints do not require authentication.

Documentation Conventions

Authentication info is omitted from examples in favor of conciseness.
A question mark (?) in example input indicates an optional parameter.

Updating Records

Records are created, updated, and returned as JSON. Most fields are represented as strings or numbers, but others are more complicated.
When updating array fields, values are appended by default.
When updating object fields, only the given key-values pairs are overwritten by default.
To overwrite an array or object in an update, use the { replaceObjectFields: true } option.

Endusers

Constraints

  • email must be unique across Endusers
  • phone must be unique across Endusers
  • externalId must be unique across Endusers
  • One of email or phone is required
  • Endusers can only access and modify their own profile

Login enduser (Public)

Method: POST

https://api.tellescope.com/v1/login-enduser

Generates an authentication token for access to enduser-facing endpoints

{
  id?: string,
  phone?: string,
  email?: string,
  password: string,
  durationInSeconds?: number (> 0)
}

Register as Enduser (Public)

Method: POST

https://api.tellescope.com/v1/register-as-enduser

Allows and enduser to register directly with an email and password

{
  fname?: string,
  lname?: string,
  emailConsent?: boolean,
  email: string,
  password: string
}

Set enduser password

Method: POST

https://api.tellescope.com/v1/set-enduser-password

Sets (or resets) an enduser's password. Minimum length 8 characters.

{
  id: string,
  password: string
}

Check enduser authentication

Method: GET

https://api.tellescope.com/v1/enduser-is-authenticated

Checks the validity of an enduser's authToken

{
  id?: string,
  authToken: string
}

Refresh enduser authentication

Method: POST

https://api.tellescope.com/v1/refresh-enduser-session

When called by an authenticated enduser, generates a new session

Authentication info only

Generate authToken

Method: GET

https://api.tellescope.com/v1/generate-enduser-auth-token

Generates an authToken for use by an enduser. Useful for integrating a 3rd-party authentication process or creating a session for an enduser without a set password in Tellescope.

{
  id?: string,
  externalId?: string,
  email?: string,
  phone?: string,
  durationInSeconds?: number (> 0)
}

Logout enduser

Method: POST

https://api.tellescope.com/v1/logout-enduser

Logs out an enduser

Authentication info only

Get session info

Method: GET

https://api.tellescope.com/v1/enduser-session-info

When called by an authenticated enduser, returns their session details

Authentication info only

Create Enduser

Method: POST

https://api.tellescope.com/v1/enduser

Creates a new Enduser

{
  externalId?: string,
  email?: string,
  emailConsent?: boolean,
  phone?: string,
  phoneConsent?: boolean,
  fname?: string,
  lname?: string,
  dateOfBirth?: Date,
  journeys?: {
    journey.id: journey.state.name
  },
  tags?: [string],
  fields?: {
    string: string
  },
  preference?: 'email' | 'sms' | 'call' | 'chat',
  assignedTo?: [string],
  unread?: boolean,
  lastActive?: Date,
  lastLogout?: Date,
  lastCommunication?: Date,
  avatar?: string
}

Create Endusers

Method: POST

https://api.tellescope.com/v1/endusers

Creates new Endusers

{
  create: [
    {
      externalId?: string,
      email?: string,
      emailConsent?: boolean,
      phone?: string,
      phoneConsent?: boolean,
      fname?: string,
      lname?: string,
      dateOfBirth?: Date,
      journeys?: {
        journey.id: journey.state.name
      },
      tags?: [string],
      fields?: {
        string: string
      },
      preference?: 'email' | 'sms' | 'call' | 'chat',
      assignedTo?: [string],
      unread?: boolean,
      lastActive?: Date,
      lastLogout?: Date,
      lastCommunication?: Date,
      avatar?: string
    }
  ]
}

Update Enduser

Method: PATCH

https://api.tellescope.com/v1/enduser/:id

Updates Enduser fields

{
  updates: {
    externalId?: string,
    email?: string,
    emailConsent?: boolean,
    phone?: string,
    phoneConsent?: boolean,
    fname?: string,
    lname?: string,
    dateOfBirth?: Date,
    journeys?: {
      journey.id: journey.state.name
    },
    tags?: [string],
    fields?: {
      string: string
    },
    preference?: 'email' | 'sms' | 'call' | 'chat',
    assignedTo?: [string],
    unread?: boolean,
    lastActive?: Date,
    lastLogout?: Date,
    lastCommunication?: Date,
    avatar?: string
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get Enduser

Method: GET

https://api.tellescope.com/v1/enduser/:id

Get an Enduser

{
  filter?: {}
}

Get Endusers

Method: GET

https://api.tellescope.com/v1/endusers

Get a page of Endusers

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete Enduser

Method: DELETE

https://api.tellescope.com/v1/enduser/:id

Delete one Enduser

Authentication info only

EnduserStatusUpdates

Create EnduserStatusUpdate

Method: POST

https://api.tellescope.com/v1/enduser-status-update

Creates a new EnduserStatusUpdate

{
  journeyId: string,
  enduserId: string,
  status: string
}

Create EnduserStatusUpdates

Method: POST

https://api.tellescope.com/v1/enduser-status-updates

Creates new EnduserStatusUpdates

{
  create: [
    {
      journeyId: string,
      enduserId: string,
      status: string
    }
  ]
}

Get EnduserStatusUpdate

Method: GET

https://api.tellescope.com/v1/enduser-status-update/:id

Get an EnduserStatusUpdate

{
  filter?: {}
}

Get EnduserStatusUpdates

Method: GET

https://api.tellescope.com/v1/enduser-status-updates

Get a page of EnduserStatusUpdates

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete EnduserStatusUpdate

Method: DELETE

https://api.tellescope.com/v1/enduser-status-update/:id

Delete one EnduserStatusUpdate

Authentication info only

ApiKeys

Generate ApiKey

Method: POST

https://api.tellescope.com/v1/api-key

Generates and returns a new ApiKey. The returned key is not stored in Tellescope and cannot be retrieved later.

Authentication info only

Get ApiKey

Method: GET

https://api.tellescope.com/v1/api-key/:id

Get an ApiKey

{
  filter?: {}
}

Get ApiKeys

Method: GET

https://api.tellescope.com/v1/api-keys

Get a page of ApiKeys

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete ApiKey

Method: DELETE

https://api.tellescope.com/v1/api-key/:id

Delete one ApiKey

Authentication info only

EngagementEvents

Create EngagementEvent

Method: POST

https://api.tellescope.com/v1/engagement-event

Creates a new EngagementEvent

{
  enduserId: string,
  type: string,
  significance: number (> 0),
  timestamp?: Date,
  fields?: {
    string: string
  }
}

Create EngagementEvents

Method: POST

https://api.tellescope.com/v1/engagement-events

Creates new EngagementEvents

{
  create: [
    {
      enduserId: string,
      type: string,
      significance: number (> 0),
      timestamp?: Date,
      fields?: {
        string: string
      }
    }
  ]
}

Update EngagementEvent

Method: PATCH

https://api.tellescope.com/v1/engagement-event/:id

Updates EngagementEvent fields

{
  updates: {
    type?: string,
    significance?: number (> 0),
    timestamp?: Date,
    fields?: {
      string: string
    }
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get EngagementEvent

Method: GET

https://api.tellescope.com/v1/engagement-event/:id

Get an EngagementEvent

{
  filter?: {}
}

Get EngagementEvents

Method: GET

https://api.tellescope.com/v1/engagement-events

Get a page of EngagementEvents

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete EngagementEvent

Method: DELETE

https://api.tellescope.com/v1/engagement-event/:id

Delete one EngagementEvent

Authentication info only

Journeys

Constraints

  • title must be unique across Journeys
  • states.name must be unique for each Journeys
  • states must include defaultState

Update State

Method: PATCH

https://api.tellescope.com/v1/journey/:id/state/:name

Updates a state in a journey. Endusers and automations are updated automatically.

{
  updates: 
}

Delete States

Method: DELETE

https://api.tellescope.com/v1/journey/:id/states

Deletes states in a journey. Endusers and automations are updated automatically.

{
  states: [string]
}

Create Journey

Method: POST

https://api.tellescope.com/v1/journey

Creates a new Journey

  • To update state names, use Update State to ensure that updates propagate to endusers
{
  title: string,
  defaultState?: string,
  description?: string,
  states?: [{ name: string, priority: 'Disengated' | 'N/A' | 'Engaged' }]
}

Create Journeys

Method: POST

https://api.tellescope.com/v1/journeys

Creates new Journeys

{
  create: [
    {
      title: string,
      defaultState?: string,
      description?: string,
      states?: [{ name: string, priority: 'Disengated' | 'N/A' | 'Engaged' }]
    }
  ]
}

Update Journey

Method: PATCH

https://api.tellescope.com/v1/journey/:id

Updates Journey fields

{
  updates: {
    title?: string,
    defaultState?: string,
    description?: string,
    states?: [{ name: string, priority: 'Disengated' | 'N/A' | 'Engaged' }]
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get Journey

Method: GET

https://api.tellescope.com/v1/journey/:id

Get an Journey

{
  filter?: {}
}

Get Journeys

Method: GET

https://api.tellescope.com/v1/journeys

Get a page of Journeys

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete Journey

Method: DELETE

https://api.tellescope.com/v1/journey/:id

Delete one Journey

Authentication info only

Tasks

Create Task

Method: POST

https://api.tellescope.com/v1/task

Creates a new Task

{
  text: string,
  completed?: boolean,
  description?: string,
  dueDate?: Date,
  assignedTo?: string,
  enduserId?: string,
  subscribers?: [string],
  subscriberRoles?: [string]
}

Create Tasks

Method: POST

https://api.tellescope.com/v1/tasks

Creates new Tasks

{
  create: [
    {
      text: string,
      completed?: boolean,
      description?: string,
      dueDate?: Date,
      assignedTo?: string,
      enduserId?: string,
      subscribers?: [string],
      subscriberRoles?: [string]
    }
  ]
}

Update Task

Method: PATCH

https://api.tellescope.com/v1/task/:id

Updates Task fields

{
  updates: {
    text?: string,
    completed?: boolean,
    description?: string,
    dueDate?: Date,
    assignedTo?: string,
    enduserId?: string,
    subscribers?: [string],
    subscriberRoles?: [string]
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get Task

Method: GET

https://api.tellescope.com/v1/task/:id

Get an Task

{
  filter?: {}
}

Get Tasks

Method: GET

https://api.tellescope.com/v1/tasks

Get a page of Tasks

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete Task

Method: DELETE

https://api.tellescope.com/v1/task/:id

Delete one Task

Authentication info only

Emails

Constraints

  • Email and email consent must be set for enduser

Create Email

Method: POST

https://api.tellescope.com/v1/email

Sends or logs an email

{
  logOnly?: boolean,
  enduserId: string,
  userId?: string,
  subject: string,
  textContent: stringValidator25000,
  HTMLContent?: stringValidator25000,
  timestamp?: Date,
  replyTo?: string,
  inbound?: boolean,
  readBy?: { [id: string]: Date }
}

Create Emails

Method: POST

https://api.tellescope.com/v1/emails

Sends or logs multiple emails

{
  create: [
    {
      logOnly?: boolean,
      enduserId: string,
      userId?: string,
      subject: string,
      textContent: stringValidator25000,
      HTMLContent?: stringValidator25000,
      timestamp?: Date,
      replyTo?: string,
      inbound?: boolean,
      readBy?: { [id: string]: Date }
    }
  ]
}

Update Email

Method: PATCH

https://api.tellescope.com/v1/email/:id

Updates Email fields

{
  updates: {
    logOnly?: boolean,
    enduserId?: string,
    subject?: string,
    textContent?: stringValidator25000,
    HTMLContent?: stringValidator25000,
    timestamp?: Date,
    replyTo?: string,
    inbound?: boolean,
    readBy?: { [id: string]: Date }
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get Email

Method: GET

https://api.tellescope.com/v1/email/:id

Get an Email

{
  filter?: {}
}

Get Emails

Method: GET

https://api.tellescope.com/v1/emails

Get a page of Emails

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete Email

Method: DELETE

https://api.tellescope.com/v1/email/:id

Delete one Email

Authentication info only

SmsMessages

Constraints

  • Phone number and phone consent must be set for enduser

Create SmsMessage

Method: POST

https://api.tellescope.com/v1/sms-message

Sends or logs an SMS message

{
  logOnly?: boolean,
  message: string,
  enduserId: string,
  userId?: string,
  inbound?: boolean,
  newThread?: boolean,
  readBy?: { [id: string]: Date }
}

Create SmsMessages

Method: POST

https://api.tellescope.com/v1/sms-messages

Sends or logs multiple SMS message

{
  create: [
    {
      logOnly?: boolean,
      message: string,
      enduserId: string,
      userId?: string,
      inbound?: boolean,
      newThread?: boolean,
      readBy?: { [id: string]: Date }
    }
  ]
}

Update SmsMessage

Method: PATCH

https://api.tellescope.com/v1/sms-message/:id

Updates SmsMessage fields

{
  updates: {
    logOnly?: boolean,
    inbound?: boolean,
    readBy?: { [id: string]: Date }
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get SmsMessage

Method: GET

https://api.tellescope.com/v1/sms-message/:id

Get an SmsMessage

{
  filter?: {}
}

Get SmsMessages

Method: GET

https://api.tellescope.com/v1/sms-messages

Get a page of SmsMessages

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete SmsMessage

Method: DELETE

https://api.tellescope.com/v1/sms-message/:id

Delete one SmsMessage

Authentication info only

ChatRooms

Constraints

  • Elements of userIds must be unique for each ChatRooms
  • Elements of enduserIds must be unique for each ChatRooms

Join chat room

Method: POST

https://api.tellescope.com/v1/join-chat-room

Allows a user to join a chat room with no other users, for use in accepting support chats.

{
  id: string
}

Attendee display info

Method: GET

https://api.tellescope.com/v1/chat-room-display-info

Returns an object which maps userIds/enduserIds to display information. Includes the roomId as the 'id' field.

{
  id: string
}

Create ChatRoom

Method: POST

https://api.tellescope.com/v1/chat-room

Creates a new ChatRoom

{
  title?: string,
  numMessages?: number (> 0),
  recentMessageSentAt?: number (> 0),
  type?: 'internal' | 'external',
  topic?: string,
  topicId?: string,
  description?: string,
  userIds?: [string],
  enduserIds?: [string],
  ticketId?: string,
  endedAt?: Date,
  tags?: [string],
  infoForUser?: 
}

Create ChatRooms

Method: POST

https://api.tellescope.com/v1/chat-rooms

Creates new ChatRooms

{
  create: [
    {
      title?: string,
      numMessages?: number (> 0),
      recentMessageSentAt?: number (> 0),
      type?: 'internal' | 'external',
      topic?: string,
      topicId?: string,
      description?: string,
      userIds?: [string],
      enduserIds?: [string],
      ticketId?: string,
      endedAt?: Date,
      tags?: [string],
      infoForUser?: 
    }
  ]
}

Update ChatRoom

Method: PATCH

https://api.tellescope.com/v1/chat-room/:id

Updates ChatRoom fields

{
  updates: {
    title?: string,
    numMessages?: number (> 0),
    recentMessageSentAt?: number (> 0),
    type?: 'internal' | 'external',
    topic?: string,
    topicId?: string,
    description?: string,
    userIds?: [string],
    enduserIds?: [string],
    ticketId?: string,
    endedAt?: Date,
    tags?: [string],
    infoForUser?: 
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get ChatRoom

Method: GET

https://api.tellescope.com/v1/chat-room/:id

Get an ChatRoom

{
  filter?: {}
}

Get ChatRooms

Method: GET

https://api.tellescope.com/v1/chat-rooms

Get a page of ChatRooms

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete ChatRoom

Method: DELETE

https://api.tellescope.com/v1/chat-room/:id

Delete one ChatRoom

Authentication info only

ChatMessages

Messages between users in a given Chat Room

Create Chat

Method: POST

https://api.tellescope.com/v1/chat

Creates a new Chat

{
  roomId: string,
  message: string,
  html?: string,
  replyId?: string,
  readBy?: { [id: string]: Date },
  attachments?: [{ type: 'image' | 'file', secureName: string }]
}

Get Chat

Method: GET

https://api.tellescope.com/v1/chat/:id

Get an Chat

{
  filter: {
    roomId: string
  }
}

Get Chats

Method: GET

https://api.tellescope.com/v1/chats

Get a page of Chats

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter: {
    roomId: string
  }
}

Delete Chat

Method: DELETE

https://api.tellescope.com/v1/chat/:id

Delete one Chat

Authentication info only

Users

Constraints

  • username must be unique across Users
  • Only admin users can update others' profiles

Request Password Reset (Public)

Method: POST

https://api.tellescope.com/v1/request-password-reset

Sends a password reset email

{
  email: string
}

Reset Password (Public)

Method: POST

https://api.tellescope.com/v1/reset-password

For a code generated by request-password-reset, sets a new password

{
  resetToken: string,
  newPassword: string
}

User Display Info

Method: GET

https://api.tellescope.com/v1/user-display-info

Gets display info for users, accessible by endusers

Authentication info only

Refresh enduser authentication

Method: POST

https://api.tellescope.com/v1/refresh-session

When called by an authenticated user, generates a new session

Authentication info only

Get User

Method: GET

https://api.tellescope.com/v1/user/:id

Get an User

{
  filter?: {}
}

Get Users

Method: GET

https://api.tellescope.com/v1/users

Get a page of Users

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Update User

Method: PATCH

https://api.tellescope.com/v1/user/:id

Users can only be updated by self or an organization admin

{
  updates: {
    email?: string,
    phone?: string,
    fields?: {
      string: string
    },
    fname?: string,
    lname?: string,
    accountType?: 'Business',
    skills?: [string],
    notificationPreferences?: ,
    avatar?: string
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Templates

Constraints

  • title must be unique across Templates

Create Template

Method: POST

https://api.tellescope.com/v1/template

Creates a new Template

{
  title: string,
  subject: string,
  message: stringValidator25000,
  html?: stringValidator25000,
  editorState?: stringValidator25000,
  type?: 'enduser' | 'team',
  mode?: 
}

Create Templates

Method: POST

https://api.tellescope.com/v1/templates

Creates new Templates

{
  create: [
    {
      title: string,
      subject: string,
      message: stringValidator25000,
      html?: stringValidator25000,
      editorState?: stringValidator25000,
      type?: 'enduser' | 'team',
      mode?: 
    }
  ]
}

Update Template

Method: PATCH

https://api.tellescope.com/v1/template/:id

Updates Template fields

{
  updates: {
    title?: string,
    subject?: string,
    message?: stringValidator25000,
    html?: stringValidator25000,
    editorState?: stringValidator25000,
    type?: 'enduser' | 'team',
    mode?: 
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get Template

Method: GET

https://api.tellescope.com/v1/template/:id

Get an Template

{
  filter?: {}
}

Get Templates

Method: GET

https://api.tellescope.com/v1/templates

Get a page of Templates

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete Template

Method: DELETE

https://api.tellescope.com/v1/template/:id

Delete one Template

Authentication info only

Files

Prepare File Upload

Method: POST

https://api.tellescope.com/v1/prepare-file-upload

Generates an upload link for a file, storing metadata as a File record.

{
  name: string,
  size: number,
  type: string,
  enduserId?: string
}

Generate File Download

Method: GET

https://api.tellescope.com/v1/file-download-URL

Generates a temporary download link for a file (which expires in no more than 7 days).

{
  secureName: string
}

Get File

Method: GET

https://api.tellescope.com/v1/file/:id

Get an File

{
  filter?: {}
}

Get Files

Method: GET

https://api.tellescope.com/v1/files

Get a page of Files

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Update File

Method: PATCH

https://api.tellescope.com/v1/file/:id

Updates File fields

{
  updates: {
    name?: string,
    size?: number,
    type?: string,
    enduserId?: string
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Tickets

Constraints

  • When created by an enduser, enduserId must match their id

Create Ticket

Method: POST

https://api.tellescope.com/v1/ticket

Creates a new Ticket

{
  title: string,
  enduserId?: string,
  automationStepId?: string,
  closedForReason?: string,
  closeReasons?: [string],
  chatRoomId?: string,
  dueDateInMS?: number (> 0),
  closedAt?: Date,
  owner?: string,
  message?: string,
  type?: string,
  skillsRequired?: [string]
}

Create Tickets

Method: POST

https://api.tellescope.com/v1/tickets

Creates new Tickets

{
  create: [
    {
      title: string,
      enduserId?: string,
      automationStepId?: string,
      closedForReason?: string,
      closeReasons?: [string],
      chatRoomId?: string,
      dueDateInMS?: number (> 0),
      closedAt?: Date,
      owner?: string,
      message?: string,
      type?: string,
      skillsRequired?: [string]
    }
  ]
}

Update Ticket

Method: PATCH

https://api.tellescope.com/v1/ticket/:id

Updates Ticket fields

{
  updates: {
    title?: string,
    enduserId?: string,
    automationStepId?: string,
    closedForReason?: string,
    closeReasons?: [string],
    chatRoomId?: string,
    dueDateInMS?: number (> 0),
    closedAt?: Date,
    owner?: string,
    message?: string,
    type?: string,
    skillsRequired?: [string]
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get Ticket

Method: GET

https://api.tellescope.com/v1/ticket/:id

Get an Ticket

{
  filter?: {}
}

Get Tickets

Method: GET

https://api.tellescope.com/v1/tickets

Get a page of Tickets

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete Ticket

Method: DELETE

https://api.tellescope.com/v1/ticket/:id

Delete one Ticket

Authentication info only

Meetings

Start Meeting

Method: POST

https://api.tellescope.com/v1/start-meeting

Generates an video meeting room

{
  attendees?: [{ type: 'user' | 'enduser', id: string }],
  publicRead?: boolean
}

Send Meeting Invite

Method: POST

https://api.tellescope.com/v1/send-meeting-invite

Sends a meeting invite via email to the given enduser

{
  meetingId: string,
  enduserId: string
}

End Meeting

Method: POST

https://api.tellescope.com/v1/end-meeting

Ends a video meeting

{
  id: string
}

Add Attendees to Meeting

Method: POST

https://api.tellescope.com/v1/add-attendees-to-meeting

Adds other attendees to a meeting

{
  id: string,
  attendees: [{ type: 'user' | 'enduser', id: string }]
}

Get attendee info for meeting

Method: GET

https://api.tellescope.com/v1/attendee-info

Gets meeting info for the current user, and details about other attendees

{
  id: string
}

Get list of meetings

Method: GET

https://api.tellescope.com/v1/my-meetings

Gets meetings for the current user.

Authentication info only

Get Meetings (Admin Only)

Method: GET

https://api.tellescope.com/v1/meetings

Get a page of Meetings

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Notes

Create Note

Method: POST

https://api.tellescope.com/v1/note

Creates a new Note

{
  enduserId: string,
  ticketId?: string,
  text?: string,
  title?: string,
  fields?: {
    string: string
  }
}

Create Notes

Method: POST

https://api.tellescope.com/v1/notes

Creates new Notes

{
  create: [
    {
      enduserId: string,
      ticketId?: string,
      text?: string,
      title?: string,
      fields?: {
        string: string
      }
    }
  ]
}

Update Note

Method: PATCH

https://api.tellescope.com/v1/note/:id

Updates Note fields

{
  updates: {
    enduserId?: string,
    ticketId?: string,
    text?: string,
    title?: string,
    fields?: {
      string: string
    }
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get Note

Method: GET

https://api.tellescope.com/v1/note/:id

Get an Note

{
  filter?: {}
}

Get Notes

Method: GET

https://api.tellescope.com/v1/notes

Get a page of Notes

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete Note

Method: DELETE

https://api.tellescope.com/v1/note/:id

Delete one Note

Authentication info only

Forms

Create Form

Method: POST

https://api.tellescope.com/v1/form

Creates a new Form

{
  title: string,
  numFields?: number (> 0),
  customGreeting?: string,
  customSignature?: string,
  customSubject?: string,
  allowPublicURL?: boolean,
  intakePhone?: 'optional' | 'required',
  thanksMessage?: string
}

Create Forms

Method: POST

https://api.tellescope.com/v1/forms

Creates new Forms

{
  create: [
    {
      title: string,
      numFields?: number (> 0),
      customGreeting?: string,
      customSignature?: string,
      customSubject?: string,
      allowPublicURL?: boolean,
      intakePhone?: 'optional' | 'required',
      thanksMessage?: string
    }
  ]
}

Update Form

Method: PATCH

https://api.tellescope.com/v1/form/:id

Updates Form fields

{
  updates: {
    title?: string,
    numFields?: number (> 0),
    customGreeting?: string,
    customSignature?: string,
    customSubject?: string,
    allowPublicURL?: boolean,
    intakePhone?: 'optional' | 'required',
    thanksMessage?: string
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get Form

Method: GET

https://api.tellescope.com/v1/form/:id

Get an Form

{
  filter?: {}
}

Get Forms

Method: GET

https://api.tellescope.com/v1/forms

Get a page of Forms

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete Form

Method: DELETE

https://api.tellescope.com/v1/form/:id

Delete one Form

Authentication info only

FormFields

Create FormField

Method: POST

https://api.tellescope.com/v1/form-field

Creates a new FormField

{
  formId: string,
  title: string,
  type?: ,
  previousFields?: ,
  options?: ,
  description?: string,
  intakeField?: string,
  isOptional?: boolean
}

Create FormFields

Method: POST

https://api.tellescope.com/v1/form-fields

Creates new FormFields

{
  create: [
    {
      formId: string,
      title: string,
      type?: ,
      previousFields?: ,
      options?: ,
      description?: string,
      intakeField?: string,
      isOptional?: boolean
    }
  ]
}

Update FormField

Method: PATCH

https://api.tellescope.com/v1/form-field/:id

Updates FormField fields

{
  updates: {
    formId?: string,
    title?: string,
    type?: ,
    previousFields?: ,
    options?: ,
    description?: string,
    intakeField?: string,
    isOptional?: boolean
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get FormField

Method: GET

https://api.tellescope.com/v1/form-field/:id

Get an FormField

{
  filter?: {}
}

Get FormFields

Method: GET

https://api.tellescope.com/v1/form-fields

Get a page of FormFields

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete FormField

Method: DELETE

https://api.tellescope.com/v1/form-field/:id

Delete one FormField

Authentication info only

FormResponses

Generate Session for Public Form (Public)

Method: POST

https://api.tellescope.com/v1/session-for-public-form

Generates a session for filling out a public form.

{
  email: string,
  formId: string,
  businessId: string,
  phone?: string,
  fname?: string,
  lname?: string
}

Prepare Form Response

Method: POST

https://api.tellescope.com/v1/prepare-form-response

Generates an access code that allows an enduser to submit a form response.

{
  formId: string,
  enduserId: string,
  automationStepId?: string
}

Submit Form Response

Method: PATCH

https://api.tellescope.com/v1/submit-form-response

With an accessCode, stores responses to a form.

{
  accessCode: string,
  responses: [string | number | [] | { }],
  automationStepId?: string
}

Create FormResponse

Method: POST

https://api.tellescope.com/v1/form-response

Creates a new FormResponse

{
  formId: string,
  enduserId?: string,
  submissionExpiresAt?: number (> 0),
  publicSubmit?: boolean,
  submittedBy?: string,
  accessCode?: string,
  userEmail?: string,
  submittedAt?: Date,
  formTitle?: string,
  responses?: [string | number | [] | { }]
}

Create FormResponses

Method: POST

https://api.tellescope.com/v1/form-responses

Creates new FormResponses

{
  create: [
    {
      formId: string,
      enduserId?: string,
      submissionExpiresAt?: number (> 0),
      publicSubmit?: boolean,
      submittedBy?: string,
      accessCode?: string,
      userEmail?: string,
      submittedAt?: Date,
      formTitle?: string,
      responses?: [string | number | [] | { }]
    }
  ]
}

Update FormResponse

Method: PATCH

https://api.tellescope.com/v1/form-response/:id

Updates FormResponse fields

{
  updates: {
    formId?: string,
    enduserId?: string,
    publicSubmit?: boolean,
    submittedBy?: string,
    accessCode?: string,
    userEmail?: string,
    submittedAt?: Date,
    formTitle?: string,
    responses?: [string | number | [] | { }]
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get FormResponse

Method: GET

https://api.tellescope.com/v1/form-response/:id

Get an FormResponse

{
  filter?: {}
}

Get FormResponses

Method: GET

https://api.tellescope.com/v1/form-responses

Get a page of FormResponses

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete FormResponse

Method: DELETE

https://api.tellescope.com/v1/form-response/:id

Delete one FormResponse

Authentication info only

Webhooks

Allows you to subscribe to Webhooks when models in Tellescope are created, updated, and deleted.
Each webhook is a POST request to the given URL, of the form
{ 
model: string,
type: 'create' | 'update' | 'delete',
records: object[],
timestamp: string,
integrity: string,
relatedRecords: { [id: string]: object }
}

This includes the name of the model, the type of operation performed, and an array of the new, updated, or deleted model(s).

The integrity field is a sha256 hash of (record ids concatenated from index 0 to the end, with the timestamp and then secret appended)
For example hook: { records: [{ id: '1', ... }, { id: '4', ... }], timestamp: "1029358" } with secret set as "secret",
integrity = sha256('141029358secret')
Each time you handle a webhook, you should verify the integrity field is correct to ensure that the request is actually coming from Tellescope.

For performance, a relatedRecords object is provided as a cache. This object maps some ids referenced in the webhook records to the corresponding models in Tellescope.
For a given webhook, relatedRecords may be empty, or may not include all related ids. In such cases, you'll need to query against the Tellescope API for an up-to-date reference.

Currently supported models for Webhooks: chats, meetings

You can handle webhooks from automations in Tellescope, which have a simpler format:
{ 
type: 'automation'
message: string,
timestamp: string,
integrity: string,
}

In this case, integrity is a simple sha256 hash of message + timestamp + secret

You can also handle calendar event reminders as webhooks, which have the format:
{ 
type: 'calendar_event_reminder'
event: CalendarEvent,
timestamp: string,
integrity: string,
}

In this case, integrity is a simple sha256 hash of event.id + timestamp + secret

Configure Webhooks (Admin Only)

Method: POST

https://api.tellescope.com/v1/configure-webhooks

Sets the URL, secret, and initial subscriptions for your organization. Only one webhooks configuration per organization is allowed at this time. Your secret must exceed 15 characters and should be generated randomly.

{
  url: string,
  secret: string,
  subscriptions?: { [ModelName]?: { create?: boolean, update?: boolean, delete?: boolean } }
}

Get current configuration info

Method: GET

https://api.tellescope.com/v1/webhook-configuration

Returns current webhook configuration

Authentication info only

Update Webhooks (Admin Only)

Method: PATCH

https://api.tellescope.com/v1/update-webhooks

Modifies only subscriptions to models included in subscriptionUpdates. To remove subscriptions for a given model, set all values to false.

{
  url?: string,
  secret?: string,
  subscriptionUpdates?: { [ModelName]?: { create?: boolean, update?: boolean, delete?: boolean } }
}

Send Automation Webhook

Method: POST

https://api.tellescope.com/v1/send-automation-webhook

Sends a webhook with the automations format, useful for testing automation integrations

{
  message: string
}

Send Calendar Event Reminder Webhook

Method: POST

https://api.tellescope.com/v1/send-calendar-event-reminder-webhook

Sends a webhook with the calendar reminder format, useful for testing integrations

{
  id: string
}

CalendarEvents

Create CalendarEvent

Method: POST

https://api.tellescope.com/v1/calendar-event

Creates a new CalendarEvent

{
  title: string,
  startTimeInMS: number (> 0),
  durationInMinutes: number (> 0),
  description?: string,
  chatRoomId?: string,
  attendees?: [{ type: 'user' | 'enduser', id: string }],
  reminders?: ,
  publicRead?: boolean,
  displayImage?: string,
  fields?: {
    string: string
  }
}

Create CalendarEvents

Method: POST

https://api.tellescope.com/v1/calendar-events

Creates new CalendarEvents

{
  create: [
    {
      title: string,
      startTimeInMS: number (> 0),
      durationInMinutes: number (> 0),
      description?: string,
      chatRoomId?: string,
      attendees?: [{ type: 'user' | 'enduser', id: string }],
      reminders?: ,
      publicRead?: boolean,
      displayImage?: string,
      fields?: {
        string: string
      }
    }
  ]
}

Update CalendarEvent

Method: PATCH

https://api.tellescope.com/v1/calendar-event/:id

Updates CalendarEvent fields

{
  updates: {
    title?: string,
    startTimeInMS?: number (> 0),
    durationInMinutes?: number (> 0),
    description?: string,
    chatRoomId?: string,
    attendees?: [{ type: 'user' | 'enduser', id: string }],
    reminders?: ,
    publicRead?: boolean,
    displayImage?: string,
    fields?: {
      string: string
    }
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get CalendarEvent

Method: GET

https://api.tellescope.com/v1/calendar-event/:id

Get an CalendarEvent

{
  filter?: {}
}

Get CalendarEvents

Method: GET

https://api.tellescope.com/v1/calendar-events

Get a page of CalendarEvents

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete CalendarEvent

Method: DELETE

https://api.tellescope.com/v1/calendar-event/:id

Delete one CalendarEvent

Authentication info only

SequenceAutomations

Create SequenceAutomation

Method: POST

https://api.tellescope.com/v1/sequence-automation

Creates a new SequenceAutomation

{
  title: string
}

Create SequenceAutomations

Method: POST

https://api.tellescope.com/v1/sequence-automations

Creates new SequenceAutomations

{
  create: [
    {
      title: string
    }
  ]
}

Update SequenceAutomation

Method: PATCH

https://api.tellescope.com/v1/sequence-automation/:id

Updates SequenceAutomation fields

{
  updates: {
    title?: string
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get SequenceAutomation

Method: GET

https://api.tellescope.com/v1/sequence-automation/:id

Get an SequenceAutomation

{
  filter?: {}
}

Get SequenceAutomations

Method: GET

https://api.tellescope.com/v1/sequence-automations

Get a page of SequenceAutomations

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete SequenceAutomation

Method: DELETE

https://api.tellescope.com/v1/sequence-automation/:id

Delete one SequenceAutomation

Authentication info only

AutomationSteps

Constraints

  • updateStateForJourney cannot have the same info as enterState or leaveState events
  • Event, action, and conditions cannot all be shared by an existing event automation (no duplicates)

Create AutomationStep

Method: POST

https://api.tellescope.com/v1/automation-step

Creates a new AutomationStep

{
  journeyId: string,
  event: ,
  action: ,
  conditions?: 
}

Create AutomationSteps

Method: POST

https://api.tellescope.com/v1/automation-steps

Creates new AutomationSteps

{
  create: [
    {
      journeyId: string,
      event: ,
      action: ,
      conditions?: 
    }
  ]
}

Update AutomationStep

Method: PATCH

https://api.tellescope.com/v1/automation-step/:id

Updates AutomationStep fields

{
  updates: {
    journeyId?: string,
    event?: ,
    action?: ,
    conditions?: 
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get AutomationStep

Method: GET

https://api.tellescope.com/v1/automation-step/:id

Get an AutomationStep

{
  filter?: {}
}

Get AutomationSteps

Method: GET

https://api.tellescope.com/v1/automation-steps

Get a page of AutomationSteps

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete AutomationStep

Method: DELETE

https://api.tellescope.com/v1/automation-step/:id

Delete one AutomationStep

Authentication info only

AutomatedActions

Create AutomatedAction

Method: POST

https://api.tellescope.com/v1/automated-action

Creates a new AutomatedAction

{
  cancelConditions?: ,
  automationStepId: string,
  enduserId: string,
  journeyId: string,
  event: ,
  action: ,
  status: ,
  processAfter: number (> 0)
}

Create AutomatedActions

Method: POST

https://api.tellescope.com/v1/automated-actions

Creates new AutomatedActions

{
  create: [
    {
      cancelConditions?: ,
      automationStepId: string,
      enduserId: string,
      journeyId: string,
      event: ,
      action: ,
      status: ,
      processAfter: number (> 0)
    }
  ]
}

Update AutomatedAction

Method: PATCH

https://api.tellescope.com/v1/automated-action/:id

Updates AutomatedAction fields

{
  updates: {
    cancelConditions?: ,
    automationStepId?: string,
    enduserId?: string,
    journeyId?: string,
    event?: ,
    action?: ,
    status?: ,
    processAfter?: number (> 0)
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get AutomatedAction

Method: GET

https://api.tellescope.com/v1/automated-action/:id

Get an AutomatedAction

{
  filter?: {}
}

Get AutomatedActions

Method: GET

https://api.tellescope.com/v1/automated-actions

Get a page of AutomatedActions

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete AutomatedAction

Method: DELETE

https://api.tellescope.com/v1/automated-action/:id

Delete one AutomatedAction

Authentication info only

UserLogs

Get UserLog

Method: GET

https://api.tellescope.com/v1/user-log/:id

Get an UserLog

{
  filter?: {}
}

Get UserLogs

Method: GET

https://api.tellescope.com/v1/user-logs

Get a page of UserLogs

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

UserNotifications

Send Team Email Notification

Method: POST

https://api.tellescope.com/v1/send-user-email-notification

Sends an email notification to a team member (user)

{
  userId: string,
  message: string,
  subject?: string
}

Create UserNotification

Method: POST

https://api.tellescope.com/v1/user-notification

Creates a new UserNotification

{
  userId: string,
  type: string,
  message: string,
  read?: boolean,
  relatedRecords?: 
}

Create UserNotifications

Method: POST

https://api.tellescope.com/v1/user-notifications

Creates new UserNotifications

{
  create: [
    {
      userId: string,
      type: string,
      message: string,
      read?: boolean,
      relatedRecords?: 
    }
  ]
}

Update UserNotification

Method: PATCH

https://api.tellescope.com/v1/user-notification/:id

Updates UserNotification fields

{
  updates: {
    userId?: string,
    type?: string,
    message?: string,
    read?: boolean,
    relatedRecords?: 
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get UserNotification

Method: GET

https://api.tellescope.com/v1/user-notification/:id

Get an UserNotification

{
  filter?: {}
}

Get UserNotifications

Method: GET

https://api.tellescope.com/v1/user-notifications

Get a page of UserNotifications

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete UserNotification

Method: DELETE

https://api.tellescope.com/v1/user-notification/:id

Delete one UserNotification

Authentication info only

EnduserObservations

Create EnduserObservation

Method: POST

https://api.tellescope.com/v1/enduser-observation

Creates a new EnduserObservation

{
  category: ,
  status: ,
  measurement: ,
  enduserId: string,
  code?: string,
  source?: string,
  type?: string,
  notes?: string,
  recordedAt?: Date
}

Create EnduserObservations

Method: POST

https://api.tellescope.com/v1/enduser-observations

Creates new EnduserObservations

{
  create: [
    {
      category: ,
      status: ,
      measurement: ,
      enduserId: string,
      code?: string,
      source?: string,
      type?: string,
      notes?: string,
      recordedAt?: Date
    }
  ]
}

Update EnduserObservation

Method: PATCH

https://api.tellescope.com/v1/enduser-observation/:id

Updates EnduserObservation fields

{
  updates: {
    category?: ,
    status?: ,
    measurement?: ,
    enduserId?: string,
    code?: string,
    source?: string,
    type?: string,
    notes?: string,
    recordedAt?: Date
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get EnduserObservation

Method: GET

https://api.tellescope.com/v1/enduser-observation/:id

Get an EnduserObservation

{
  filter?: {}
}

Get EnduserObservations

Method: GET

https://api.tellescope.com/v1/enduser-observations

Get a page of EnduserObservations

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete EnduserObservation

Method: DELETE

https://api.tellescope.com/v1/enduser-observation/:id

Delete one EnduserObservation

Authentication info only

ManagedContentRecords

Create ManagedContentRecord

Method: POST

https://api.tellescope.com/v1/managed-content-record

Creates a new ManagedContentRecord

{
  slug?: string,
  title: string,
  description?: string,
  textContent: stringValidator25000,
  htmlContent?: stringValidator25000,
  editorState?: stringValidator25000,
  mode?: ,
  files?: [string],
  tags?: [string]
}

Create ManagedContentRecords

Method: POST

https://api.tellescope.com/v1/managed-content-records

Creates new ManagedContentRecords

{
  create: [
    {
      slug?: string,
      title: string,
      description?: string,
      textContent: stringValidator25000,
      htmlContent?: stringValidator25000,
      editorState?: stringValidator25000,
      mode?: ,
      files?: [string],
      tags?: [string]
    }
  ]
}

Update ManagedContentRecord

Method: PATCH

https://api.tellescope.com/v1/managed-content-record/:id

Updates ManagedContentRecord fields

{
  updates: {
    slug?: string,
    title?: string,
    description?: string,
    textContent?: stringValidator25000,
    htmlContent?: stringValidator25000,
    editorState?: stringValidator25000,
    mode?: ,
    files?: [string],
    tags?: [string]
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get ManagedContentRecord

Method: GET

https://api.tellescope.com/v1/managed-content-record/:id

Get an ManagedContentRecord

{
  filter?: {}
}

Get ManagedContentRecords

Method: GET

https://api.tellescope.com/v1/managed-content-records

Get a page of ManagedContentRecords

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete ManagedContentRecord

Method: DELETE

https://api.tellescope.com/v1/managed-content-record/:id

Delete one ManagedContentRecord

Authentication info only

Forums

Constraints

  • title must be unique across Forums

Create Forum

Method: POST

https://api.tellescope.com/v1/forum

Creates a new Forum

{
  title: string,
  description?: string,
  publicRead?: boolean,
  slug?: string
}

Create Forums

Method: POST

https://api.tellescope.com/v1/forums

Creates new Forums

{
  create: [
    {
      title: string,
      description?: string,
      publicRead?: boolean,
      slug?: string
    }
  ]
}

Update Forum

Method: PATCH

https://api.tellescope.com/v1/forum/:id

Updates Forum fields

{
  updates: {
    title?: string,
    description?: string,
    publicRead?: boolean,
    slug?: string
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get Forum

Method: GET

https://api.tellescope.com/v1/forum/:id

Get an Forum

{
  filter?: {}
}

Get Forums

Method: GET

https://api.tellescope.com/v1/forums

Get a page of Forums

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete Forum

Method: DELETE

https://api.tellescope.com/v1/forum/:id

Delete one Forum

Authentication info only

ForumPosts

Create ForumPost

Method: POST

https://api.tellescope.com/v1/forum-post

Creates a new ForumPost

{
  forumId: string,
  postedBy?: ,
  numComments?: number (> 0),
  numLikes?: number (> 0),
  textContent: stringValidator25000,
  htmlContent?: stringValidator25000,
  editorState?: stringValidator25000,
  slug?: string
}

Create ForumPosts

Method: POST

https://api.tellescope.com/v1/forum-posts

Creates new ForumPosts

{
  create: [
    {
      forumId: string,
      postedBy?: ,
      numComments?: number (> 0),
      numLikes?: number (> 0),
      textContent: stringValidator25000,
      htmlContent?: stringValidator25000,
      editorState?: stringValidator25000,
      slug?: string
    }
  ]
}

Update ForumPost

Method: PATCH

https://api.tellescope.com/v1/forum-post/:id

Updates ForumPost fields

{
  updates: {
    forumId?: string,
    postedBy?: ,
    numComments?: number (> 0),
    numLikes?: number (> 0),
    textContent?: stringValidator25000,
    htmlContent?: stringValidator25000,
    editorState?: stringValidator25000,
    slug?: string
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get ForumPost

Method: GET

https://api.tellescope.com/v1/forum-post/:id

Get an ForumPost

{
  filter?: {}
}

Get ForumPosts

Method: GET

https://api.tellescope.com/v1/forum-posts

Get a page of ForumPosts

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete ForumPost

Method: DELETE

https://api.tellescope.com/v1/forum-post/:id

Delete one ForumPost

Authentication info only

PostComments

Create PostComment

Method: POST

https://api.tellescope.com/v1/post-comment

Creates a new PostComment

{
  forumId: string,
  postId: string,
  replyTo?: string,
  postedBy?: ,
  attachments?: [string],
  textContent: stringValidator25000,
  htmlContent?: stringValidator25000,
  editorState?: stringValidator25000
}

Create PostComments

Method: POST

https://api.tellescope.com/v1/post-comments

Creates new PostComments

{
  create: [
    {
      forumId: string,
      postId: string,
      replyTo?: string,
      postedBy?: ,
      attachments?: [string],
      textContent: stringValidator25000,
      htmlContent?: stringValidator25000,
      editorState?: stringValidator25000
    }
  ]
}

Update PostComment

Method: PATCH

https://api.tellescope.com/v1/post-comment/:id

Updates PostComment fields

{
  updates: {
    forumId?: string,
    postId?: string,
    replyTo?: string,
    postedBy?: ,
    attachments?: [string],
    textContent?: stringValidator25000,
    htmlContent?: stringValidator25000,
    editorState?: stringValidator25000
  },
  options?: {
    replaceObjectFields?: boolean /* See Updating Records in Getting Started */
  }
}

Get PostComment

Method: GET

https://api.tellescope.com/v1/post-comment/:id

Get an PostComment

{
  filter?: {}
}

Get PostComments

Method: GET

https://api.tellescope.com/v1/post-comments

Get a page of PostComments

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete PostComment

Method: DELETE

https://api.tellescope.com/v1/post-comment/:id

Delete one PostComment

Authentication info only

PostLikes

Like Forum Post

Method: POST

https://api.tellescope.com/v1/post-like

Likes a post

{
  postId: string,
  forumId: string
}

Unlike Forum Post

Method: POST

https://api.tellescope.com/v1/unlike-forum-post

Removes a like for a given forum post

{
  postId: string,
  forumId: string
}

Get PostLike

Method: GET

https://api.tellescope.com/v1/post-like/:id

Get an PostLike

{
  filter?: {}
}

Get PostLikes

Method: GET

https://api.tellescope.com/v1/post-likes

Get a page of PostLikes

{
  lastId?: string,
  limit?: number,
  sort?: 'oldFirst' | 'newFirst',
  search?: { \n            query: string,\n          },
  filter?: {}
}

Delete PostLike

Method: DELETE

https://api.tellescope.com/v1/post-like/:id

Delete one PostLike

Authentication info only

Organizations

Constraints

  • name must be unique across Organizations

Get Organization Theme (Public)

Method: GET

https://api.tellescope.com/v1/organization-theme

Gets theme information for an organization

{
  businessId?: string
}