analytics

Embed
Preview of the card
<a href="https://hermetica.15.204.158.166.sslip.io/docs/ref-analytics"><img src="https://hermetica.15.204.158.166.sslip.io/docs/_api/public/orgs/5fcd8b3c-a27c-4688-972f-de710125592f/spaces/caf5dc05-15f7-4e0c-bdb8-ab29ede6211e/pages/83d044a8-2e41-46eb-a741-5043d696d3f3/social-card.svg?v=3e7ae33eec8b" alt="analytics" width="600" height="315"></a>
GEThttps://hermetica.15.204.158.166.sslip.io/v1/analytics/messages

Parameters

fromstringqueryrequired
tostringqueryrequired
groupBystringquery
day | channel | source | variant = day
sourceKindstringquery
sourceIdstringquery
channelstringquery
email | sms | whatsapp | push | postcard
includeMachineOpensstringquery
true | false

Code samples

cURL
curl -X GET "https://hermetica.15.204.158.166.sslip.io/v1/analytics/messages?from=<from>&to=<to>" \
  -H "Authorization: Bearer $SSLIP_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "groupBy": "string",
  "series": [
    {
      "key": "string",
      "counts": {}
    }
  ],
  "totals": {},
  "availability": {}
}
Schema
groupBystringrequired
seriesobject[]required
Show child parameters
keystringrequired
countsobjectrequired
totalsobjectrequired
availabilityobjectrequired
4XX Default Response
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {}
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
detailsobject
5XX Default Response

Same as 4XX · GET /v1/analytics/messages

GEThttps://hermetica.15.204.158.166.sslip.io/v1/analytics/sources/{kind}/{id}/summary

Parameters

includeMachineOpensstringquery
true | false
kindstringpathrequired
campaign | workflow | sequence | api | in_app
idstringpathrequired

Code samples

cURL
curl -X GET "https://hermetica.15.204.158.166.sslip.io/v1/analytics/sources/{kind}/{id}/summary" \
  -H "Authorization: Bearer $SSLIP_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "totals": {},
  "availability": {}
}
Schema
totalsobjectrequired
availabilityobjectrequired
4XX Default Response

Same as 4XX · GET /v1/analytics/messages

5XX Default Response

Same as 4XX · GET /v1/analytics/messages

GEThttps://hermetica.15.204.158.166.sslip.io/v1/analytics/predictions/status

Whether the workspace has enough order history for predictive analytics, and how many profiles are scored

Code samples

cURL
curl -X GET "https://hermetica.15.204.158.166.sslip.io/v1/analytics/predictions/status" \
  -H "Authorization: Bearer $SSLIP_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "model": "string",
  "orderEvent": "string",
  "eligible": true,
  "reason": "string",
  "repeatCustomers": 0,
  "spanDays": 0,
  "minRepeatCustomers": 0,
  "minSpanDays": 0,
  "predictedProfiles": 0,
  "lastComputedAt": "2024-01-01T00:00:00Z",
  "sufficiency": "none",
  "fit": {
    "version": "string",
    "fittedAt": "2024-01-01T00:00:00Z",
    "customers": 0,
    "repeatBuyers": 0,
    "priorUsed": "string",
    "priorWeight": 0,
    "networkCohort": "string",
    "params": {
      "r": 0,
      "alpha": 0,
      "a": 0,
      "b": 0
    },
    "spendParams": {
      "p": 0,
      "q": 0,
      "v": 0
    },
    "holdout": {
      "holdoutWeeks": 0,
      "customers": 0,
      "mae": 0,
      "baselineMae": 0,
      "customerMae": 0,
      "baselineCustomerMae": 0,
      "priorMae": 0,
      "totalPredicted": 0,
      "totalActual": 0,
      "beatsBaseline": true,
      "calibration": [
        {
          "bucket": "string",
          "customers": 0,
          "predicted": 0,
          "actual": 0,
          "baseline": 0
        }
      ]
    }
  },
  "lastAttempt": {
    "fittedAt": "2024-01-01T00:00:00Z",
    "promoted": true,
    "note": "string"
  }
}
Schema
modelstringrequired
orderEventstringrequired
eligiblebooleanrequired
reasonstringrequired
repeatCustomersintegerrequired
spanDaysnumberrequired
minRepeatCustomersintegerrequired
minSpanDaysintegerrequired
predictedProfilesintegerrequired
lastComputedAtstringrequired
sufficiencystringrequired
none | prior_only | fitted
fitobjectrequired
Show child parameters
versionstringrequired
fittedAtstringrequired
customersintegerrequired
repeatBuyersintegerrequired
priorUsedstringrequired
priorWeightnumberrequired
networkCohortstringrequired
paramsobjectrequired
Show child parameters
rnumberrequired
alphanumberrequired
anumberrequired
bnumberrequired
spendParamsobjectrequired
Show child parameters
pnumberrequired
qnumberrequired
vnumberrequired
holdoutobjectrequired
Show child parameters
holdoutWeeksnumberrequired
customersintegerrequired
maenumberrequired
baselineMaenumberrequired
customerMaenumberrequired
baselineCustomerMaenumberrequired
priorMaenumberrequired
totalPredictednumberrequired
totalActualnumberrequired
beatsBaselinebooleanrequired
calibrationobject[]required
lastAttemptobjectrequired
Show child parameters
fittedAtstringrequired
promotedbooleanrequired
notestringrequired
4XX Default Response

Same as 4XX · GET /v1/analytics/messages

5XX Default Response

Same as 4XX · GET /v1/analytics/messages

POSThttps://hermetica.15.204.158.166.sslip.io/v1/analytics/predictions/run

Refit the BG/NBD + Gamma-Gamma model (kept only if it beats the naive baseline on a holdout) and rescore every customer now; scores also refresh nightly

Code samples

cURL
curl -X POST "https://hermetica.15.204.158.166.sslip.io/v1/analytics/predictions/run" \
  -H "Authorization: Bearer $SSLIP_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "ran": true,
  "profiles": 0,
  "reason": "string"
}
Schema
ranbooleanrequired
profilesintegerrequired
reasonstringrequired
4XX Default Response

Same as 4XX · GET /v1/analytics/messages

5XX Default Response

Same as 4XX · GET /v1/analytics/messages

GEThttps://hermetica.15.204.158.166.sslip.io/v1/profiles/{id}/prediction

Parameters

idstringpathrequired

Code samples

cURL
curl -X GET "https://hermetica.15.204.158.166.sslip.io/v1/profiles/{id}/prediction" \
  -H "Authorization: Bearer $SSLIP_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "profileId": "string",
  "model": "string",
  "orderCount": 0,
  "avgOrderMinor": 0,
  "avgIntervalDays": 0,
  "historicClvMinor": 0,
  "predictedClvMinor": 0,
  "expectedNextOrderAt": "2024-01-01T00:00:00Z",
  "churnRisk": 0,
  "why": "string",
  "computedAt": "2024-01-01T00:00:00Z",
  "pAlive": 0,
  "expectedOrders": 0
}
Schema
profileIdstringrequired
modelstringrequired
orderCountintegerrequired
avgOrderMinornumberrequired
avgIntervalDaysnumberrequired
historicClvMinornumberrequired
predictedClvMinornumberrequired
expectedNextOrderAtstringrequired
churnRisknumberrequired
whystringrequired
computedAtstringrequired
pAlivenumber
expectedOrdersnumber
4XX Default Response

Same as 4XX · GET /v1/analytics/messages

5XX Default Response

Same as 4XX · GET /v1/analytics/messages

GEThttps://hermetica.15.204.158.166.sslip.io/v1/profiles/{id}/predicted-gender

Gender inferred from the first name (likely_female, likely_male or uncertain); an inference, not a stored fact

Parameters

idstringpathrequired

Code samples

cURL
curl -X GET "https://hermetica.15.204.158.166.sslip.io/v1/profiles/{id}/predicted-gender" \
  -H "Authorization: Bearer $SSLIP_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "gender": "likely_female",
  "confidence": 0,
  "computedAt": "2024-01-01T00:00:00Z"
}
Schema
genderstringrequired
likely_female | likely_male | uncertain
confidencenumberrequired
computedAtstringrequired
4XX Default Response

Same as 4XX · GET /v1/analytics/messages

5XX Default Response

Same as 4XX · GET /v1/analytics/messages

GEThttps://hermetica.15.204.158.166.sslip.io/v1/profiles/{id}/recommendations

Recommended products for this profile (item-to-item co-purchase, recency-weighted; popular items when there is no history)

Parameters

idstringpathrequired

Code samples

cURL
curl -X GET "https://hermetica.15.204.158.166.sslip.io/v1/profiles/{id}/recommendations" \
  -H "Authorization: Bearer $SSLIP_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "profileId": "string",
  "computedAt": "2024-01-01T00:00:00Z",
  "items": [
    {
      "productId": "string",
      "title": "string",
      "score": 0,
      "rank": 0,
      "basis": "co_purchase"
    }
  ]
}
Schema
profileIdstringrequired
computedAtstringrequired
itemsobject[]required
Show child parameters
productIdstringrequired
titlestringrequired
scorenumberrequired
rankintegerrequired
basisstringrequired
co_purchase | popular
4XX Default Response

Same as 4XX · GET /v1/analytics/messages

5XX Default Response

Same as 4XX · GET /v1/analytics/messages

POSThttps://hermetica.15.204.158.166.sslip.io/v1/analytics/funnels

Ordered event funnel: profiles reaching each step within a window of step 1

Request body

application/json
stepsstring[]required
fromstringrequired
tostringrequired
windowDaysinteger
= 30
{
  "steps": [
    "string"
  ],
  "from": "string",
  "to": "string",
  "windowDays": 30
}

Code samples

cURL
curl -X POST "https://hermetica.15.204.158.166.sslip.io/v1/analytics/funnels" \
  -H "Authorization: Bearer $SSLIP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"steps":["string"],"from":"string","to":"string","windowDays":30}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "steps": [
    {
      "name": "string",
      "profiles": 0,
      "conversionFromPrevious": 0,
      "conversionFromFirst": 0
    }
  ]
}
Schema
stepsobject[]required
Show child parameters
namestringrequired
profilesintegerrequired
conversionFromPreviousnumberrequired
conversionFromFirstnumberrequired
4XX Default Response

Same as 4XX · GET /v1/analytics/messages

5XX Default Response

Same as 4XX · GET /v1/analytics/messages

Updated