Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.nekt.com/llms.txt

Use this file to discover all available pages before exploring further.

Periskope is a WhatsApp-based customer communication platform that provides tools for managing conversations, tickets, contacts, and team collaboration across multiple WhatsApp numbers. It offers features like multi-agent access, automated replies, ticketing, and analytics for WhatsApp business communication.

Configuring Periskope as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Periskope option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

You’ll need an API key from Periskope. Generate one from the Periskope Console under Settings > API. The key is shown only once, so store it securely. The following configurations are available:
  • API Key: Your Periskope API key (generated from Settings > API in the Periskope console).
  • Phone Number: The connected WhatsApp phone number with country code, without special characters (e.g. 919876543210). This identifies which phone device should be used for API requests.
  • Start Date: (Optional, Advanced) The earliest date from which records will be synced for incremental streams.
Once you’re done, click Next.

2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones. Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.
  • Layer: choose between the existing layers on your catalog.
  • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
  • Table name: a default name is suggested, but you can customize it. You can add a prefix to all tables at once.
  • Sync Type: choose between INCREMENTAL and FULL_TABLE.
    • Incremental: every extraction gets only new data since the last sync.
    • Full table: every extraction gets the current state of the data.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Below you’ll find all available data streams from Periskope and their corresponding fields:
Support tickets created from WhatsApp conversations, tracking issues with status, priority, and assignment.Key Fields:
  • ticket_id - Unique ticket identifier (e.g. BKT-001)
  • subject - Ticket subject
  • status - Ticket status (open, inprogress, etc.)
  • priority - Priority level
  • assignee - Email of the assigned agent
  • assigned_by - Email of the user who assigned the ticket
  • raised_by - Email of the user who raised the ticket
  • chat_id - Associated chat identifier
  • created_at - Creation timestamp
  • last_updated_at - Last update timestamp
  • closed_at - Closure timestamp
  • closed_by - Email of the user who closed the ticket
  • due_date - Due date
  • first_assigned_at - First assignment timestamp
  • is_deleted - Whether the ticket has been deleted
  • quoted_message_id - ID of the quoted message
  • ticket_labels - Labels assigned to the ticket
  • ticket_custom_properties - Custom properties (JSON)
  • labels - Comma-separated labels
  • custom_properties - Custom properties (JSON)
  • freshdesk_metadata - Freshdesk integration metadata (JSON)
  • hubspot_metadata - HubSpot integration metadata (JSON)
  • zohodesk_metadata - Zoho Desk integration metadata (JSON)
All WhatsApp messages across chats, including text, media, reactions, and delivery information.Key Fields:
  • message_id - Unique message identifier
  • unique_id - Unique ID matching id.id
  • chat_id - Chat where the message was sent
  • body - Text content or caption
  • message_type - Type: chat, image, video, audio, document, ptt
  • from_me - Whether sent from the organization account
  • sender_phone - Sender phone number
  • performed_by - Email of the Periskope user who sent the message
  • timestamp - Send timestamp
  • updated_at - Last update timestamp
Media & Content:
  • has_media - Whether the message contains media
  • media - Media details: path, size, filename, mimetype, dimensions (JSON)
  • media_key - Media content identifier
  • is_forwarded - Whether the message was forwarded
  • forwarding_score - Number of times forwarded
  • is_gif - Whether the message contains a GIF
  • links - URLs found in the message (JSON)
  • vcards - Virtual contact cards (JSON)
  • location - Shared location data (JSON)
Status & Delivery:
  • ack - Delivery/read status
  • delivery_info - Delivery details: read, pending, delivered counts and timestamps (JSON)
  • flag_status - Whether flagged for review
  • flag_metadata - Flag details (JSON)
  • is_deleted - Whether deleted
  • is_starred - Whether starred/favorited
  • is_ephemeral - Whether it is a disappearing message
Replies & Reactions:
  • has_quoted_msg - Whether this replies to another message
  • quoted_message_id - ID of the replied-to message
  • has_reaction - Whether the message has reactions
  • reactions - Reaction details (JSON)
  • mentioned_ids - Mentioned WhatsApp IDs (JSON)
  • prev_body - Original content before edit
Broadcast & Polling:
  • broadcast_id - Broadcast session ID
  • broadcast - Whether sent as broadcast
  • poll_info - Poll details (JSON)
  • poll_results - Poll results (JSON)
Metadata:
  • org_id - Organization identifier
  • org_phone - Organization phone
  • author - WhatsApp ID of the author
  • device_type - Device: android, ios, web
  • id - Nested ID object with fromMe, remote, serialized (JSON)
  • invite_v4 - Group invitation details (JSON)
WhatsApp chats (individual and group conversations) with metadata, labels, and assignment info.Key Fields:
  • chat_id - Unique chat ID (format: phone@c.us or group@g.us)
  • chat_name - Display name of the chat
  • chat_type - Type: group, user, or business
  • chat_image - Profile image URL
  • created_at - Creation timestamp
  • updated_at - Last update timestamp
  • closed_at - Closure timestamp
  • assigned_to - Email of the responsible agent
  • member_count - Total participant count
  • message_unread_count - Unread message count
Group Settings:
  • group_description - Description for group chats
  • invite_link - Chat invite link
  • info_admins_only - Whether group info is restricted to admins
  • messages_admins_only - Whether messaging is restricted to admins
  • is_muted - Notification mute status
  • is_exited - Whether the organization has left the chat
Labels & Properties:
  • labels - Comma-separated label names
  • label_ids - Label ID mapping (JSON)
  • custom_properties - User-defined attributes (JSON)
  • chat_access - Permission mapping by user email (JSON)
  • flag_count_map - Flagged message counts (JSON)
Metadata:
  • org_id - Organization identifier
  • org_phone - Organization phone
  • chat_org_phones - Organization phones in the chat (JSON)
  • latest_message - Most recent message details (JSON)
  • hubspot_metadata - HubSpot integration metadata (JSON)
WhatsApp contacts with profile information, labels, and group memberships.Key Fields:
  • contact_id - Unique contact identifier (format: number@c.us)
  • contact_name - Display name
  • contact_type - Contact type (user, business)
  • contact_color - Hex color code in Periskope UI
  • contact_image - Profile image URL
  • updated_at - Last update timestamp
Flags:
  • is_imported - Whether imported from an external source
  • is_internal - Whether internal to the organization
  • is_my_contact - Whether in the phone’s contact list
  • is_wa_contact - Whether a WhatsApp contact
Labels & Associations:
  • labels - Comma-separated label names
  • label_ids - Label ID mapping (JSON)
  • chat_ids - Array of chat IDs the contact belongs to (JSON)
  • org_id - Organization identifier
Chat notification events such as participant additions, removals, promotions, group setting changes, and calls.Key Fields:
  • notification_id - Unique notification identifier
  • unique_id - Unique ID matching id.id
  • chat_id - Chat/group where the notification occurred
  • author - WhatsApp ID of the triggering user
  • body - Notification content
  • type - Event type: add, remove, promote, demote, leave, announce, restrict, subject, desc, call
  • timestamp - Event timestamp
  • recipientids - Recipient WhatsApp IDs (JSON)
  • metadata - Additional data, e.g. call details (JSON)
Metadata:
  • org_id - Organization identifier
  • org_phone - Organization phone
  • id - Nested ID object (JSON)
Private notes added to chats by team members, visible only within Periskope (not sent to WhatsApp).Key Fields:
  • message_id - Unique note identifier
  • unique_id - Unique ID
  • chat_id - Chat where the note was added
  • body - Text content of the note
  • from_me - Whether created by the organization user
  • is_private_note - Always true
  • is_deleted - Whether deleted
  • performed_by - Email of the creator
  • timestamp - Creation timestamp
  • updated_at - Last update timestamp
Content:
  • prev_body - Original content before edit
  • quoted_message_id - Replied-to message ID
  • mentioned_ids - Mentioned email IDs (JSON)
  • media - Attached media details (JSON)
Metadata:
  • org_id - Organization identifier
  • org_phone - Organization phone
  • sender_phone - Organization account phone
  • sent_message_id - Created note ID
  • ack - Acknowledgment status
  • message_type - Message classification
Emoji reactions to messages, tracking who reacted, when, and with which emoji.Key Fields:
  • unique_id - Unique reaction identifier
  • reaction_id - Serialized reaction identifier
  • message_id - Serialized ID of the reacted-to message
  • chat_id - Chat/group ID
  • reaction - Emoji character used
  • timestamp - Reaction timestamp
  • sender_id - WhatsApp ID of the reactor
  • read - Whether seen by the recipient
  • ack - Delivery status
  • orphan - Orphaned reaction indicator
  • orphan_reason - Reason for orphaned status
Metadata:
  • org_id - Organization identifier
  • org_phone - Organization phone
  • id - Nested ID object (JSON)
  • msg_id - Original message ID object (JSON)
Connected WhatsApp phone numbers with connection status, profile info, and labels.Key Fields:
  • phone_id - Unique phone instance ID
  • phone_name - WhatsApp display name
  • phone_image - Profile image URL
  • org_phone - WhatsApp ID (format: phone@c.us)
  • wa_state - Connection state: CONNECTED or DISCONNECTED
  • is_ready - Whether fully operational for messaging
  • is_browser_open - Whether server-side session is active
  • qr_code - QR code data (null when connected)
  • created_at - Creation timestamp
  • updated_at - Last update timestamp
  • first_connected_at - First connection timestamp
Labels:
  • labels - Comma-separated label names
  • label_ids - Label ID mapping (JSON)
Metadata:
  • org_id - Organization identifier

Data Model

The following diagram illustrates the relationships between the core data streams in Periskope:

Skills for agents

Download Periskope skills file

Periskope connector documentation as plain markdown, for use in AI agent contexts.