Claude and agents
MCP server reference
Every tool PYLO's MCP server lists, generated from the server's own list.
PYLO runs a Model Context Protocol server, so Claude and other agents can read a workspace's figures and, with the right token, carry out setup actions. This reference is generated from the list of tools the server itself returns, so it always matches what an agent sees.
Connecting
- Endpoint:
https://api.pylosystem.com/mcp, streamable HTTP, JSON-RPC. - Authentication: a PYLO API token sent as
Authorization: Bearer <token>. An owner or admin creates one under Settings, then API tokens, with the MCP scope. The Claude plugin can sign in with OAuth instead; see the Claude plugin. - A workspace token reads only its own workspace, and every tool refuses another. An agency token can read each workspace in its agency and names the one it wants with
workspaceId. - A member's own token lists different tools, which read only that member's own figures. They are listed at the end.
Tools at a glance
| Tool | What it does |
|---|---|
list_workspaces | Workspaces |
get_setup_status | Setup status |
get_metric_definitions | Metric definitions |
get_metric | One metric |
get_call_kpis | Call figures |
get_booking_outcomes | Cancellations and reschedules |
get_payment_kpis | Payment figures |
get_funnel | Funnel |
list_leads | Leads |
get_lead_journey | Lead journey |
list_calls | Calls |
list_payments | Payments |
get_commission | Commission |
get_eod_compliance | End of day compliance |
get_webinar | Webinars |
get_integration_health | Integration health |
list_flow_runs | Flow runs |
list_audit_events | Audit log |
get_data_trust | Data trust |
list_reconciliation_items | Reconciliation items |
get_source_coverage | Source coverage |
get_rep_activity | Rep activity |
get_pickup_heatmap | Pick-up heatmap |
list_cadence_violations | Cadence violations |
get_ad_scorecard | Ad scorecard |
get_kill_scale_list | Kill or scale list |
get_content_scorecard | Content scorecard |
get_posting_cadence | Posting cadence |
get_booking_thread | Booking thread |
get_show_rate_drivers | Show-rate drivers |
list_unrecovered_no_shows | Unrecovered no-shows |
get_outcomes | Outcomes |
list_vault_keys | Keys held |
get_speed_to_lead | Speed to lead |
get_price_book | Price book |
list_price_drift | Price drift |
list_change_log | Change log |
compare_before_after | Before and after |
get_target_plan | Target plan |
get_pace | Pace to target |
get_capacity | Calendar capacity |
get_allocation_suggestions | Lead allocation suggestions |
get_attribution | Attribution |
get_call_analysis | Call analysis |
get_objection_report | Objection report |
get_segment_report | Segment report |
get_statement | Statement |
get_client_economics | Client economics |
get_operator_pnl | Operator P&L |
list_unlinked_recordings | Unlinked recordings |
plan_blueprint | Plan a workspace |
get_plan | A plan |
request_plan_approval | Ask for approval |
apply_plan | Apply a plan |
create_connect_link | Connect link |
get_connect_status | Connect status |
test_vault_key | Test a key |
request_proxy_token | Proxy token for a script |
run_test_lead | Run a test lead |
get_test_run | A test run |
void_call | Void calls |
Reading tools
list_workspaces
Workspaces
The workspaces this token can read, each with its id, name, currency and tier. Call this first with an agency token, to find the workspaceId every other tool takes. A workspace token gets its one workspace.
No arguments.
get_setup_status
Setup status
The eleven setup steps for a workspace, each done, waiting, in progress or not started, with what finishes it and, when it is waiting, on what. Use it to see what is left before a workspace is live. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_metric_definitions
Metric definitions
What PYLO's metrics mean, from the metric registry: the definition, the numerator and the denominator by name, the exclusions and the period rule. Use it before quoting a figure, to say exactly what it counts. Pass metric for one, prefix for a family (rate., cash., calls.), or neither for every declared metric. Never returns a value: get_metric does. Refuses an id the registry has not declared.
| Argument | Type | Required | Description |
|---|---|---|---|
metric | string | no | One registry id, for example rate.show. |
prefix | string | no | Every declared id starting with this, for example rate. |
get_metric
One metric
One metric for a period: the value, the numerator and denominator with their labels and counts, the exclusions and the period rule. A rate is a fraction, never a percentage. A figure PYLO cannot produce comes back as unavailable with the reason, never as zero. Use it to answer a question like "show rate, last 30 days". Refuses an id the registry has not declared. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
metric | string | yes | The registry id, for example rate.show or cash.collected. |
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_call_kpis
Call figures
Every call figure for a period in one answer: booked, live, qualified, closed, no-shows, cancellations, reschedules and disqualifications, with the show rate, the booked to held, booked to cancelled and booked to rescheduled rates beside it, the close rate, the qualified close rate and the disqualification rate, each with both sides. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_booking_outcomes
Cancellations and reschedules
Of the calls booked into a period, how many were cancelled and, counted apart, how many were rescheduled, broken down by funnel, source, setter and closer. Every row carries both sides of both rates, for example 6 of 40 calls cancelled. A reschedule is never counted as a cancellation. A row labelled Not recorded holds the calls with no value for that breakdown, so each breakdown adds up to the workspace total. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_payment_kpis
Payment figures
Cash collected, outstanding, after fees and by kind for a period, plus revenue booked, deals closed and the two averages, each in the workspace's currency. Use list_payments for the rows behind them. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_funnel
Funnel
One funnel's stages for a period, with each stage's count and the conversion to the next, and whether each figure is counted, reported on an end-of-day form, or a gap PYLO cannot see. Refuses a funnel PYLO does not have. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
funnel | string: vsl, dm, free_community, webinar | no | Which funnel. Defaults to vsl. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
list_leads
Leads
Leads created in a period, newest first, with their source, status, owners (the assigned setter and closer) and UTMs. For one lead's whole history use get_lead_journey. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
limit | number | no | How many to return. Defaults to 100, capped at 500. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_lead_journey
Lead journey
Everything PYLO holds about one lead, in time order: how they arrived, every attribution touch, every call and its outcome, every payment with its currency, and every flow run. The tool to call in the thread of a booked call. Refuses without a leadId. A lead in another workspace is not found. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
leadId | string | yes | The lead's PYLO id. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
list_calls
Calls
Calls scheduled in a period, newest first, with outcome, the closer, setter and SDR slots, and whether each was voided or filed as an internal booking. Voided calls are left out unless includeVoided is true. For figures rather than rows use get_call_kpis. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
limit | number | no | How many to return. Defaults to 100, capped at 500. |
includeVoided | boolean | no | Include voided calls, each marked with its reason. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
list_payments
Payments
Payments and instalments paid or due in a period, with status, whether each is the initial payment, and verification. Amounts are as stored, in their currency, never converted. Read only: PYLO has no tool that refunds, pays out or edits a payment. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
limit | number | no | How many to return. Defaults to 100, capped at 500. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_commission
Commission
What each team member is owed for a period, in the workspace's currency, with every line behind it: the call, the slot held, the cash, the rate and the rule that set the rate. Read only: PYLO never pays anybody. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_eod_compliance
End of day compliance
End-of-day reports filed against those expected, per team member and role, for a period. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_webinar
Webinars
Webinar events with registrations, attendance, pitch and booking counts, and the show rate, booking rate and replay conversion rate, each with both sides. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
eventId | string | no | One event, instead of every event in the period. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_integration_health
Integration health
For each provider: whether it is connected, when PYLO last received data from it, what it can and cannot see, and what would fix it. Never returns a credential. Use it before trusting a figure that depends on a provider, or to find what an integration needs. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
list_flow_runs
Flow runs
Runs of the workspace's flows (lead intake, booking, cancellation, outcome, payment, hand-off) in a period, newest first, with status and failures. Says so when flows are not built on this deployment. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
limit | number | no | How many to return. Defaults to 100, capped at 500. |
flow | string | no | One flow, for example lead_intake. |
status | string | no | Only runs in this status, for example failed. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
list_audit_events
Audit log
Audit log entries in a period, newest first: who or which token changed what, before and after. Says so when the audit log is not built on this deployment. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
limit | number | no | How many to return. Defaults to 100, capped at 500. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_data_trust
Data trust
Can this workspace's figures for a period be trusted? Every check (silent inbound streams against their four-week baseline, outcome filing, source coverage, cash reconciliation, connection identity) with its status, its reasons in plain sentences and the evidence behind them, and an overall trust flag: ok, or degraded with the reasons. Quote the reasons beside any figure from a degraded period. Days are UTC days. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
list_reconciliation_items
Reconciliation items
Cash that does not reconcile in a period: collected payments with no deal behind them, and closed deals whose cash has no payment behind it, largest first, each with its currency. Also the open items waiting on the reconciliation screen. Both sides are PYLO's own records; the processors' ledgers are not read. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
limit | number | no | How many to return. Defaults to 100, capped at 500. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_source_coverage
Source coverage
How many leads, bookings and closes in a period have a known source, by entry point (form, CRM, calendar, DM close form, import), with both counts. Use it to find where UTMs are being dropped. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_rep_activity
Rep activity
Per rep per day: dials, connects (by call length, not the dialler's answered flag), pick-up rate, conversations over 3 minutes and talk time, with the EOD's reported dials beside the system's and the activity alerts, callbacks kept (the next call within the workspace's window of the promised time) and the leads that went dead with no connect. Give a teamMemberId for one rep. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
teamMemberId | string | no | One rep's team member id. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_pickup_heatmap
Pick-up heatmap
Dials and pick-up rate by London hour and weekday, and by the number each rep dialled from, with a number flagged as burned when it picks up at under half the rep's average on at least 20 dials. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
list_cadence_violations
Cadence violations
Follow-ups to a lead that had not picked up sooner than the workspace's minimum gap, and leads called more times in a day than its rules allow, with the rules used. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_ad_scorecard
Ad scorecard
Pack 09 3.7. Per ad in a period: spend, impressions, clicks, the leads whose utm_content is the ad's id or name, their booked calls and cash, cash return on spend and cost per booked call, each with its numerator and denominator. Also each hook's share of spend and the majority hook, and fatigue (frequency, and click-through against the ad's first 3 days). Money is per currency and never converted. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_kill_scale_list
Kill or scale list
Pack 09 3.7. Which ads to scale (cash return above 4x) and which to kill (below 1x on meaningful spend, or cost per booked call more than twice the account's, including no bookings after 7 days), each with the reason and the spend a kill would recover. A list only: PYLO never pauses or edits an ad. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_content_scorecard
Content scorecard
Pack 09 3.7. YouTube and Instagram posts in a period: views, outlier score against the channel average (2x or more is an outlier), and the buyers and cash each post converted, with how each buyer was tied to it (UTM, DM keyword, the buyer's own answer, first touch). Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_posting_cadence
Posting cadence
Pack 09 3.7. Posts per channel per complete week against the workspace's commitment, the share of weeks that met it, and an alert for every committed week with nothing published. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_booking_thread
Booking thread
One booking from first booked to its final state: each reschedule (who moved it and why), a cancellation with who cancelled and the reason, the pre-call touches, and the lead time. Give a threadId or any callId on it. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
threadId | string | no | The booking thread's id. |
callId | string | no | Any call on the thread. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_show_rate_drivers
Show-rate drivers
Show rate with and without each driver (a setter confirming, the prospect replying, a group chat, a reminder, a setter booking it, booking within 3 days), counts on both sides, and "too few to compare" below the minimum sample. Also the booked to held, cancel, reschedule and no-show recovery rates. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
list_unrecovered_no_shows
Unrecovered no-shows
No-shows in the period whose lead has not booked again since. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_outcomes
Outcomes
How the calls in a period ended, counted by outcome. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
list_vault_keys
Keys held
The keys PYLO holds for the workspace's key-based tools, as metadata only: the tool, the account behind the key, whether its last test passed, when it was last used, when it expires and when it is due for rotation. Never a key or any part of one. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_speed_to_lead
Speed to lead
Leads that arrived recently and have no call yet, longest wait first, each with minutes waiting and a link to open it in PYLO. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
withinMinutes | number | no | How far back to look, in minutes. Defaults to 120, capped at a week. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_price_book
Price book
Each programme's versions: price, payment plan options, deposit rule, bonuses and the date each took effect, with the close rate while each was in force (both sides). Plus, for the period, the discount rate, pay in full share and price realisation, each with both sides. Says so when offer versions are not switched on. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
list_price_drift
Price drift
Deals in a period whose price drifted: sold at an earlier version's price, or at a price different from the version in force with no reason recorded. Each with the list price, the price agreed and the version. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
list_change_log
Change log
Dated changes in a workspace, newest first: price or offer, team, script, funnel or page, ad or social account restrictions, integration outages, launches and promos. Some PYLO records itself, the rest people and agents add. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
limit | number | no | How many to return. Defaults to 100, capped at 500. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
compare_before_after
Before and after
Key figures in equal windows either side of a moment or a change log entry (14 days each by default): show rate, close rate, average cash per deal, discount rate, pay in full share and price realisation, each with both sides for both windows. A side under the minimum sample (20 by default) comes back as too few to compare, with its counts. It shows what changed alongside the entry, never what the entry caused. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
at | string | no | The moment, YYYY-MM-DD or a timestamp. Or pass changeId. |
changeId | string | no | A change log entry's id, whose date is the moment. |
days | number | no | Days each side. Defaults to 14, capped at 90. |
minSample | number | no | The smallest side worth a rate. Defaults to 20. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_target_plan
Target plan
Works back from a cash target to the closes, held calls, bookings, leads and daily dials it needs, in a best, average and worst case from the last three months' rates. Every input rate comes with its numerator, denominator and month; where the workspace's own data is too thin, the workspace's stated rate is used and the plan says so. Uses the month's cash target, or the monthly cash goal, unless cashTarget is given. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
cashTarget | number | no | A cash figure to plan for, instead of the month's target. |
month | string | no | YYYY-MM. Defaults to this month. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_pace
Pace to target
Actual to date against each target pro-rated for the month so far, with a projected finish and the rate behind it, for the workspace and for each closer and setter against their own target or personal goal. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_capacity
Calendar capacity
How full the closers' calendars are over the next two weeks, from their real Calendly availability, how many weeks remain until they are full at the current booking growth, and whether to consider adding a closer (projected over the threshold, 85% by default, for two weeks). Says what is missing when availability cannot be read. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_allocation_suggestions
Lead allocation suggestions
Closers ranked by cash per booked call and close rate over 90 days, and suggested priority changes under the workspace's rules. Suggestions only: routing stays in the calendar or the CRM. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_attribution
Attribution
Leads and closes by campaign, with the close rate over LEADS, which is not comparable with the close rate over live calls. Covers the workspace's whole history, which the answer says in its notes. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_call_analysis
Call analysis
One call's analysed fields (objections, stated budget, decision-maker, next step, phases and the rest), each with the quote and timestamp it rests on and whether a rep confirmed, edited or rejected it. Cash is never among them. Says so when call analysis is not built on this deployment. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
callId | string | yes | The call. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_objection_report
Objection report
Objections on analysed calls in a period: the share of calls raising each type, by closer, and a topic signal when one reaches 30% of 20 or more calls. Also next steps on no-close calls, median pitch and discovery minutes and the discount rate. Confirmed fields only unless includeUnconfirmed, and then labelled. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
closerId | string | no | One closer's calls. |
funnel | string | no | One lead source, for example vsl_funnel. |
includeUnconfirmed | boolean | no | Count fields no rep has confirmed yet. The answer says how many. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_segment_report
Segment report
Close rate, AOV and cash per booked call by stated budget band, decision-maker present and country, stated budget against what was paid, and each scorer's lead scores against outcomes. Cash from payments only. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | Start of the period, YYYY-MM-DD. Defaults to 30 days ago. |
to | string | no | End of the period, YYYY-MM-DD. Defaults to today. |
funnel | string | no | One lead source, for example vsl_funnel. |
includeUnconfirmed | boolean | no | Count fields no rep has confirmed yet. The answer says how many. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_statement
Statement
A client workspace's statement for one month under its agency's deal terms: every line, the base and rate each is worked on, the amount, its currency, and whether an operator marked it sent or paid. PYLO works amounts out; it never invoices or moves money. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
month | string | no | YYYY-MM. Defaults to this month. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_client_economics
Client economics
What the agency has earned from one client workspace: income per month, lifetime, tenure, trend and any post-launch slide (a month under half of the peak before it). Per currency, never combined. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | First month, YYYY-MM. Defaults to twelve months ago. |
to | string | no | Last month, YYYY-MM. Defaults to this month. |
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
get_operator_pnl
Operator P&L
The agency's income by client and deal shape, less the agency's own costs, per month and currency. Needs an agency token; a workspace token is refused.
| Argument | Type | Required | Description |
|---|---|---|---|
from | string | no | First month, YYYY-MM. Defaults to twelve months ago. |
to | string | no | Last month, YYYY-MM. Defaults to this month. |
list_unlinked_recordings
Unlinked recordings
Recordings from Fathom, Fireflies, Gong or Grain that PYLO could not place on a call, newest first, each with why and the calls that day it could belong to. Refuses a workspace the token was not issued for (refused.cross_workspace).
| Argument | Type | Required | Description |
|---|---|---|---|
workspaceId | string | no | Which workspace. Leave it out with a workspace token, which reads only its own. An agency token names one of the ids list_workspaces returns. Any other id is refused. |
Action tools
These change PYLO, so each needs a token carrying its scope. A plan is shown before anything is applied.
plan_blueprint
Plan a workspace
Plans a new or existing workspace from a template and the client's overrides, or from a whole blueprint, and returns every change (create, update, no-op or blocked with the reason) without doing any of it. Needs config:plan. Only an agency token can plan a new workspace. A workspace or member token acts on its own workspace only.
Changes PYLO. Needs a token with the config:plan scope.
| Argument | Type | Required | Description |
|---|---|---|---|
newWorkspace | boolean | no | True to plan a new workspace. Otherwise pass workspaceId. |
workspaceId | string | no | Which workspace. An agency token names one of its agency's; a workspace or member token acts on its own and may leave it out. |
template | string | no | A template key, from the agency's templates. |
version | number | no | The template version. Defaults to its latest. |
overrides | object | no | The client's intake, merged over the template: workspace, team, rates, SMS bodies and the rest. |
blueprint | object | no | A whole blueprint, instead of a template and overrides. |
get_plan
A plan
A plan's state and every change in it, with each change's result once it is applied. Needs config:plan.
Changes PYLO. Needs a token with the config:plan scope.
| Argument | Type | Required | Description |
|---|---|---|---|
planId | string | yes | The plan's id, from plan_blueprint. |
request_plan_approval
Ask for approval
Sends a plan to the workspace's owners and admins to approve in the app. Use it when this token has no config:apply, or when a person should approve in the app rather than in the conversation. Needs config:plan.
Changes PYLO. Needs a token with the config:plan scope.
| Argument | Type | Required | Description |
|---|---|---|---|
planId | string | yes | The plan's id, from plan_blueprint. |
apply_plan
Apply a plan
Applies a plan a person has approved, with an idempotency key: the same key never applies twice. A plan older than a day, or one whose workspace changed since it was made, is refused: plan again. Needs config:apply. Names any API tokens it issued but never returns their values.
Changes PYLO. Needs a token with the config:apply scope.
| Argument | Type | Required | Description |
|---|---|---|---|
planId | string | yes | The plan's id, from plan_blueprint. |
idempotencyKey | string | yes | 8 to 200 characters, fresh per apply. Reuse it only to retry the same apply. |
create_connect_link
Connect link
Creates one link the client opens to connect their own tools (OAuth or a write-only key field, never through the conversation). Returns the URL once. Needs connect:links. A workspace or member token acts on its own workspace only.
Changes PYLO. Needs a token with the connect:links scope.
| Argument | Type | Required | Description |
|---|---|---|---|
workspaceId | string | no | Which workspace. An agency token names one of its agency's; a workspace or member token acts on its own and may leave it out. |
providers | array | no | Provider keys to connect. Defaults to the plan's or the workspace's missing ones. |
optional | array | no | Providers offered but not required. |
planId | string | no | The plan the link belongs to, if any. |
expiresInDays | number | no | 1 to 30. Defaults to 7. |
get_connect_status
Connect status
Each provider on a connect link: pending, connected, failed or unavailable, with the reason. Connected is read back from the connection itself. Needs connect:links. A workspace or member token acts on its own workspace only.
Changes PYLO. Needs a token with the connect:links scope.
| Argument | Type | Required | Description |
|---|---|---|---|
workspaceId | string | no | Which workspace. An agency token names one of its agency's; a workspace or member token acts on its own and may leave it out. |
linkId | string | yes | The link's id, from create_connect_link. |
test_vault_key
Test a key
One cheap read at the tool with the saved key, on PYLO's server: does it still work, and for which account. Records the result, notices a replaced key or a changed account, and returns what it found. Never the key. Needs config:plan. A workspace or member token acts on its own workspace only.
Changes PYLO. Needs a token with the config:plan scope.
| Argument | Type | Required | Description |
|---|---|---|---|
workspaceId | string | no | Which workspace. An agency token names one of its agency's; a workspace or member token acts on its own and may leave it out. |
provider | string | yes | The key's provider, from list_vault_keys. |
request_proxy_token
Proxy token for a script
A short-lived token (15 minutes by default, 60 at most) an operator's own script uses to read (GET only) from Close or the GoHighLevel private integration through PYLO, which adds the key on its server. For scripts, not for agents: an agent reads through PYLO's tools. Shown once. Needs admin:tokens. A workspace or member token acts on its own workspace only.
Changes PYLO. Needs a token with the admin:tokens scope.
| Argument | Type | Required | Description |
|---|---|---|---|
workspaceId | string | no | Which workspace. An agency token names one of its agency's; a workspace or member token acts on its own and may leave it out. |
provider | string | yes | close or ghl_private. |
ttlMinutes | number | no | Minutes it lasts, 1 to 60. Defaults to 15. |
run_test_lead
Run a test lead
Starts a simulated test lead: PYLO drives its own intake and stops before anything reaches a person. Returns the run and its trace so far. Needs test:run. A live run files a real CRM lead and sends real messages, so it needs a person to confirm it: mode live is refused here, and the operator starts it in the app under Settings, Test lead. A workspace or member token acts on its own workspace only.
Changes PYLO. Needs a token with the test:run scope.
| Argument | Type | Required | Description |
|---|---|---|---|
workspaceId | string | no | Which workspace. An agency token names one of its agency's; a workspace or member token acts on its own and may leave it out. |
mode | string: simulated, live | no | Defaults to simulated. Live is refused through this tool: a person starts it in the app. |
funnel | string: typeform, dms | no | Simulated only. Defaults to typeform. |
email | string | no | Live only: the address the test submission uses. |
waitMinutes | number | no | Live only: how long PYLO waits for the booking. |
get_test_run
A test run
A test lead run's trace, step by step, each passed, failed or skipped with its timing and reason. Leave runId out for the latest. Needs test:run. A workspace or member token acts on its own workspace only.
Changes PYLO. Needs a token with the test:run scope.
| Argument | Type | Required | Description |
|---|---|---|---|
workspaceId | string | no | Which workspace. An agency token names one of its agency's; a workspace or member token acts on its own and may leave it out. |
runId | string | no | The run's id. Defaults to the latest. |
void_call
Void calls
Voids calls that should not count (a test, a duplicate, spam), with a reason. Refused for a call with money collected or commission paid on it. A voided call can be restored in the app. Needs config:apply. A workspace or member token acts on its own workspace only.
Changes PYLO. Needs a token with the config:apply scope.
| Argument | Type | Required | Description |
|---|---|---|---|
workspaceId | string | no | Which workspace. An agency token names one of its agency's; a workspace or member token acts on its own and may leave it out. |
callIds | array | yes | The calls, by id, from list_calls. |
reason | string: test, duplicate, spam, other | yes | Why. |
note | string | no | Required when the reason is other. |
A member's own tools
pylo_my_board
Your own board: your figures for this month, the same ones PYLO shows you on My Board. Use it for questions about your own calls, closes and cash. It refuses anything about other members or the workspace as a whole.
No arguments.