Skip to main content
Node.js
import { PeriskopeApi } from '@periskope/periskope-client';

const client = new PeriskopeApi({
  authToken: 'YOUR_API_KEY',
  phone: 'YOUR_PHONE_NUMBER', // e.g., '919876543210'
});

async function createCustomProperty() {
  const response = await client.property.create({
    name: 'Workspace',
    type: 'ticket',
    kind: 'dropdown',
    section: 'Issue Details',
    options: ['Acme Corp', 'Globex']
  });

  console.log(response);
}

createCustomProperty();
{
  "success": true,
  "message": "Custom property created",
  "data": {
    "property_id": "property-a1b2c3",
    "property_name": "Workspace",
    "type": "ticket",
    "kind": "dropdown",
    "mandatory": false,
    "section_id": "3f8b6c1e-8f2a-4b6e-9c3d-2a1f0e9d8c7b",
    "section_name": "Issue Details",
    "options": [
      {
        "id": "1712345678901",
        "label": "Acme Corp"
      }
    ],
    "created_at": "2026-07-06T10:00:00.000Z"
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
name
string
required
  • The name of the property
  • Must be unique within its type (chat/ticket)
Example:

"Workspace"

type
enum<string>
required
  • The type the property belongs to
Available options:
chat,
ticket
Example:

"ticket"

kind
enum<string>
required
  • The value kind of the property
  • dropdown is single-select, picklist is multi-select
Available options:
text,
date,
file,
dropdown,
picklist
Example:

"dropdown"

section
string
  • The name of the section to place the property under
  • Created automatically if it does not exist
Example:

"Issue Details"

mandatory
boolean
  • Whether the property is mandatory
  • Supported only for ticket properties; rejected for chat properties
  • Defaults to false
Example:

false

options
string[]
  • The initial option labels
  • Required (at least one non-empty label) for dropdown and picklist kinds
  • Not allowed for other kinds
Example:
["Acme Corp", "Globex"]

Response

200 OK

success
boolean
Example:

true

message
string
Example:

"Custom property created"

data
object