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.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.
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.
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.
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.Streams and Fields
Below you’ll find all available data streams from Periskope and their corresponding fields:Tickets
Tickets
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 subjectstatus- Ticket status (open, inprogress, etc.)priority- Priority levelassignee- Email of the assigned agentassigned_by- Email of the user who assigned the ticketraised_by- Email of the user who raised the ticketchat_id- Associated chat identifiercreated_at- Creation timestamplast_updated_at- Last update timestampclosed_at- Closure timestampclosed_by- Email of the user who closed the ticketdue_date- Due datefirst_assigned_at- First assignment timestampis_deleted- Whether the ticket has been deletedquoted_message_id- ID of the quoted messageticket_labels- Labels assigned to the ticketticket_custom_properties- Custom properties (JSON)labels- Comma-separated labelscustom_properties- Custom properties (JSON)freshdesk_metadata- Freshdesk integration metadata (JSON)hubspot_metadata- HubSpot integration metadata (JSON)zohodesk_metadata- Zoho Desk integration metadata (JSON)
Messages
Messages
All WhatsApp messages across chats, including text, media, reactions, and delivery information.Key Fields:
message_id- Unique message identifierunique_id- Unique ID matching id.idchat_id- Chat where the message was sentbody- Text content or captionmessage_type- Type: chat, image, video, audio, document, pttfrom_me- Whether sent from the organization accountsender_phone- Sender phone numberperformed_by- Email of the Periskope user who sent the messagetimestamp- Send timestampupdated_at- Last update timestamp
has_media- Whether the message contains mediamedia- Media details: path, size, filename, mimetype, dimensions (JSON)media_key- Media content identifieris_forwarded- Whether the message was forwardedforwarding_score- Number of times forwardedis_gif- Whether the message contains a GIFlinks- URLs found in the message (JSON)vcards- Virtual contact cards (JSON)location- Shared location data (JSON)
ack- Delivery/read statusdelivery_info- Delivery details: read, pending, delivered counts and timestamps (JSON)flag_status- Whether flagged for reviewflag_metadata- Flag details (JSON)is_deleted- Whether deletedis_starred- Whether starred/favoritedis_ephemeral- Whether it is a disappearing message
has_quoted_msg- Whether this replies to another messagequoted_message_id- ID of the replied-to messagehas_reaction- Whether the message has reactionsreactions- Reaction details (JSON)mentioned_ids- Mentioned WhatsApp IDs (JSON)prev_body- Original content before edit
broadcast_id- Broadcast session IDbroadcast- Whether sent as broadcastpoll_info- Poll details (JSON)poll_results- Poll results (JSON)
org_id- Organization identifierorg_phone- Organization phoneauthor- WhatsApp ID of the authordevice_type- Device: android, ios, webid- Nested ID object with fromMe, remote, serialized (JSON)invite_v4- Group invitation details (JSON)
Chats
Chats
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 chatchat_type- Type: group, user, or businesschat_image- Profile image URLcreated_at- Creation timestampupdated_at- Last update timestampclosed_at- Closure timestampassigned_to- Email of the responsible agentmember_count- Total participant countmessage_unread_count- Unread message count
group_description- Description for group chatsinvite_link- Chat invite linkinfo_admins_only- Whether group info is restricted to adminsmessages_admins_only- Whether messaging is restricted to adminsis_muted- Notification mute statusis_exited- Whether the organization has left the chat
labels- Comma-separated label nameslabel_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)
org_id- Organization identifierorg_phone- Organization phonechat_org_phones- Organization phones in the chat (JSON)latest_message- Most recent message details (JSON)hubspot_metadata- HubSpot integration metadata (JSON)
Contacts
Contacts
WhatsApp contacts with profile information, labels, and group memberships.Key Fields:
contact_id- Unique contact identifier (format: number@c.us)contact_name- Display namecontact_type- Contact type (user, business)contact_color- Hex color code in Periskope UIcontact_image- Profile image URLupdated_at- Last update timestamp
is_imported- Whether imported from an external sourceis_internal- Whether internal to the organizationis_my_contact- Whether in the phone’s contact listis_wa_contact- Whether a WhatsApp contact
labels- Comma-separated label nameslabel_ids- Label ID mapping (JSON)chat_ids- Array of chat IDs the contact belongs to (JSON)org_id- Organization identifier
Notifications
Notifications
Chat notification events such as participant additions, removals, promotions, group setting changes, and calls.Key Fields:
notification_id- Unique notification identifierunique_id- Unique ID matching id.idchat_id- Chat/group where the notification occurredauthor- WhatsApp ID of the triggering userbody- Notification contenttype- Event type: add, remove, promote, demote, leave, announce, restrict, subject, desc, calltimestamp- Event timestamprecipientids- Recipient WhatsApp IDs (JSON)metadata- Additional data, e.g. call details (JSON)
org_id- Organization identifierorg_phone- Organization phoneid- Nested ID object (JSON)
Notes
Notes
Private notes added to chats by team members, visible only within Periskope (not sent to WhatsApp).Key Fields:
message_id- Unique note identifierunique_id- Unique IDchat_id- Chat where the note was addedbody- Text content of the notefrom_me- Whether created by the organization useris_private_note- Always trueis_deleted- Whether deletedperformed_by- Email of the creatortimestamp- Creation timestampupdated_at- Last update timestamp
prev_body- Original content before editquoted_message_id- Replied-to message IDmentioned_ids- Mentioned email IDs (JSON)media- Attached media details (JSON)
org_id- Organization identifierorg_phone- Organization phonesender_phone- Organization account phonesent_message_id- Created note IDack- Acknowledgment statusmessage_type- Message classification
Reactions
Reactions
Emoji reactions to messages, tracking who reacted, when, and with which emoji.Key Fields:
unique_id- Unique reaction identifierreaction_id- Serialized reaction identifiermessage_id- Serialized ID of the reacted-to messagechat_id- Chat/group IDreaction- Emoji character usedtimestamp- Reaction timestampsender_id- WhatsApp ID of the reactorread- Whether seen by the recipientack- Delivery statusorphan- Orphaned reaction indicatororphan_reason- Reason for orphaned status
org_id- Organization identifierorg_phone- Organization phoneid- Nested ID object (JSON)msg_id- Original message ID object (JSON)
Phones
Phones
Connected WhatsApp phone numbers with connection status, profile info, and labels.Key Fields:
phone_id- Unique phone instance IDphone_name- WhatsApp display namephone_image- Profile image URLorg_phone- WhatsApp ID (format: phone@c.us)wa_state- Connection state: CONNECTED or DISCONNECTEDis_ready- Whether fully operational for messagingis_browser_open- Whether server-side session is activeqr_code- QR code data (null when connected)created_at- Creation timestampupdated_at- Last update timestampfirst_connected_at- First connection timestamp
labels- Comma-separated label nameslabel_ids- Label ID mapping (JSON)
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.