Skip to content

Helpdesk · Beta

Puzzel
API integration

Ship Helpdesk features without building the integration. Full Puzzel API access via Proxy and 80+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
Puzzel

Use Cases

Why integrate with Puzzel

Common scenarios for SaaS companies building Puzzel integrations for their customers.

01

Automate call recording ingestion for AI-powered quality assurance

QA and conversation intelligence platforms can pull completed interaction records and download call recordings from Puzzel to run sentiment analysis, compliance checks, and agent scoring — without requiring manual exports from contact center admins.

02

Sync real-time agent and queue telemetry into workforce management tools

WFM platforms need continuous visibility into agent states, queue depths, and service-level metrics to detect schedule non-adherence and forecast staffing needs. Polling Puzzel's real-time state and ticker endpoints through Truto eliminates the need to build and maintain direct API plumbing.

03

Route omnichannel tasks into Puzzel from external business systems

CRMs, ticketing platforms, and marketing automation tools can programmatically inject work items — emails, web leads, scheduled callbacks — directly into Puzzel's routing engine via eTasks and scheduled tasks, ensuring they're distributed to skilled agents alongside voice calls.

04

Build CRM screen-pop and automatic call logging for vertical SaaS

Vertical CRMs serving government, housing, or financial services can use Puzzel call log and missed call data to auto-populate customer records on incoming calls and generate follow-up tickets when calls are missed, giving agents a single-pane-of-glass experience.

05

Push contextual tags and metadata back into Puzzel from analytics platforms

After processing interactions externally, SaaS products can write enrichment data — such as churn risk scores or compliance flags — back to Puzzel archive records as tags, keeping the contact center's native reporting in sync with third-party insights.

What You Can Build

Ship these features with Truto + Puzzel

Concrete product features your team can ship faster by leveraging Truto’s Puzzel integration instead of building from scratch.

01

Nightly call recording sync pipeline

Automatically fetch archive records via list_all_puzzel_archive_records, filter by date range or user group, and download audio files with puzzel_archive_recording_files_download for offline transcription and analysis.

02

Real-time agent adherence dashboard

Poll list_all_puzzel_user_state_information and list_all_puzzel_extended_user_state_info on a cadence to detect when agents exceed scheduled break or wrap-up durations, surfacing non-adherence alerts in your WFM product.

03

Programmatic eTask and scheduled task creation

Use create_a_puzzel_etask and create_a_puzzel_scheduled_task to inject non-voice work items from your platform directly into Puzzel's skill-based routing engine so they reach the right agent automatically.

04

Missed call follow-up automation

Consume list_all_puzzel_missed_calls and list_all_puzzel_user_missed_calls to auto-generate follow-up tickets or callback requests inside your CRM whenever a customer interaction goes unanswered.

05

Live queue volume feed for forecasting models

Ingest list_all_puzzel_visual_queue_ticker and list_all_puzzel_agents_stats data to power demand forecasting algorithms with real historical and intraday call volume, answer rate, and average wait time metrics.

06

Post-interaction archive tagging from external AI

After scoring or classifying a call externally, write structured tags back to Puzzel using update_a_puzzel_archive_tag_by_id so supervisors can filter and report on AI-derived labels natively inside Puzzel.

SuperAI

Puzzel AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_puzzel_user_groups

List user groups in Puzzel. Returns result with each group including id and name.

list_all_puzzel_token_info

Get access token information in Puzzel. Returns customerKey, customerId, userGroupId, userId, languageId, languageCode, passwordValidDaysLeft, and accessTokenExpiry in the response.

list_all_puzzel_scheduled_tasks

Search for scheduled tasks in Puzzel. Returns entries with details such as contactId, name, phone, duration, queueId, scheduledDateTime, reservedUserId, reservedUserName, and title.

get_single_puzzel_scheduled_task_by_id

Get an existing scheduled task in Puzzel using id. Returns fields such as contactId, name, description, phone, reservedUserId, scheduledDateTime, queueKey, and related variables.

create_a_puzzel_scheduled_task

Create a new scheduled-tasks in Puzzel. Returns result and code fields in the response.

update_a_puzzel_scheduled_task_by_id

Update a scheduled etask in Puzzel using id. Returns updated etask details such as contactId, name, scheduledDateTime, reservedUserId, and variables.

delete_a_puzzel_scheduled_task_by_id

Delete a scheduled task in Puzzel. Requires id. Returns code indicating the result of the operation.

create_a_puzzel_sm

Send an SMS message in Puzzel. Requires user_id. Returns code (status), id (message identifier), and message (status message) in the response.

list_all_puzzel_token_extended_information

Get extended access token details in Puzzel, including customerKey, userId, accessTokenExpiry, language, pauseTypes, and queues. Returns these fields in the response.

list_all_puzzel_archive_records

Search archive records in Puzzel for a specific user. Requires user_id. Returns fields including recordStart, accessPoint, callId, recordingType, contentAvailable, surveyExist, enquiryRegistrationExists, entries, tags, and comment.

delete_a_puzzel_archive_record_by_id

Delete an archived record in Puzzel. Requires user_id. Returns code (status), id (record identifier), and message (operation result details) in the response.

get_single_puzzel_archive_stream_by_id

Stream archive recordings for a specific user in Puzzel. Requires user_id, iq_session_id, and id. Returns the audio/video stream content for the requested archive recording.

puzzel_archive_recording_files_download

Download a recording file from Archive in Puzzel. Requires user_id, iq_session_id, and index. Returns the audio file as application/octet-stream with Content-Disposition header indicating filename.

get_single_puzzel_enquiry_registration_by_id

Get enquiry registration for a specific user by callId in Puzzel. Requires user_id, and id. Returns fields including id, time, agentId, agentName, queueKey, queueDescription, categories.

get_single_puzzel_survey_by_id

Get survey from Puzzel by user_id and id. Returns survey details including key fields for the specified callId.

list_all_puzzel_archive_audit_logs

Search archive audit logs in Puzzel. Returns id, dateTime, operation, iqSessionId, recIndex, mediaType, and userId fields for each log entry in the response.

update_a_puzzel_archive_tag_by_id

Update tags for a specific call archive in Puzzel using user_id and id. Returns code, id, and message indicating the update result.

list_all_puzzel_catalog_timezone

Get the customer timezone set in the Puzzel database. Returns result, code, id, and message fields in the response.

update_a_puzzel_catalog_timezone_by_id

Update the customer timezone in Puzzel. Returns code, id, and message indicating the result of the operation.

list_all_puzzel_catalog_contacts

Search catalog-contacts in Puzzel using user_id. Returns id, firstName, lastName, title, info, organizationName, communicationPoints, and other contact details in the response.

get_single_puzzel_catalog_contact_by_id

Retrieve a contact by contactId in Puzzel. Requires user_id, and id. Returns fields such as id, firstName, lastName, title, info, services, communicationPoints with status and address, isCalenderBusy, and organization details.

list_all_puzzel_contacts_appointments

List all appointments for a specific contact in Puzzel using user_id and contact_id. Returns id, subject, location, beginTime, endTime, description, durationMinute, isPrivate, isAvailable, source, and absence fields.

create_a_puzzel_contacts_appointment

Create a new appointment for a contact in Puzzel. Requires user_id, and contact_id. Returns code, id, message, and result fields in the response.

update_a_puzzel_contacts_appointment_by_id

Update an existing appointment for a contact in Puzzel. Returns code, id, and message fields indicating the result of the operation. Requires user_id, and contact_id.

delete_a_puzzel_contacts_appointment_by_id

Delete an appointment in Puzzel for a specific contact using user_id, contact_id, and id. Returns code, id, and message indicating result.

list_all_puzzel_access_point_tickers

Get ticker data for access numbers in Puzzel by ticker_period_window. Returns accesspoint, requestsOffered, and requestsAnswered fields in the response.

list_all_puzzel_state_information

Get real-time agent state and statistics for a specific user group in Puzzel. Requires ticker_period_window, and userGroupName. Returns userId, name, status, stats, and survey results fields.

list_all_puzzel_personal_queue_requests

List requests in the personal queue for a user in Puzzel. Requires user_id. Returns requestId, serviceId, timeInQueue, vip, mediaType, requestStatus, sla, description, category, callbackScheduledTime, and more for each request.

list_all_puzzel_connected_requests

List connected requests for a specific user in Puzzel. Requires user_id. Returns queueName, requestCategory, requestDescription, requestRemoteAddress, durationSeconds, userName, and userId for each connected request.

list_all_puzzel_user_state_information

Get user state information in Puzzel by user_id. Returns userStatus, contactCentreStatus, status duration, chat connection details, silent monitoring flags, and related fields in the response.

list_all_puzzel_extended_user_state_info

Get very detailed user state information in Puzzel. Requires user_id. Returns userStateInformation, systemDateTime, iqSessionStateInformation, recordingInfo, requestPersonalQueueList, request, and pauseDisabledList fields in the response.

list_all_puzzel_agents_stats

Get real-time agent stats in Puzzel for a given user_id, and ticker_period_window. Returns queuesTotal, pause, and overview data including requestsOffered, requestsAnswered, loggedOnSeconds, inPauseSeconds, survey stats, and more.

list_all_puzzel_user_visual_queues

List visual queues for a specific user in Puzzel user_id. Returns a list with fields: requestId, serviceId, timeInQueue, vip, mediaType, requestStatus, queueId, and callbackScheduledTime.

get_single_puzzel_user_visual_queue_by_id

Get visual queue information in Puzzel for a specific visual queue using user_id, and id. Returns fields such as requestId, serviceId, timeInQueue, mediaType, requestStatus, and destination.

list_all_puzzel_visual_queues

List visual-queues in Puzzel. Returns id, description, and queues with id, key, description, and serviceId in the response.

get_single_puzzel_visual_queue_by_id

Get user visual queue information in Puzzel for a specific visual queue. Requires id, and result. Returns usersDetails and usersOverview fields with details on users and overall queue status.

list_all_puzzel_visual_queue_state_info

Get visual queue state and ticker information in Puzzel. Requires visual_queue_result. Returns id, description, waitTimeMaxSeconds, waitTimeAverageSeconds, queueSize, agentsLoggedOn, agentsInPause, agentsReady, agentsUnavailable, sla, queueSizeCiq, unblockedLoggedIn, unblockedUnavailable, queueSizePreferred, callsOfferedToday, callsAnsweredToday, ciqsOfferedToday, ciqsAnsweredToday, callsAnsweredWithinSla, alarmFlag, ciqScheduled, callsAbandonedToday, callsAbandonedWithinSla, silentCallsToday fields in the response.

list_all_puzzel_visual_queue_ticker

Get visual queue ticker information in Puzzel for the specified ticker_period_window, and visual_queue_result. Returns id, description, call statistics, CIQ and survey results in the response.

get_single_puzzel_etask_by_id

Get details about a specific etask request in Puzzel. Requires id. Returns id, additionalInfo, requestStart, queueEntryTime, reservedUserExpiry, status, queueId, mediaType, queuePosition, iqSessionId, extendedInformations, from, to, vipScore, reservedUserId, and variables.

create_a_puzzel_etask

Add etasks or emails in Puzzel. Returns the created etask object including from, to, subject, uri, vipScore, reservedUserId, reservedUserWaitTime, category, description, variables, queueKey, and xdrCopy fields.

delete_a_puzzel_etask_by_id

Delete an existing etask/email request in Puzzel by id. Returns code indicating operation completion.

update_a_puzzel_etask_by_id

Update etask or email request in Puzzel. Returns updated fields including subject, uri, vipScore, reservedUserId, reservedSecondsFromNow, category, description, queueKey, variables, and xdrCopy.

update_a_puzzel_request_by_id

Update a request in queue by id in Puzzel. Returns code, id, and message fields indicating the result of the operation.

get_single_puzzel_request_by_id

Get details about a specific request in Puzzel. Requires id. Returns fields such as remoteAddress, destination, requestStart, status, variables, extendedInformations, and outboundInfo.

delete_a_puzzel_request_by_id

Delete a request in Puzzel. Requires id. Returns code, id, and message indicating the operation result.

list_all_puzzel_missed_calls

List missed calls in Puzzel for a specific queue using queue_id. Returns key fields for each missed call: queueId, queueName, requestId, requestRemoteAddress, destination, queueEntered, inQueueSeconds, category, description, reservedUserId, mediaType, tagLevel, userIdTagged, userNameTagged, and dateTimeTagged.

puzzel_missed_calls_tag

Tag a missed call in Puzzel. Requires missed_call_id. Returns code, id, and message fields indicating the tagging operation result.

list_all_puzzel_user_missed_calls

List missed calls for a user in Puzzel by id. Returns fields such as queueId, queueName, requestId, requestRemoteAddress, destination, queueEntered, inQueueSeconds, category, tagLevel, userIdTagged, userNameTagged, dateTimeTagged, and others.

get_single_puzzel_user_request_by_id

Get details of a specific user request in Puzzel using id. Returns fields such as remoteAddress, destination, status, queueId, vip, mediaType, variables, and extendedInformations.

puzzel_user_requests_reserve

Reserve a user-request in Puzzel by user_id and request id. Returns code, id, and message indicating the reservation result.

delete_a_puzzel_user_request_by_id

Cancel a reserved user-request in Puzzel. Requires user_id, and id. Returns code, id, and message indicating the result of the cancellation.

puzzel_user_requests_events

Create session request event in Puzzel for a specific user and request. Requires user_id, and request_id. Returns code, id, and message fields in the response indicating the result.

list_all_puzzel_request_extended_information

Get extended information about a specific request in Puzzel. Requires request_id. Returns fields: time, message, fullUserName, userId, type, and userName for each entry in the response.

list_all_puzzel_user_call_logs

List last 20 request logs for a specific user in Puzzel, including queueName, queueId, accessPoint, requestId, mediaType, callType, requestRemoteAddress, answeredAt, and speakTimeSeconds. Requires user_id. These fields are returned in the response.

create_a_puzzel_user_callout_request

Create an outgoing callout request for a user in Puzzel using user_id. Returns callout execution details including destination, scheduling, and agent assignment fields.

delete_a_puzzel_user_callout_request_by_id

Delete a specific callout request for a user in Puzzel. Returns code (operation status), id (request id), and message (operation result).

create_a_puzzel_user_email

Send an email message for a specific user in Puzzel. Requires user_id. Returns code, id, and message fields indicating the email send status and message id.

create_a_puzzel_user_enquiry_registration

Create enquiry registration for a user in Puzzel. Requires user_id. Returns code (status code), id (enquiry registration id), and message (response information).

list_all_puzzel_enquiry_registrations_categories

Get enquiry registration categories and topics in Puzzel using user_id, and result. Returns code, id, and message fields in the response.

list_all_puzzel_outbound_request_feedback

Update an outbound dialler request with feedback in Puzzel. Requires user_id. Returns code, id, and message indicating the result of the update.

list_all_puzzel_call_recordings

Get recording details of the connected call in Puzzel using user_id. Returns recordingIndex, recordingStart, recordingState, forcedOnQueue, forcedOnUser, and lengthSeconds fields.

puzzel_call_recordings_command

Send a recorder command for a user session in Puzzel. Requires user_id. Returns code, id, and message indicating the command status.

puzzel_user_sessions_command

Execute a command for an active user session in Puzzel using user_id and session_id. Returns code, id, and message indicating the command status.

list_all_puzzel_languages

List languages in Puzzel. Returns each language's id, code, and description in the response.

list_all_puzzel_system_date_time

Get system date and time in Puzzel. Returns result (system dateTime), code, id, and message in the response.

list_all_puzzel_system_properties

Retrieve a list of property settings for a specified property_group in Puzzel. Returns key, value, and typeId for each property.

create_a_puzzel_system_property

Set property value for a property group in Puzzel. Requires property_group. Returns code, id, and message fields in the response indicating result and operation info.

get_single_puzzel_system_property_by_id

Get details about a system property in Puzzel using property_group, id, and userId. Returns key, value, and typeId fields in the response.

list_all_puzzel_queues

List queues in Puzzel. Returns id, key, description, and serviceId for each queue.

list_all_puzzel_services

List services in Puzzel. Returns id, number, and description fields for each service in the response.

list_all_puzzel_service_qualities

List service qualities in Puzzel. Returns id, number, description, serviceId, and elements (with id, name, userLevel) fields in the response.

list_all_puzzel_user_service_labels

List service labels for a specific user in Puzzel. Returns nodeType, label, and nodeId for each service label.

puzzel_user_service_labels_search

Search for service labels in Puzzel for a specific user using user_id. Returns nodeType, label, and nodeId for each matched service label.

list_all_puzzel_access_logs

List access logs in Puzzel for the last 14 days. Returns entries containing id, dateTime, ip, clientType, clientInfo, logInResult, userId, and userName.

list_all_puzzel_changelogs

Search change logs in Puzzel for the past 3 months. Returns entries with id, dateTime, userId, auditType, operation, key, and value for each change.

puzzel_access_token_logout

Log out and destroy access token in Puzzel. Returns code, id, and message fields in the response.

list_all_puzzel_pause_types

List pause types in Puzzel. Requires userId. Returns id and description for each pause type in the response.

list_all_puzzel_users_search

Search for users in Puzzel using user_id. Returns user details such as userGroupName, profileName, chatState, contactCentreStatus, joined, userStatus, sessionTime, and profiles.

get_single_puzzel_profile_by_id

Get details of a specific profile for a user in Puzzel using user_id, and id. Returns profile fields including id, number, lastPhoneNumber, phoneNumber, phoneType, name, groupProfile, and qualities.

create_a_puzzel_profile_element

Add a quality element/skill to a specific user profile in Puzzel. Requires user_id, and profile_id. Returns code, id, and message indicating the result.

delete_a_puzzel_profile_element_by_id

Remove a skill from profile in Puzzel. Requires user_id, profile_id, and id. Returns code, id, and message fields in the response indicating the operation result.

list_all_puzzel_iq_session_state_info

Get IQ session state information for a specific user_id in Puzzel. Returns iqSessionId, iqSessionState, requestIds, user session details, and request metadata for the given user_id.

list_all_puzzel_available_users

List available users (Ready) in Puzzel for a specific user. Requires user_id. Returns the users who are logged on and available.

list_all_puzzel_query_users

Search users by queue or user filter in Puzzel. Requires user_id. Returns sourceSearchResultType, contactCentreStatus, queueDescription, queueKey, userFullName, userId, userName, userStatus, and chatState fields in the response.

Why Truto

Why use Truto’s MCP server for Puzzel

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with Puzzel in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Puzzel account

Use Truto’s frontend SDK to connect your customer’s Puzzel account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Puzzel

Truto’s Proxy API is a 1-to-1 mapping of the Puzzel API. You call us, we call Puzzel, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Puzzel’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Puzzel on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

What authentication method does the Puzzel integration use?

Puzzel uses token-based authentication. Truto manages the full auth lifecycle including token retrieval and refresh. You can inspect active token details via the list_all_puzzel_token_info and list_all_puzzel_token_extended_information endpoints, and explicitly revoke sessions with puzzel_access_token_logout.

Can I download actual call recording audio files, or just metadata?

Both. Use list_all_puzzel_archive_records to retrieve interaction metadata and then puzzel_archive_recording_files_download to download the raw audio file. You can also stream a specific recording via get_single_puzzel_archive_stream_by_id.

What real-time data can I poll from Puzzel through Truto?

You can access live agent states (list_all_puzzel_user_state_information, list_all_puzzel_extended_user_state_info), queue-level KPIs like calls offered, answered, and average wait time (list_all_puzzel_visual_queue_ticker, list_all_puzzel_visual_queue_state_info), and per-agent performance stats (list_all_puzzel_agents_stats).

Can I create outbound calls or send SMS through the integration?

Yes. Use create_a_puzzel_user_callout_request to trigger an outbound call for a specific agent, and create_a_puzzel_sm to send an outbound SMS. Both are write operations supported through Truto.

Is there a Unified API available for Puzzel?

There is no Unified API mapping for Puzzel yet. All operations use Puzzel-native API endpoints exposed through Truto's proxy layer. This gives you full access to Puzzel-specific features like eTasks, visual queues, and archive recordings without abstraction trade-offs.

What write-back operations are supported beyond reading data?

Truto supports creating, updating, and deleting scheduled tasks and eTasks; creating callout requests, emails, and enquiry registrations for users; updating archive tags; creating and deleting contact appointments; managing system properties and profile elements; and tagging missed calls — covering the most common CRM sync and workflow automation scenarios.

Puzzel

Get Puzzel integrated into your app

Our team understands what it takes to make a Puzzel integration successful. A short, crisp 30 minute call with folks who understand the problem.

Talk to us