DevelopersAPI referenceService reports

Service report settings API

REST endpoints for service report settings in ServFlo: 2 operations with parameters, request and response fields, permissions and curl examples.

Base URL: https://app.servflo.ai/api. Every call needs Authorization: Bearer sfk_… (Authentication); {organizationId} ($ORGANIZATION_ID in the examples) is your business's id.

OperationEndpointRisk
Service report release rulesGET /organizations/{organizationId}/service-report-release-rulesread
Set a service report release rulePATCH /organizations/{organizationId}/service-report-release-rulessensitive

Service report release rules

GET /organizations/{organizationId}/service-report-release-rules

When published reports open for the client: the business's default and each service type's own rule (IMMEDIATE, ON_PAID, ON_AGREEMENT, ON_PAID_AND_AGREEMENT; a manual review; what agents see). Read-only.

PermissionserviceReports.read (Owner, Admin, Dispatcher, Technician, Member)
Riskread, OAuth scope servflo.read. Read: reads only.
MCP toolserviceReportSettings_releaseRules (toolset serviceReports)

Example

curl "https://app.servflo.ai/api/organizations/$ORGANIZATION_ID/service-report-release-rules" \
  -H "Authorization: Bearer $SERVFLO_API_KEY"

Response

200: the answer's fields
FieldTypeDescription
defaultobjectFor service types without their own rule.
default.modeenumOne of IMMEDIATE, ON_PAID, ON_AGREEMENT, ON_PAID_AND_AGREEMENT.
default.requireManualReviewboolean
default.agentViewenumOne of FULL, SUMMARY, NONE.
defaultIsSetbooleanFalse: the trade's default (inspections: paid and signed; others: immediate).
byServiceTypearray of object
byServiceType[].serviceTypeIdstring
byServiceType[].modeenumOne of IMMEDIATE, ON_PAID, ON_AGREEMENT, ON_PAID_AND_AGREEMENT.
byServiceType[].requireManualReviewboolean
byServiceType[].agentViewenumOne of FULL, SUMMARY, NONE.

Set a service report release rule

PATCH /organizations/{organizationId}/service-report-release-rules

EXPOSES TO CUSTOMERS when loosened: sets the default (no serviceTypeId) or one service type's rule; reset: true removes a service type's own rule. Published, still-locked reports are re-checked and may open now (their clients are then sent the link). Returns the rules.

PermissionserviceReports.manage (Owner, Admin)
Risksensitive, OAuth scope servflo.sensitive. Sensitive: moves money, deletes, sends or shows something to a customer, or grants or revokes access.
MCP toolserviceReportSettings_setReleaseRule (toolset serviceReports)
ApprovalOver MCP, this tool asks for your OK first (in the AI app when it supports it, otherwise in ServFlo). See Approvals.

Request body

FieldTypeRequiredDescription
serviceTypeIdstring or nullNo
resetbooleanNo
modeenumNoOne of IMMEDIATE, ON_PAID, ON_AGREEMENT, ON_PAID_AND_AGREEMENT.
requireManualReviewbooleanNoWait for staff to unlock each report.
agentViewenumNoOne of FULL, SUMMARY, NONE.

Example

curl -X PATCH "https://app.servflo.ai/api/organizations/$ORGANIZATION_ID/service-report-release-rules" \
  -H "Authorization: Bearer $SERVFLO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"serviceTypeId":"serviceType_id","reset":true,"mode":"IMMEDIATE"}'

Response

200: the answer's fields
FieldTypeDescription
defaultobjectFor service types without their own rule.
default.modeenumOne of IMMEDIATE, ON_PAID, ON_AGREEMENT, ON_PAID_AND_AGREEMENT.
default.requireManualReviewboolean
default.agentViewenumOne of FULL, SUMMARY, NONE.
defaultIsSetbooleanFalse: the trade's default (inspections: paid and signed; others: immediate).
byServiceTypearray of object
byServiceType[].serviceTypeIdstring
byServiceType[].modeenumOne of IMMEDIATE, ON_PAID, ON_AGREEMENT, ON_PAID_AND_AGREEMENT.
byServiceType[].requireManualReviewboolean
byServiceType[].agentViewenumOne of FULL, SUMMARY, NONE.

On this page