Skip to content

Glossary

Agency

An agency is the primary organisational unit on the Fixify platform. All jobs, properties, agents, and webhook configurations belong to an agency. Each agency has exactly one webhook configuration (stored at agencies/{agencyId}/webhookConfig/default).

Agent

A user who belongs to an agency. Agents have one of three roles: owner, admin, or agent. Webhook configuration is restricted to owner and admin roles.

Entity

A business object in the Fixify domain — a job, a property, a quote, etc. Events always reference the entity they affected.

Entity ID

entityId is the Firestore document ID of the affected entity. It is a string such as "uaPI3BmnLgz4sClS7wK3". Use it with the REST API to fetch the full entity:

GET /v1/agency/jobs/{entityId}
GET /v1/agency/properties/{entityId}

entityId is null for events that are not tied to a single document (rare).

Entity Type

entityType tells you which domain object entityId refers to. Valid values:

Value Description
job A maintenance job
quote A quote submitted by a service provider
invoice An invoice submitted by a service provider
approval A quote/invoice approval request sent to a landlord/trustee
property A residential or commercial property
estate A complex or estate (groups of properties)
agent An agency user
agency An agency organisation
service_provider A contractor or service company
thread A messaging thread on a job
message A single message within a thread
user A platform user (residential/landlord context)
communications An outbound communication (email, WhatsApp, push)

Parent Entity ID

parentEntityId links a child entity to its parent when that context matters. For example, a quote_approved event has entityType: "quote" and parentEntityId set to the job ID. A message_sent event sets parentEntityId to the thread ID.

Event Type

A string describing what happened, always in the form {entity}_{action} or {entity}_{sub-entity}_{action}. See the full list in Event Types.

Signing Secret

A 256-bit hex string used to compute the HMAC-SHA256 signature on every webhook delivery. Generated server-side at config creation time. Only shown in full on creation and after rotation — stored masked (fixify_whsec_••••••••XXXX) thereafter. See Signature Verification.

Webhook ID (webhookId)

A string in the format whdel_{deliveryDocId}. Unique per delivery attempt. Use it as an idempotency key to detect duplicate deliveries.

Delivery

A single tracked attempt to POST a webhook payload to your endpoint. Each delivery has a status (pending, success, failed), an attempt counter, and timing fields. Failed deliveries can be replayed.

Fulfilment

A fulfilment is the record of a specific service provider being assigned to a job. A job can have multiple active fulfilments. Many job_fulfilment_* events reference a fulfilmentId in their payload.

Epoch Milliseconds

All timestamps on the platform are Unix timestamps multiplied by 1000 (milliseconds, not seconds). Convert with:

new Date(1718000000000) // → Date object
Math.floor(Date.now())  // → current time in ms