Formcrafts - a form and survey platform for Salesforce, HubSpot, etc
  1. Templates
    1. All templates illustration
      All templates
    2. Application forms illustration
      Application forms
    3. Calculation forms illustration
      Calculation forms
    4. Lead generation forms illustration
      Lead generation forms
    5. Customer service illustration
      Customer service
    6. Evaluation forms illustration
      Evaluation forms
    7. Survey and feedback illustration
      Survey and feedback
    8. Operations forms illustration
      Operations forms
    9. Payment forms illustration
      Payment forms
    10. Booking and registration illustration
      Booking and registration
    11. Salesforce forms illustration
      Salesforce forms
    12. Other forms illustration
      Other forms
  2. Features
    1. 18 Form Fields illustration
      18 Form Fields
    2. 19 Integrations illustration
      19 Integrations
    3. Conditional Logic illustration
      Conditional Logic
    4. Multi-step Forms illustration
      Multi-step Forms
    5. Calculations illustration
      Calculations
    6. Partial Submissions illustration
      Partial Submissions
    7. Save & Resume illustration
      Save & Resume
    8. Payments illustration
      Payments
    9. Hidden Fields illustration
      Hidden Fields
    10. Dynamic Dropdowns illustration
      Dynamic Dropdowns
    11. Engagement analysis illustration
      Engagement analysis
    12. Multilingual forms illustration
      Multilingual forms
  3. Pricing
  4. Help
  5. Login
  6. Signup
    →
  • Help index
  • Features
    • Conditional logic
    • Prefill forms
    • Multi-step forms
    • Calculations
    • Partial submissions
    • Field references
    • Save and resume
    • Hidden fields
    • Dynamic lookup
    • Workflows
    • Dynamic dropdowns
    • Multilingual forms
    • Privacy mode
    • Success message
    • Form redirect
    • GA/GTM
    • Accept payments
    • Linked forms
    • Disable form
  • Styling
    • Custom CSS
    • Custom fonts
    • Color scheme
    • Form background
  • Analytics
    • Test mode
    • Overview
    • Field analytics
    • Form engagement
  • Workflows
    • Send emails
    • Form redirect
    • Success message
    • Webhooks
    • Create PDF
    • ActiveCampaign
    • Asana
    • Mailchimp
    • Front app
    • Freshdesk
    • Google Sheets
    • Pipedrive
    • Linear
    • Klaviyo
  • Sharing
    • Custom form link
    • Embed on a page (inline)
    • Embed on a page (popup)
    • Embed in emails
    • Embed on WordPress
    • Embed on Shopify
    • Embed on Squarespace
  • Salesforce
    • Overview
    • Create records
    • Update records
    • Related records
    • Dynamic picklists
    • Attach files
    • Create PDFs
    • Form prefill
    • Experience Cloud
  • HubSpot
    • Overview
    • Create contact form
    • Create lead capture form
    • Create customer survey
    • Prefill HubSpot form
    • Embed on HubSpot page
    • Uninstall
  • Zendesk
    • Create ticket form
    • Create CSAT survey
    • Embed on Help Center
    • Prefill ticket form
  • Admin
    • Users
    • Custom domain
    • Custom email domain
    • Vanity subdomain
    • Subscription
  • Developers
    • Embed Library
    • API keys
    • API v1
    • API v2
  • Others
    • Partner program
    • GDPR compliance
    • Workflow logs
    • White labeling
    • Using JSONPath
    • Form speed
    • Zapier
  • Contact
  1. Help
  2. ›
    Others
  3. ›
    Using JSONPath

Using JSONPath

On this page
  1. Introduction
  2. Basic syntax
  3. Examples
    1. Accessing simple properties
    2. Accessing nested objects
    3. Accessing array elements
    4. Accessing the last array element
  4. Common patterns
    1. API responses with data wrapper
    2. Extracting IDs from created resources
    3. Nested arrays
  5. Using multiple paths
  6. Notes

Introduction

JSONPath ↗ is a query language for JSON, similar to how XPath works for XML. In Formcrafts, JSONPath is used in different places, such as in webhooks, to extract specific values from JSON responses. You can test your JSON paths using this tool ↗.

Basic syntax

JSONPath expressions always start with $ which represents the root of the JSON document. You then use dot notation or bracket notation to navigate through the structure.

Expression Description
$ Root object
. Child operator
[] Array index or child operator

Examples

Given this JSON response:

{
  "user": {
    "id": "usr_12345",
    "name": "John Doe",
    "email": "[email protected]"
  },
  "order": {
    "id": "ord_67890",
    "items": [
      { "name": "Product A", "price": 29.99 },
      { "name": "Product B", "price": 49.99 }
    ],
    "total": 79.98
  },
  "status": "completed"
}

Accessing simple properties

JSONPath Result
$.status "completed"
$.user.id "usr_12345"
$.user.name "John Doe"
$.order.total 79.98

Accessing nested objects

JSONPath Result
$.user.email "[email protected]"
$.order.id "ord_67890"

Accessing array elements

Use zero-based index numbers in square brackets:

JSONPath Result
$.order.items[0] { "name": "Product A", "price": 29.99 }
$.order.items[0].name "Product A"
$.order.items[1].price 49.99

Accessing the last array element

Use negative indices to count from the end:

JSONPath Result
$.order.items[-1].name "Product B"

Common patterns

API responses with data wrapper

Many APIs wrap their response in a data object:

{
  "data": {
    "id": "12345",
    "attributes": {
      "name": "Example"
    }
  }
}
JSONPath Result
$.data.id "12345"
$.data.attributes.name "Example"

Extracting IDs from created resources

When creating a resource via webhook, you often need the returned ID:

{
  "id": "rec_abc123",
  "created_at": "2024-01-15T10:30:00Z"
}
JSONPath Result
$.id "rec_abc123"

Nested arrays

For deeply nested structures:

{
  "results": {
    "records": [
      { "id": "1", "value": "first" },
      { "id": "2", "value": "second" }
    ]
  }
}
JSONPath Result
$.results.records[0].id "1"
$.results.records[1].value "second"

Using multiple paths

In Formcrafts webhook configuration, you can extract multiple values by separating JSONPath expressions with commas:

$.data.id, $.data.status, $.meta.timestamp

Each extracted value becomes available for use in subsequent workflow actions.

Notes

  1. JSONPath expressions are case-sensitive. $.User.Id is different from $.user.id.

  2. If a path doesn’t match anything in the response, no value is extracted (no error is thrown).

  3. JSONPath only works with JSON responses. If your webhook returns a different content type, values cannot be extracted.

Minimal, fast, and powerful. Try now.
Formcrafts - a form and survey platform for Salesforce, HubSpot, etc

Subtle Web Inc,
225 Railway St E,
T4C 2C3, Cochrane AB

Salesforce AppExchange partner logo HubSpot app partner logo
Templates
Application formsLead generation formsSurvey & feedback formsEvaluation formsSupport request formsBooking & registrationContact forms
Comparisons
vs AllFormAssemblyTypeformJotformWufooSurveyMonkey
Features
Conditional logicSalesforce formsHubSpot formsZendesk ticket formsEmail formsIntegrationsForm fields
Resources
Help centerBlogDeveloper APIGDPRStatusReport abuseContact us
Company
About usNonprofitCase studiesSecurityTerms and privacy