Commercial analytics
Sales over the period (the Reports page "Sales" tab). Signatures and signed revenue are dated by confirmed_at; opportunities, losses and the conversion rate by the event's creation (creation cohort). Conversion rate = confirmed / closed options (confirmed + lost + cancelled). The pipeline is the open options now, whatever the period, valued from their latest quote or expected revenue and weighted by their win probability.
Changed in 1.3.0: the legacy top-level fields are kept but use these definitions: total_events_created = opportunities created in the period, total_confirmed = those confirmed, conversion_rate = the conversion rate above (rounded, 0 when no option is closed), total_revenue_excl_tax = revenue signed in the period, total_expected_revenue = value of the open pipeline. Amounts are in the workspace currency (per-currency breakdowns were removed). Role permission: reports.view.
Request
- Base URL: https://joinways.app/api/v1
- URL: https://joinways.app/api/v1/analytics/commercial
- Auth: one of:
- HTTP bearer
- OAuth 2 (authorization code, authorization URL https://joinways.app/oauth/authorize, token URL https://joinways.app/api/oauth/token, scopes: mcp.read)
Query parameters
First day included (YYYY-MM-DD, workspace time zone). Give together with to; without both, the period is the last 6 full months plus the current month (as on the Reports page). A full ISO timestamp is accepted and only its date is kept. Periods longer than 7 years are shortened to the 7 years ending on to; the effective period is echoed in period.
Last day included (YYYY-MM-DD). Give together with from.
Comma-separated venue ids (GET /venues) to restrict the report to. Omit for all venues. An id that is not a venue of the workspace is refused with 400.
Comparison period: year (default) = the same days one year earlier; previous = the period of the same length just before; none = no comparison (every previous value is null).
Response
Sales metrics for the period.
Example response
{
"period": {
"timezone": "Europe/Paris"
},
"monthly": [
{
"month": "2026-07"
}
],
"by_source": [
{
"source_key": "kactus",
"label": "Kactus"
}
]
}Changes
No recorded changes to this operation across all 1 revision of this API.