Smart Forms for Jira

API Data source

Background.png


Get your form responses
into Any Tool

A data source for extracting Smart Forms response data into BI
dashboards, CRM systems, automation pipelines, and custom
reporting tools. Generate tokens directly in the app — and get data everywhere.

Link.png
Hand-drawn hero illustration → SVG.png

Explanation
What is the Data
Source API?
When to use it, what it enables, and how it connects to Jira.

tutorial
Quick start in 4 steps
Generate token and get your responses out of Jira.

how-to
Authenticate & query
Headers, parameters, filtering

reference
Full response schema
All fields, types, constraints,
and error codes.

what is data source.png

Forms that feed your
whole stack

The Data Source API gives you programmatic access to every form response collected in Smart Forms for Jira. Instead of manually exporting CSVs, you pull structured JSON directly into whatever
system needs it.

📊

BI dashboards
QlikSense, Power BI, Tableau — auto-sync without spreadsheet downloads

🔄

Jira Automation
Fetch responses via ScriptRunner or Automation to update fields or transition work items

:share_form_base:

CRM integration
Push form answers directly into Salesforce, HubSpot, or any REST-capable CRM

:Custom:

Custom databases
Sync responses into your own database for filtered search and custom reporting

High-volume export
70–100 forms synced daily without manual intervention — impractical with PDF/CSV exports

How it works

  1. You generate a per-form data token

  2. Each token gives read access to responses for one specific form

  3. The API returns structured JSON: form data + all responses + answers per respondent

  4. Responses include links to:

    1. created Jira work items

    2. submitted issue context

    3. attachment download URLs

  5. Restricted forms and their tokens are hidden from users without the required permissions



Data hierarchy

Data.png


tutorial.png

First Data Source set up in
4 steps

Group 6273287.png
:1_one_circle_blue:

Open the Data Source panel

:a: Go to the Smart Forms main page

Open Jira and navigate to Smart Forms for Jira from the left sidebar or the Apps menu.

:b: Click "Data Source" button → :API:

Look for the :API: button on the main page at the top right corner. A modal window will open.

:c: Select the form you want to connect

Use the dropdown to find your form. Only forms you have permission to view will appear here.

Group 6273288.png
:2_two_circle_blue:

Generate your token

:a: Select the form and click “Create”

A new token appears in the list immediately with the name of the form choosen

:b: Authorize access

Click the authorization action in the datafeed window. You will be redirected to the Atlassian consent screen, where you need to review the requested access and click Accept.

:c: Get your authorization code

You'll see a page titled "App Connected Successfully". Do not close this page. The 5-minute countdown starts now.

Group 6273289.png
:3_three_circle_blue:

Run the command to get your tokens

⏱ You have 5 minutes from the moment the confirmation page appeared

The confirmation page shows a ready-made command. All your credentials — client ID, secret, and authorisation code — are already filled in. You just copy and run it.

:a: Click "Copy" on the confirmation page

The entire command — with your client ID, client secret, and authorisation code already filled in — copies to your clipboard.

:b: Paste and run the command in Postman or Terminal

Postman (recommended for non-technical users): Open Postman → click Import → paste the command → click Send.

Terminal (Mac) or Command Prompt (Windows): Open the app → paste → press Enter.

No Postman or Terminal? Use Hoppscotch in your browser — free, no install needed.

:c: You receive your tokens — copy both

The response looks like this. Copy the access_token and refresh_token values and save them somewhere safe.

Background+Border.png
:warning:

Save both tokens right now — in a password manager or secure notes file. If the code expired before you ran the command, go back to Step 1 and repeat. This is normal and takes only a few minutes.

:4_four_circle_blue:

Connect your tool using the access or refresh token

Use the access_token from Step 3 as a Bearer token.

The API address for your form responses is:

https://YOURINSTANCE.atlassian.com/gateway/api/svc/jira/apps/****/rest/v1/datasource?dataSourceId=datasourceid

Your Form ID is shown in the Data Source modal alongside the curl command.

📊 Power BI / Tableau / Looker

  1. Go to Get Data → Web connector (Power BI) or Web Data Connector (Tableau)

  2. Paste the URL above with your Form ID

  3. When asked for authentication, go to Advanced and add a header: Key = Authorization, Value = Bearer YOUR_ACCESS_TOKEN

  4. Click Connect — your responses load as a table

⚡Zapier / Make (Integromat)

  1. Add a HTTP / Webhooks step

  2. Action: GET

  3. URL: paste the address above with your Form ID

  4. Headers: Key = Authorization, Value = Bearer YOUR_ACCESS_TOKEN

  5. Test the step — form responses appear in the response data

:API: Postman (to test before connecting)

  1. Create a new GET request

  2. Paste the URL with your Form ID

  3. Authorization tab → Bearer Token → paste access token

  4. Click Send — all responses appear as JSON

:5_five_circle_blue:

Keep it working after the first hour

The access token expires after 1 hour. For one-off exports that's fine. For daily automated connections, your tool needs to renew it using the refresh token.

One-off export

Use the access token within 1 hour. No extra setup needed.


Ongoing / automated

Configure your tool to use the refresh token to get a new access token automatically. Zapier and Make handle this natively.

Refresh token lasts 90 days. After that your integration stops working until you repeat Step 1–3. Set a calendar reminder for day 80.

trouble.png

Something's not
working?

The command returned "invalid_grant" or "code expired"

The authorisation code expired before you ran the command — it's only valid for 5 minutes. Go back to Step 1 and repeat the process. This time, make sure Postman is already open before you click Authorise.

I get "Unauthorized" or "401" when calling the API

Three things to check:
1. Has the access token expired? It's only valid for 1 hour. Use the refresh token to get a new one, or repeat the authorisation flow.
2. Did you include "Bearer " before the token? It must look like: Bearer eyJraWQiOiJ... — not just the token on its own.
3. Did you copy the full token? These are very long strings — make sure nothing was cut off at the end.

My integration worked for a while, then suddenly stopped

The authorisation code expired before you ran the command — it's only valid for 5 minutes. Go back to Step 1 and repeat the process. This time, make sure Postman is already open before you click Authorise.

I see "Forbidden" or "403"

Token is valid but you don't have access to that form. Either the form is restricted and you lack the required Jira permissions, or the formId in the URL is wrong. Check your Form ID in the Data Source modal and confirm you have access to the form in Jira.

I don't have Postman or Terminal and don't know how to run commands

Use Hoppscotch (http://hoppscotch.io ) — it's free, runs in any browser, and lets you paste and run the command visually. Or contact SaaSJet support — we can walk you through Step 3 on a call.

response.png

Full response
structure

The API returns a single JSON object. Here's every field, its type, and
when it's present.

Response object

respomse object.png

Answer object

answer object.png

Rate limits

100
requests per minute
per token

500
max responses
per page

10
active tokens
per user

For high-volume daily syncs (70–100 forms), use limit=500 with pagination, and add a
short delay between requests to stay within rate limits.