TicketFlow Help

Documentation for the TicketFlow demo platform.

Overview

TicketFlow is a demo platform for testing AI agent integrations via MCP (Model Context Protocol). It includes a ticket management system as a built-in use case — agents can create, search, and update tickets — but the primary purpose is to evaluate how different MCP servers, models, and prompts perform on real tasks.

The agent uses Anthropic models (Claude) and runs on a shared corporate API key — no personal API key is needed.

Quick start

  1. Go to MCP Profiles and add your MCP server connection. Any MCP-compatible server works — for example, Albato or Composio.
  2. Go to Agents and create an agent. Attach the MCP profile you just created.
  3. Open Chats, select your agent and start a conversation.
  4. Optionally, go to Testing to compare two agents side by side.

Home

The Home page gives you an overview of your workspace at a glance.

Tickets

The core of TicketFlow. Each ticket has a title, description (Markdown), status, and visibility.

Statuses

Visibility

Views

Switch between List and Kanban board using the toggle in the top-right corner of the Tickets page.

Filtering & search

Filter by status and ownership (All / Mine). Use the search field to find tickets by title or description.

You can ask the agent to create, update, or find tickets for you in the Chat section.

MCP Profiles

MCP (Model Context Protocol) profiles connect the agent to external services — CRMs, messengers, databases, and more. Each profile is a URL + token pair pointing to an MCP-compatible server.

Adding a profile

  1. Go to MCP Profiles in the sidebar.
  2. Click Add profile.
  3. Enter a name, the MCP server URL, and your token.
  4. Save. The profile is now available to attach to agents.

Built-in profile

Every account has the TicketFlow profile pre-connected. It gives the agent access to native ticket management tools (create, list, update, delete tickets).

Tokens are encrypted before being stored. Supported providers: Albato, Composio, and any MCP-compatible server.

Connecting Albato Demo MCP

Albato provides a public demo MCP server for testing. Use it to explore how agents work with MCP tools before connecting your own server.

Connection details

Steps

  1. Get the contract end-user session token.
  2. In TicketFlow, go to MCP Profiles → Add profile.
  3. Fill in: Name — e.g. Albato Demo, URL — https://mcp-demo.albato.com/mcp, Token — the session token from step 1.
  4. Click Test to verify the connection. You should see a list of available tools.
  5. Go to Agents, create an agent, and attach this profile.
The session token belongs to a specific end-user in a specific contract. Make sure the contract has Universal API access enabled for that user.

Albato MCP

Albato provides a demo MCP server at https://mcp-demo.albato.com/mcp. Virtual keys let you connect agents securely — your real Albato API token is stored server-side and never sent to the LLM provider.

Virtual keys

A virtual key (mcp_vk_...) replaces your real Albato API token in the agent configuration. If a virtual key is ever compromised, you revoke it in one API call — your real token is unaffected and all other agents keep working.

Registering a virtual key

You need a Registration Secret (reg_...) provided by your Albato integration manager. Each company gets one — keep it safe, it allows creating new keys on behalf of your contract.

  1. Run this request, replacing the placeholders:
curl -X POST https://mcp-demo.albato.com/auth/register \
  -H "Authorization: Bearer <registration_secret>" \
  -H "Content-Type: application/json" \
  -d '{
    "albatoToken": "<your_albato_token>",
    "label": "ticketflow-agent",
    "expiresAt": "2026-12-31T23:59:59Z"
  }'

label is optional but recommended (e.g. "crm-agent", "onboarding-flow"). expiresAt is optional — omit for a permanent key.

The response includes "virtualKey": "mcp_vk_...". Save this value immediately — it is shown only once and not stored on the server.

Use in TicketFlow

  1. Go to MCP Profiles → Add profile.
  2. Set URL to https://mcp-demo.albato.com/mcp.
  3. Paste the mcp_vk_... value as the Token.
  4. Click Test to verify — you should see the list of available tools.

Managing your keys

List all your keys

curl https://mcp-demo.albato.com/client/keys \
  -H "Authorization: Bearer <registration_secret>"

The response shows a keyHint (last 4 characters of the key), label, and expiry for each key.

Revoke a key

curl -X POST https://mcp-demo.albato.com/client/keys/revoke \
  -H "Authorization: Bearer <registration_secret>" \
  -H "Content-Type: application/json" \
  -d '{"virtualKey": "mcp_vk_..."}'

Effect is immediate — any subsequent request using the revoked key returns 401.

One key per agent. Create a separate virtual key for each agent or integration. If one is compromised, revoke only that key without affecting others.

Error reference

Agents

An agent is a configured AI assistant. You can create multiple agents with different models, system prompts, and connected MCP profiles.

Configuration options

Token usage

Each agent card in the Agents list shows token consumption for today, the last 7 days, and the last 30 days. If a limit is configured, the card also shows what percentage of the limit has been used. A red daily / weekly / monthly limit badge appears when a limit is reached and the agent is blocked.

When a token limit blocks a scheduled run, a service notice is written to the chat so you know why a particular run was skipped. Subsequent blocked runs in the same period do not add duplicate notices.

The platform uses a shared corporate Anthropic API key. You do not need to configure your own.

Webhook

Every agent has a unique webhook URL and secret, visible in the agent's edit form. External systems (such as Albato) can trigger the agent via a simple HTTP API without user interaction.

How it works

  1. Send a POST request to the agent's webhook URL with the X-Webhook-Secret header and any JSON body. The entire body is passed to the agent as the user message — use the agent's system prompt to define how it should be handled. Optionally include a prompt field to override with an explicit instruction, and a session_id to continue an existing conversation.
  2. The server responds immediately with 202 and a job_id + session_id.
  3. The agent runs asynchronously. Poll GET /api/hooks/jobs/<job_id> until status is done or failed.

Multi-turn conversations

Pass the same session_id in subsequent calls to continue the same conversation. Omit it to start a new one. Each session corresponds to a chat visible in the Chats section.

Chat session mode

Each agent has a Chat session mode setting in the webhook section of its edit form:

Use Single chat when you want the agent to have memory across independent webhook events (e.g. an agent that tracks mentions over time and builds a running summary).

Observability

Webhook-triggered runs appear in Chats with a blue webhook badge. Each turn shows the original request body (prompt and context) and execution metrics (duration, input/output tokens). The Journal also logs every webhook run with a job ID for traceability.

Schedules

Every agent can have one or more schedules — timed triggers that run the agent automatically with a given prompt, without any manual interaction.

Creating a schedule

  1. Open Agents and edit an existing agent.
  2. Scroll to the Schedules section and click + Add.
  3. Fill in the name, prompt, timezone, and frequency.
  4. Click Create. The schedule becomes active immediately — no restart required.

Frequency modes

Template variables

Use these placeholders in your prompt — they are substituted at run time in the schedule's timezone:

Chat session mode

Each schedule has a Chat session setting:

Pause and resume

Use the toggle switch next to each schedule in the list to enable or disable it without deleting it. Disabled schedules are preserved but never run.

Observability

Scheduled runs appear in Chats with a green scheduled badge. In Reuse same chat mode all runs accumulate in the same chat; in New chat each run mode each run gets its own chat. The chat header shows an Auto-update toggle that polls for new messages every 5 seconds — useful when watching a scheduled chat live. The Journal also logs every scheduled run with a scheduled badge.

Chats

Each agent can be used in a persistent chat. Conversation history is saved — you can close the browser and continue later.

How it works

Tool visibility

During a response, you can see each tool the agent invoked and its result. This helps you understand exactly what actions were taken on external services.

Webhook chats

When an agent is triggered via webhook, a chat is automatically created or continued for that session. These chats appear in the sidebar with a blue webhook badge. Each turn in the chat shows:

You can continue a webhook conversation manually by typing in the chat input — the history is preserved across both webhook-triggered and manual turns. The session UUID is shown in the chat header and can be copied to use as session_id in the next webhook call.

Agent Comparison

The Testing section lets you compare up to 4 agents simultaneously on the same set of tasks — useful for evaluating different models, prompts, or MCP configurations.

Concepts

Running a test

  1. Create a suite.
  2. Add one or more sides using + Add side and assign an agent to each.
  3. Type a message in the shared input at the bottom and press Enter or click Send to all. The message is sent to all sides simultaneously and responses stream in real time.
  4. Review results: token usage, cost ($), duration, and tool call trace for each side.
  5. Click Summarize to generate an AI summary comparing all sides.

Example: comparing MCP providers

You can use the same agent on both sides but with different MCP profiles attached — for example, to compare Albato vs Composio on the same task:

  1. Create two agents with identical model and system prompt.
  2. Attach the Albato MCP profile to one, Composio to the other.
  3. Run the same test cases on both sides.
  4. Compare token usage, cost, duration, and response quality.

Cost display

Cost is calculated automatically from token counts using current Anthropic pricing. Hover over a bar in the chart to see the per-case breakdown (input vs output tokens and their rates).

Before running MCP tests: make sure all required connections are already set up in your MCP provider (e.g. HubSpot, Slack). During a test run the agent cannot prompt you to authorize or select a connection — any interactive step will cause the run to stall or hit the iteration limit. To set up connections in advance, open a Chat with the same agent and send a message like "Connect my HubSpot account" — the agent will guide you through authorization interactively. Once done, the connection will be available in all subsequent test runs.
Results can vary between runs due to model non-determinism. For more reproducible comparisons, set temperature = 0 on both agents.

Journal

The Journal shows a log of all agent runs — from Chats, Testing, and Webhooks. Each entry includes the message sent, token usage, duration, MCP profile used, and any errors.

What's logged

Filtering

Filter by date range, tool name, or error status. Click any row to expand the full tool call trace.

Admin features

Administrators see sessions from all users and can additionally filter by user. They can also hide sessions from the list, add notes, and delete sessions older than a given date.

Statistics Admin

Available to administrators. Shows a log of all agent sessions across all users.

What's tracked

Sessions can be filtered by user, date, tool name, and error status. Individual sessions can be hidden from the list or annotated with a note.

Users Admin

Administrators can manage all user accounts in the Users section.

User statuses

New registrations default to Pending. An admin must approve them before they can log in.

Actions

Approve, block, or delete users. Enable or disable agent access per user. Admins cannot modify their own status or delete themselves.

Administrators can also delete any ticket, including tickets created by other users.

Settings

AI

Anthropic API Key — optionally set your own API key. If not set, the platform uses the shared corporate key. Useful if you want to track your personal usage separately.

Always confirm connection — when enabled, the agent will always ask you to choose a connection before performing any action, even if only one is available. Useful for demos where you want to make the flow visible step by step.

Custom instructions Admin — text appended to the system prompt for all agents and all users. Use it to set the default tone, restrict certain behaviors, or add shared domain context.

Appearance

Customize the app for your workspace: set a name, pick an accent color, and upload a logo. Changes apply immediately and are visible only to your account.

Security

Change your password. Passwords must be at least 8 characters and include an uppercase letter, a number, and a special character.

Release Notes

July 20, 2026

Admin impersonation

Administrators can now log in as any non-admin user directly from the Users table. Click Impersonate next to a user row — the page reloads showing the app exactly as that user sees it. A red banner at the top of the screen identifies the active impersonation session and shows the user's email. Click Exit in the banner to instantly return to your admin session. Impersonation sessions expire after 8 hours. Other admins cannot be impersonated.

Per-user schedule control (Admin)

Administrators can now disable scheduled agent runs for individual users via the Disable schedules / Enable schedules buttons in the Users table. When schedules are disabled for a user, all their active schedules are silently skipped at runtime. The affected user sees a yellow notice on the Agents page, and the Schedules section in each agent's settings is greyed out with a "Disabled by administrator" label.

Per-user token limits (Admin)

In addition to per-agent limits, administrators can now set account-level daily, weekly, and monthly token limits for individual users via Set limits in the Users table. These limits apply across all of a user's agents and all run sources (chat, webhook, scheduled). Current consumption (D / W / M) is shown inline in the Users table; values that exceed the limit are highlighted in red with a ⚠ indicator. Leave a limit blank to make it unlimited.

July 10, 2026

Webhook: single-chat mode

Agents now have a Chat session mode option in the webhook settings. In the new Single chat mode, every incoming webhook call for an agent — regardless of session_id — is appended to one persistent chat. The full conversation history is passed to the agent on each call, giving it memory across independent events. The default Per session mode is unchanged.

Webhook: flexible authentication

Webhooks now accept credentials via the standard Authorization header in addition to the custom X-Webhook-Secret header. Pass the secret as the second part of any scheme: Authorization: Token <secret>, Authorization: Bearer <secret>, etc. Both headers work simultaneously and are fully backward-compatible.

Webhook: optional prompt

The prompt field in the webhook request body is now optional. If omitted, the entire JSON body is passed to the agent as the user message. This lets you forward arbitrary event payloads — from Albato, Zapier, or any service — without reshaping the data. Describe the expected format in the agent's system prompt instead.

July 9, 2026

Agent Schedules

Agents can now run automatically on a schedule — no manual interaction needed. Each schedule has a name, a prompt with optional template variables ({{date}}, {{time}}, {{day}}, and others), a timezone, and a frequency (preset intervals or a custom cron expression).

Two chat session modes: Reuse same chat (all runs accumulate in one persistent chat, so the agent can refer to previous results) or New chat each run (each run gets a fresh context). Schedules can be paused and resumed without deleting them. Scheduled runs appear in Chats with a green scheduled badge and are logged to the Journal.

Token usage & limits

Each agent card now shows token consumption for today, the last 7 days, and the last 30 days — across all sources (chat, webhook, and scheduled runs). Optionally set a daily, weekly, or monthly limit. When a limit is reached, the agent stops accepting new requests and writes a service notice to the chat. Subsequent blocked runs in the same period add no duplicate notices. The daily limit resets at midnight in your account timezone; weekly and monthly are rolling 7-day and 30-day windows.

Account timezone

A new Timezone field in Settings → Account controls when the daily token limit resets.

Journal: JSON viewer

Tool call results in the Journal now have a Raw / JSON toggle. The JSON tab renders structured data as a collapsible tree with colored value types and a Copy button — similar to Postman's response viewer.

July 6, 2026

Each agent now has a unique webhook URL and secret — making it possible to trigger agents from outside the platform: via an Albato automation, a custom script, Postman, or any HTTP client. The agent runs asynchronously and returns its result via a polling endpoint.

Webhook observability

Webhook-triggered agent runs are now fully visible in the UI. Each webhook session automatically creates a persistent chat with a blue webhook badge — you can watch the conversation unfold and continue it manually from the chat input.

July 2, 2026

Stop button

Agent runs can now be cancelled mid-flight. The Send button turns into a Stop button while the agent is running — clicking it immediately cancels the request in both Chats and Testing.

Real-time progress in Testing

The Testing section now streams agent progress live — you can see each tool call as it happens, without waiting for the full run to complete. This also eliminates timeout errors on long-running agents.

July 1, 2026

MCP Profiles

Each user can now connect their own MCP server under Settings → MCP Profiles. Any MCP-compatible provider is supported (Albato, Composio, and others). Tokens are encrypted before storage.

A built-in TicketFlow profile with native ticket management tools is automatically added to every account.

Agents

The Agents section lets you create custom AI agents with their own system prompt, model selection (Sonnet, Haiku, Opus), MCP profile bindings, iteration limit, and temperature. The platform uses a shared corporate Anthropic API key — no additional setup required.

Chats

Each agent is accessible via persistent chat with full history. The chat streams responses and shows tool calls and their results inline.

Agent Comparison

The Testing section lets you compare agents on identical tasks — side by side, with metrics on tokens, cost, and time. An AI-generated summary highlights the key differences. Each run includes a detailed breakdown of tool calls and responses.

Cost is calculated automatically using current Anthropic pricing, with per-case breakdowns of input/output tokens.

Earlier features