Using Webhooks to consume data

Record360 can push notifications to your system triggered by events in ours. Subscribing to a webhook allows your system to take advantage of event-based architecture, which is typically much easier and cheaper than frequent poll processes to get data. You don't need to constantly check out system for updates; sit back, relax, and wait for the data to come to you!

Webhook Events

Currently, we support webhooks for:

  • Inspections: Record360 sends you an event notification for every inspection created.
  • Tasks: Record360 sends an event notification for every task completed.

All event notifications are sent via RESTful HTTPS POST requests.

Setting up a webhook

Currently, webhooks are configured by Record360 support, using the API details you provide. Soon, you will be able to create and manage webhooks via the Dashboard!

To get started:

  1. Determine which resources you want to consume
    1. Inspections (transaction in v1)
    2. Tasks
  2. Setup or build an API endpoint to consume webhooks using the considerations below. Contact our team with any questions.
  3. Send your webhook details to Record360 for configuration.

Requirements

  • Required: Stand up an API endpoint that can receive and accept HTTPS POST requests with content-type application/json.
  • Optional: Authentication. We can add custom headers to support most authentication schemes, including:
    • Basic auth
    • Bearer tokens
    • JWTs
    • API keys
  • Optional: Adding additional custom headers, like a key id.

Considerations

  • Webhooks subscribe to the same backwards compatibility and versioning policies as the Integration API. You should gracefully handle different inspection results or task, i.e., different checklist fields, additional fields, etc, and implement any business logic and logging in your system as needed.
  • Ensure SSL certificate is valid.
  • Inspection volumes can be high. If needed, enforce a rate limit and return a correct 429 response.

V1 Documentation

🚧

New version coming soon

Currently, webhooks are only available in our previous, "v1" format. This is the v1, legacy format. It works great! However, it's not as clear and lacks some of the cool new features found in the Integration API. We are working hard to bring the new, v3 format to webhooks soon as well as self-service support from our Dashboard Integration Center.

Don't worry; all V1 features will be maintained for customers and those who wish to use them for the foreseeable future.

The request body contains two key pieces of information:

  • The event type, event
    • String enum, e.g., create
  • The object pertaining to the event, e.g., transaction (inspection)

For those consuming webhooks for multiple resources, ensure your system can identify the resource object i question as well as the type of event.

Transaction (Inspection)

  • Events:
    • create β€” denotes that a new inspection was performed, uploaded, and created in the system.
  • Object:
    • transaction β€” the inspection details
{
    "event": "create",
    "transaction": {
        "id": "40849",
        "check_in": true,
        "draft": false,
        "damage": false,
        "geo_coord": [
            -122.406417,
            37.785834
        ],
        "email_sent_to": [],
        "created_at": "2024-01-16T10:00:13.716Z",
        "workflow_modules": [
            "LB1",
            "LB2",
            "F3",
            "PF1",
            "RC2",
            "M1",
            "N1",
            "E1",
            "C1"
        ],
        "archive_status": "active",
        "workflow_id": "6146",
        "group_id": "17735",
        "view_url": "https://dashboard-s.record360.com/dashboard/inspections/40849",
        "notations": {
            "Simple": {
                "Textbox Simple Their Location": "[email protected]"
            }
        },
        "asset": {
            "id": "63019",
            "external_id": "AUTO_AD_IOS_0GzoAmiJwp"
        },
        "user": {
            "id": "5695",
            "username": "[email protected]",
            "first_name": "auto",
            "last_name": "st12-b"
        },
        "location": {
            "id": "1000001264",
            "name": "Mobile auto permission location"
        },
        "photos": [],
        "videos": [],
        "signatures": [],
        "ident_docs": [],
        "forms": [
            {
                "id": "21459",
                "transaction_id": "40849",
                "form_template": {
                    "id": "706"
                },
                "created_at": "2024-01-16T10:00:13.723Z",
                "values": {
                    "Dropdown-Multi": [],
                    "CheckBox-CheckA": false,
                    "CheckBox-CheckB": false
                }
            }
        ],
        "files": []
    }
}

Task

  • Events:
    • completed β€” denotes that a new inspection was performed, uploaded, and created in the system.
  • Object:
    • task β€” the task details