Skip to main content
TroopyDocs
Open Troopy
Troopy

API reference / Analytics

Create an alert

Emails the caller when a visitor completes a goal, a payment arrives or a free trial starts. The email says who did it and how they came. A site has 25 alerts at most, and each alert sends 60 emails an hour at most.

post/api/v1/analytics/alerts

Authorization

HeaderAuthorization: Bearer <API key>
Or the headerX-API-Key: <API key>
API keyMake one in Troopy under Settings > API keys. It acts as you, in its workspace.

Other ways to call it

CLItroopy analytics alerts create
MCP toolNone. Call it over REST or with the CLI.
Rate limit30 calls in 60 seconds, for each key
RetriesSend an Idempotency-Key header. A retry with the same key gets the first answer back, and the operation runs one time.

Body

application/json
name*string

At least 1 characters · At most 100 characters

trigger*object

A goal by name, any payment, or the start of a free trial

2 properties
type*"goal"
goal*string

Lowercase letters, digits, _ - and :

subjectstring | null

The subject of the email. Without it, the email has a plain subject

messagestring | null

The first line of the email. The details of the visitor follow it

enabledboolean

Response

201 · application/json
data*object
11 properties
id*string

A 24-character id

name*string
trigger*object
2 properties
type*enum<string>

goalpaymentfree_trial

goal*string | null
subject*string | null
message*string | null
enabled*boolean
to*string

Who it emails: the person who made it (a user id)

count*integer

Times it fired

lastAt*string | null
lastError*string | null
createdAt*string

ISO 8601 date and time

Errors

400 invalid_inputFix the field named in detail. Each operation's schema is in /api/v1/openapi.json.
401 unauthorizedSend an API key as `Authorization: Bearer tr_live_...`. Create one in Troopy under Settings.
403 forbiddenThe key lacks a scope this operation needs, or its owner lacks the role. detail says which; create a key with the scope, or ask an organization owner or admin.
409 conflictThis Idempotency-Key was used for a different request, or that request is still running. Use a new key for a new request.
429 rate_limitedWait the number of seconds in Retry-After, then retry.