NewIntroducing the Teleperson Protocol (TPP), an open draft that helps personal agents work with every company, even on the phone.Read the announcement
All papers
White paperPersonal agentsProtocolsCustomer service

The Teleperson Protocol (TPP) 0.1: A Technical Overview

TPP is an open draft that extends the Personal Agent Protocol for customer service: verified agent phone calls, phone menus as data, an authorized-representative grant with limits, company-signed receipts, consented feedback, and a hosted starting point for companies that haven't built anything yet.

Teleperson Team · October 2026 · 8 min read

The Teleperson Protocol (TPP) is an open extension of the Personal Agent Protocol (PAP) for personal agents that handle customer service. This overview describes the roles, the design principles and each tpp.* extension in TPP 0.1. It is a draft: names and fields may change before 1.0. For the announcement and a two-minute video, see Introducing the Teleperson Protocol.

Why an extension

PAP gives a customer's personal agent a standard way to find a business (/.well-known/poppy.json), sign in with the customer's permission, and act for them over web, API or chat. Two things it leaves open matter most in customer service:

  • The phone. Most service still happens on calls, behind phone menus and identity checks.
  • Companies that haven't built anything. Most companies have no agent or agent endpoint yet, and won't for a while.

TPP fills those gaps and adds the pieces customer service needs around them: limits the customer sets, proof of what the company agreed to, and a way to hear back from customers.

Roles

  • Member: the person who wants something done.
  • Personal agent: acts for the Member. Atlas is Teleperson's personal agent.
  • Company: the business the agent deals with, reached directly or through Teleperson Host when the company hasn't published anything.

Design principles

  1. PAP first. A TPP agent is a PAP agent. Everything in TPP lives under tpp.* in the extensions section of poppy.json, and a company can adopt any subset.
  2. The member owns consent. Nothing happens without their permission, and they can revoke it at any time.
  3. No secrets reach the agent. Passwords, PINs and one-time codes are entered by the member at the company, never through the agent or a model.
  4. Always disclosed as AI, on every channel, including the phone.
  5. Signed both ways. Companies can verify the agent; members can verify what the company promised.
  6. Minimum data. Only what the task needs.
  7. Works without the company. A member can still get help when the company has published nothing.

The extensions

ExtensionWhat it addsWho implements it
tpp.directoryVerified channels for any company: phone numbers and their purpose, a menu map, and the company's poppy.json if it has oneTeleperson (from Vendor Hub data, number verification and menu mapping)
tpp.hostA guest-only PAP listing for companies that haven't claimed theirsTeleperson, until the company claims it
tpp.voiceA single-use call code that ties a phone call to a PAP sessionCompany intent endpoint + agent
tpp.menuThe phone menu (IVR) as a JSON tree with named routesCompany, or observed maps from Teleperson
tpp.repAn authorized-representative grant with limitsCompany sign-in + agent
tpp.receiptCompany-signed receipts for account actions, with promised follow-upsCompany
tpp.feedbackConsented post-experience feedback eventsAgent, delivered to the company

tpp.directory and tpp.host

The directory answers "how do I reach this company, and for what?" even when the company publishes nothing. When a company has no poppy.json, Teleperson Host serves a guest-only listing at tpp.teleperson.com/c/{company}/.well-known/poppy.json, clearly marked operator: teleperson and claimed: false. A hosted listing can't sign anyone in or act on an account; for that it hands off to the company's real channel.

A company claims its listing by proving domain ownership with a DNS TXT record (or a file at /.well-known/tpp-claim). It can then point the listing at its own PAP endpoint, or keep Teleperson as the host.

tpp.voice

Before dialing, the agent asks the company's intent endpoint for a call code: 6 digits, single use, valid for 10 minutes. On the call, the agent says it is an AI assistant calling for the member (by first name) and gives the code. The company looks the code up and sees which agent is calling, for whom, why, and what it is allowed to do. From that point the call is part of a PAP session, like a chat or API request.

tpp.menu

Companies can publish their phone menu as a tree of named routes, such as billing_dispute, cancel and reach_person, so an agent can go straight to the right team. Where a company hasn't published one, agents may use menu maps Teleperson has observed. At any step that asks for an account number, PIN or code, the agent hands off to the member.

tpp.rep

The member creates the grant at the company's own sign-in, never through the agent. It states:

FieldMeaning
mayActions the agent may take
credit_up_toThe most the agent may accept in credits or refunds without asking
neverActions the agent must never take
confirm_eachActions that need the member's OK every time
expires_atWhen the grant ends
{
  "may": ["dispute_charge", "request_credit"],
  "credit_up_to": "25.00 USD",
  "never": ["cancel_account"],
  "confirm_each": ["accept_offer"],
  "expires_at": "2027-10-16T00:00:00Z"
}

The values above are illustrative. The grant works the same in chat and on the phone, and the member or the company can revoke it at any time.

tpp.receipt

For every account action (a credit, refund, cancellation, plan change or appointment), the company returns a signed receipt (a JWS) with the reference number, the representative's name and any follow-ups it promised, with due dates. The agent verifies the signature, keeps the receipt and turns each promise into a reminder. If a company doesn't sign, the agent still records what happened, marked signed_by: agent, so it is never mistaken for the company's word.

tpp.feedback

After an experience, the agent can interview the member by voice (Atlas Survey). With the member's consent, the company receives a feedback event with a summary, a rating and highlights, in the customer's language and in English.

How it fits with other protocols

TPPPAP (Sierra, Meta)PACT (Decagon, Instinct)
Phone callsCall codes tie a call to a PAP sessionNot specified (web, API, chat)Not specified
Companies without an agentDirectory + guest-only hosted listingCompany publishes poppy.jsonNot specified
Customer-set limitstpp.rep: what, how much, until whenNot specifiedShort-lived delegation tokens
Signed outcomesCompany-signed receipts with promised follow-upsNot specifiedSigned receipts

TPP builds on PAP and is designed to stay compatible with PACT. "Not specified" means we didn't find it in the public materials we've read; PAP and TPP are both early drafts.

Adopting TPP as a company

  1. Start with zero build. Teleperson already hosts a guest-only listing, so agents can find your verified channels.
  2. Claim it with one DNS record.
  3. Turn on only the extensions you want, one at a time. Underneath, it's standard PAP.

Status

TPP 0.1 is an open draft under Apache-2.0. We'd like feedback from companies, agent platforms and contact-center providers. Talk to us about TPP.