Fix Jira Custom Fields That Export as JSON Instead of Text

A Jira field rarely comes back as the plain string a spreadsheet needs. It comes back as the object Jira actually stores.

Why the raw value isn't text

Jira's API returns typed values, not display strings. A user-picker field returns an account object, not a name. An option or select field returns an object with a value key. A multi-value field, labels, multi-select, linked issues, returns an array. A rich-text field, including the description on most issue types, returns Atlassian Document Format: a JSON tree, not a paragraph. Any export that writes the raw API response straight into a cell shows [object Object], a JSON blob, or nothing useful at all.

What each field type actually needs

  • User fields: pull the display name out of the object.
  • Option and select fields: pull the value key out of the object.
  • Arrays: join the flattened items into one readable string.
  • Atlassian Document Format: walk the text nodes and concatenate them, not print the JSON tree.

Where this breaks a scheduled report

This isn't a one-time nuisance you fix by hand once. A scheduled refresh that just serializes the API response reproduces the same broken cells on every run, silently, since nothing errors. The sheet just keeps filling with values nobody can read. Status is a system field, not a custom one, but it's built the same way, an object with a name and a statusCategory, so it hits the same trap. See pulling Jira issue status into Google Sheets for that specific case.

Flatten every field type automatically

Sheet Sync for Jira reads each field's schema and flattens it accordingly: user fields to display name, option fields to their value, arrays joined into a readable list, and Atlassian Document Format recursively extracted to plain text, before any of it reaches the sheet.

See Sheet Sync for Jira