Skip to content
RTI

Integrations

Webhooks, signed and sent as inspections move

Ready To Inspect sends a signed webhook to your own HTTPS endpoint when an inspection is submitted, approved or sent back, or a client signs off, so your systems hear about it without anyone watching RTI.

  • Signed with HMAC-SHA256
  • Four events, plus a test
  • Queued, retried, replayable
readytoinspect.io
The RTI activity log for Riverside Commons, listing inspections submitted, approved and rejected, each with its hash and the hash before it
The events behind the webhooks: inspections submitted, approved and sent back, as the activity log records them.

Made for teams that connect RTI to their own tools

Who it's for
  • Developers who feed inspection events into an internal system or a data warehouse
  • Operations leads who start a follow-up in their own tools when work is approved or sent back
  • Owner's reps whose own trackers should know when a client signs off
Why it matters
  • Your systems hear about a review when it is decided, not when someone exports a report.
  • Every request is signed with a secret only your endpoint and RTI hold, so your endpoint can refuse anything RTI did not send.
  • A delivery that fails is retried and logged, admins are told when one runs out of retries, and an admin can replay it.
The challenge

What goes wrong when news of a review is passed along by hand

  • Status by export

    Someone exports a report and pastes it into the next system, a day after the review.

  • Unverified calls

    An endpoint that takes any request cannot tell a real event from a forged one.

  • Lost messages

    A message sent once to a server that was down is gone, and nobody knows it is missing.

With the integration

  1. Inspection events, sent as they happen
  2. Every request signed and checkable
  3. Failures retried, logged and replayable

When an inspection is submitted, approved or sent back, or a client signs it off, RTI posts the event as JSON to each active endpoint subscribed to it, signed with that endpoint's own secret.

How it works

From the review board to your endpoint

  1. Add an endpoint

    Stays in RTI
    Who acts
    A workspace admin
    In RTI
    Adds an HTTPS address in Integrations, then Webhooks, and picks the events it gets. Private, loopback and internal addresses are refused.
    What RTI sends or reads
    Nothing is sent yet. RTI makes a signing secret for the endpoint, shows it once and stores it encrypted.
    Trigger
    Add endpoint
  2. Send a test

    Sends to your endpoint
    Who acts
    A workspace admin
    In RTI
    Clicks Send test on the endpoint.
    What RTI sends or reads
    RTI posts a test.ping event, signed like any other, and shows the HTTP result straight away.
    Trigger
    Send test
  3. An inspection moves

    Sends to your endpoint
    Who acts
    Inspectors, QA/QC managers and clients
    In RTI
    An inspection is submitted, approved or sent back, or a client signs off an approved inspection in the client portal.
    What RTI sends or reads
    RTI posts the event to each endpoint subscribed to it: the tag, project, status, inspector, reviewer notes and dates, signed in the X-RTI-Signature header.
    Trigger
    Submit, approve, send back or sign off
  4. Retry until it lands

    Sends to your endpoint
    Who acts
    RTI
    In RTI
    Queues each delivery before sending it. Recent deliveries shows what was delivered, what is waiting and what failed.
    What RTI sends or reads
    A delivery that gets anything but a 2xx within 10 seconds is tried up to five times in all, at least 1, 5, 30 and then 120 minutes apart. A 429 waits for your Retry-After; a 410 stops that delivery.
    Trigger
    A delivery that does not go through
  5. Replay a failure

    Sends to your endpoint
    Who acts
    A workspace admin
    In RTI
    Sees the failed delivery in Recent deliveries. Admins and QA/QC managers also get a notice when a delivery runs out of retries.
    What RTI sends or reads
    Replay sends the same event again, at once, with the same delivery ID.
    Trigger
    Replay
Walk through each screen

The event RTI sends

The event RTI sends: each field, with an example value.
FieldExample value
X-RTI-Eventsubmission.approved
X-RTI-Signaturet=1789410552,v1=4be1c9…a07e
X-RTI-DeliverySame on every retryc41d7e0a-…
eventsubmission.approved
sent_at2026-09-14T18:29:12.408Z
submission.id8f2a…
submission.statusapproved
submission.projectRiverside Commons
submission.project_id2b71…
submission.equipment_tagRIV-A-F3-210
submission.equipment_typeUnit
submission.inspectorSam Cortez
submission.reviewer_notesNo open defects
submission.created_at2026-09-12T15:02:44.123456+00:00
submission.submitted_at2026-09-12T16:10:03.881204+00:00
submission.reviewed_at2026-09-14T18:29:11.517093+00:00
A submission.approved delivery, headers first, with illustrative values from the demo workspace.
Use cases

Three moments it handles

  • Use case 1

    Approvals into your own system

    When a reviewer approves an inspection, your endpoint gets submission.approved with the tag, the project and the review date, and can update your own records.

  • Use case 2

    Rework where you work

    When an inspection is sent back, your endpoint gets submission.rejected with the reviewer's notes, so your own tools can open the follow-up.

  • Use case 3

    Client sign-off on your side

    When a client signs off an approved inspection in the client portal, your endpoint gets signoff.signed, so your tracker can mark it signed off.

Set it up

Setting up the connection

  1. Add the endpoint

    A workspace admin opens Integrations, then Webhooks, adds your HTTPS address and picks the events to send.

  2. Copy the signing secret

    RTI shows the secret once. Keep it with your endpoint's configuration; RTI stores it encrypted and shows only a hint after that.

  3. Check every signature

    Your endpoint computes a hex-encoded HMAC-SHA256 of the timestamp, a dot and the raw body, keyed with the full whsec_ secret, and compares it with v1 in X-RTI-Signature.

  4. Answer fast with a 2xx

    Answer within 10 seconds and do slow work after you reply. Anything other than a 2xx is tried again.

  5. Send a test

    Use Send test to post a test.ping event and see the HTTP result in RTI.

  6. Rotate the secret when you need to

    Rotate secret makes a new one at once and the old one stops working, so update your endpoint at the same time.

What it doesn't do

  • It only sends. Nothing your endpoint answers changes the RTI record.
  • It does not send photos, signatures or files. An event carries the tag, project, status, inspector, reviewer notes and dates.
  • It accepts only an HTTPS address on a public host. An address that is not HTTPS, or names a private, loopback or internal host, is refused when you add it and checked again before every send.
  • It does not hold events for a paused endpoint. Events that happen while an endpoint is paused are never sent to it.
  • It does not promise order or a single delivery. A retry can arrive after a newer event, or twice, so use X-RTI-Delivery to skip a repeat.
  • Only a workspace admin can add, change, test or remove an endpoint, or see and replay its deliveries.

Questions about RTI webhooks

6 answers

Which events does RTI send to a webhook?
Four: submission.submitted when an inspection is handed in for review, submission.approved and submission.rejected when a reviewer approves it or sends it back, and signoff.signed when a client signs off an approved inspection in the client portal. Each endpoint picks the events it gets, and Send test posts a fifth, test.ping.
How do I check that a webhook came from RTI?
Every request carries X-RTI-Signature in the form t=<unix time>,v1=<signature>. Compute a hex-encoded HMAC-SHA256 of the timestamp, a dot and the raw request body, keyed with your endpoint's full whsec_ signing secret, and compare it with v1 in constant time. Refuse the request if they differ, and consider refusing an old timestamp too.
What happens when my endpoint is down?
RTI queues every delivery before it sends it. A delivery that gets anything other than a 2xx within 10 seconds is tried up to five times in all, at least 1, 5, 30 and then 120 minutes apart. A 429 is retried after your Retry-After, and a 410 stops that delivery. When a delivery runs out of retries, admins and QA/QC managers are notified, and an admin can replay it from Recent deliveries.
What is in a webhook payload?
JSON with the event name, the time it was sent and the inspection: its ID, status, project, tag, equipment type, inspector, reviewer notes, and when it was created, submitted and reviewed. Photos, signatures and files are not sent. They stay in RTI with the tamper-evident record.
Can the same event arrive twice?
It can. If your endpoint did the work but answered late or with an error, RTI tries again. Each delivery carries an X-RTI-Delivery ID that stays the same on every retry and replay, so keep the IDs you have handled and skip a repeat. A test.ping, sent straight away rather than queued, carries no X-RTI-Delivery.
Who can manage webhooks in RTI?
Workspace admins. Only an admin can add an endpoint, choose its events, pause it, rotate its secret, send a test, remove it, or see and replay its deliveries.

Resources and contact

See it on a real job.

Tag one area, run one walk, and see the record it leaves behind.

30-day trial · No card required