{"id":14799,"date":"2026-10-06T18:45:47","date_gmt":"2026-10-06T16:45:47","guid":{"rendered":"https:\/\/actonic.de\/?p=14799"},"modified":"2026-10-06T18:45:55","modified_gmt":"2026-10-06T16:45:55","slug":"jira-jql-equals-in-text-fields-exact-phrase-search","status":"publish","type":"post","link":"https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/","title":{"rendered":"Jira JQL: = and IN on Text Fields Are Switching to Exact Phrase Search"},"content":{"rendered":"<h2>TL;DR<\/h2>\n<p>Atlassian <a href=\"https:\/\/developer.atlassian.com\/changelog\/#CHANGE-3440\" target=\"_blank\" rel=\"noopener\">announced on 6 October 2026 (CHANGE-3440)<\/a> that <code>=<\/code>, <code>IN<\/code> and <code>NOT IN<\/code> on text fields now run an <strong>exact phrase search<\/strong> instead of a full-value match. Atlassian&#8217;s example: <code>textField = \"urgent\"<\/code> matches &#8220;urgent&#8221;, &#8220;urgent issue&#8221; and &#8220;very urgent issue&#8221;, not only a field whose whole value is &#8220;urgent&#8221;.<\/p>\n<ul>\n<li><strong><code>=<\/code> and <code>IN<\/code> get broader:<\/strong> filters, gadgets and automation rules can return more issues.<\/li>\n<li><strong><code>NOT IN<\/code> gets narrower:<\/strong> it drops every issue whose text contains the phrase.<\/li>\n<li><strong>You can preview the results today:<\/strong> Atlassian defines the new <code>=<\/code> as the same search as <code>~<\/code> with escaped quotes, <code>textField ~ \"\\\"urgent\\\"\"<\/code>.<\/li>\n<\/ul>\n<p><strong>Not live yet on the two Cloud sites we checked (6 October 2026):<\/strong> on Epic Name, which accepts <code>=<\/code>, the operator still compared the whole value, and Summary and other standard text fields still reject <code>=<\/code>. The results below come from the equivalent <code>~<\/code> query, run against 12 demo work items on one test site.<\/p>\n<h2>What exactly changed<\/h2>\n<p>The operator stops comparing the whole value and looks for the phrase anywhere inside it. Atlassian&#8217;s rules, as published:<\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>Rule<\/strong><\/td>\n<td><strong>Per Atlassian, after CHANGE-3440<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Match scope<\/td>\n<td>The phrase may appear anywhere in the text; before, the whole value had to be equal<\/td>\n<\/tr>\n<tr>\n<td><code>textField = \"urgent\"<\/code><\/td>\n<td>Matches &#8220;urgent&#8221;, &#8220;urgent issue&#8221; and &#8220;very urgent issue&#8221;<\/td>\n<\/tr>\n<tr>\n<td>Several words<\/td>\n<td>Same words, same order, next to each other: <code>\"alpha beta\"<\/code> matches &#8220;prefix alpha beta suffix&#8221;, not &#8220;beta alpha&#8221; or &#8220;alpha something beta&#8221;<\/td>\n<\/tr>\n<tr>\n<td>Case<\/td>\n<td>Insensitive<\/td>\n<\/tr>\n<tr>\n<td>Stemming<\/td>\n<td>Still applies: &#8220;run&#8221; may match &#8220;running&#8221; (our test below disagrees)<\/td>\n<\/tr>\n<tr>\n<td><code>IN (\"alpha beta\", \"urgent\")<\/code><\/td>\n<td>Matches either phrase anywhere in the text<\/td>\n<\/tr>\n<tr>\n<td><code>NOT IN (\u2026)<\/code><\/td>\n<td>Follows from the above: excludes items that contain any of the phrases<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-14803\" src=\"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-01-old-vs-new-rule.png\" alt=\"Phrase matching returns 3 of 5 summaries for &quot;urgent issue&quot;, whole-value matching 1\" width=\"1344\" height=\"636\" srcset=\"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-01-old-vs-new-rule.png 1344w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-01-old-vs-new-rule-300x142.png 300w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-01-old-vs-new-rule-1024x485.png 1024w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-01-old-vs-new-rule-150x71.png 150w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-01-old-vs-new-rule-768x363.png 768w\" sizes=\"auto, (max-width: 1344px) 100vw, 1344px\" \/><\/p>\n<p>The left panel applies the old whole-value rule as Atlassian describes it; Summary itself never accepted <code>=<\/code>. The right panel is what <code>summary ~ \"\\\"urgent issue\\\"\"<\/code> returned on our test site.<\/p>\n<p><strong>Which fields does this touch?<\/strong> The notice does not list them. On both sites we checked, Jira still rejects <code>=<\/code>, <code>!=<\/code>, <code>IN<\/code> and <code>NOT IN<\/code> on Summary, Description, Environment, Comment and Short text \/ Paragraph custom fields (&#8220;The operator &#8216;=&#8217; is not supported by the &#8216;summary&#8217; field&#8221;), and refuses to save a filter with that JQL. Some string-valued fields already accept <code>=<\/code> and <code>IN<\/code>, for example URL fields and some Atlassian- or app-provided fields. Audit both groups; the script below covers them.<\/p>\n<p><strong>Is it live yet?<\/strong> Not on our two sites as of 6 October 2026. The Epic Name field accepts both <code>=<\/code> and <code>~<\/code>, so it shows which rule is active. <code>=<\/code> still compared the whole value on both sites:<\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>Query on 6 Oct 2026<\/strong><\/td>\n<td><strong>Old rule expects<\/strong><\/td>\n<td><strong>New rule expects<\/strong><\/td>\n<td><strong>Returned<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>\"Epic Name\" = \"iOS Platform Update\"<\/code><\/td>\n<td>the epic<\/td>\n<td>the epic<\/td>\n<td>the epic<\/td>\n<\/tr>\n<tr>\n<td><code>\"Epic Name\" = \"ios platform update\"<\/code><\/td>\n<td>the epic<\/td>\n<td>the epic<\/td>\n<td>the epic<\/td>\n<\/tr>\n<tr>\n<td><code>\"Epic Name\" = \"Platform Update\"<\/code><\/td>\n<td>nothing<\/td>\n<td>the epic<\/td>\n<td>nothing<\/td>\n<\/tr>\n<tr>\n<td><code>\"Epic Name\" ~ \"\\\"Platform Update\\\"\"<\/code><\/td>\n<td>the epic<\/td>\n<td>the epic<\/td>\n<td>the epic<\/td>\n<\/tr>\n<tr>\n<td><code>\"Epic Name\" = \"Dashboard\"<\/code><\/td>\n<td>nothing<\/td>\n<td>2 epics with &#8220;Dashboard&#8221; in the name<\/td>\n<td>nothing<\/td>\n<\/tr>\n<tr>\n<td><code>\"Epic Name\" IN (\"Dashboard\", \"Cloud\")<\/code><\/td>\n<td>the &#8220;Cloud&#8221; epic<\/td>\n<td>3 epics<\/td>\n<td>the &#8220;Cloud&#8221; epic<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Run the third query against an Epic Name on your own site. If it starts returning the epic, the change has reached you.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-14805\" src=\"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-02-equals-not-supported-on-summary.png\" alt=\"Jira rejects = on Summary with a JQL error\" width=\"1256\" height=\"124\" srcset=\"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-02-equals-not-supported-on-summary.png 1256w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-02-equals-not-supported-on-summary-300x30.png 300w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-02-equals-not-supported-on-summary-1024x101.png 1024w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-02-equals-not-supported-on-summary-150x15.png 150w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-02-equals-not-supported-on-summary-768x76.png 768w\" sizes=\"auto, (max-width: 1256px) 100vw, 1256px\" \/><\/p>\n<p><em>Today, <code>summary = \"Urgent issue\"<\/code> is rejected in the issue search on our test site (6 Oct 2026).<\/em><\/p>\n<h2>Tested on a real Cloud site<\/h2>\n<p>We ran the <code>~<\/code> query that Atlassian says equals the new <code>=<\/code>. The results follow the published phrase rules, except that a quoted phrase did not stem. The 12 demo work items, labelled <code>jql-phrase-demo<\/code>, have these summaries: &#8220;Urgent&#8221;, &#8220;Urgent issue&#8221;, &#8220;Very urgent issue&#8221;, &#8220;URGENT ISSUE in production&#8221;, &#8220;Issue urgent&#8221;, &#8220;Urgent customer issue&#8221;, &#8220;Not urgent&#8221;, &#8220;Urgently needed: VPN access&#8221;, &#8220;Server running out of memory&#8221;, &#8220;Alpha beta release notes&#8221;, &#8220;Beta alpha rollback&#8221; and &#8220;Alpha build for beta testers&#8221;.<\/p>\n<p>Each query was prefixed with <code>labels = jql-phrase-demo AND<\/code>:<\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>Query we ran (works today)<\/strong><\/td>\n<td><strong>Equivalent new <code>=<\/code> \/ <code>IN<\/code>, per Atlassian<\/strong><\/td>\n<td><strong>Returned<\/strong><\/td>\n<td><strong>Not returned (notable)<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>summary ~ \"\\\"urgent\\\"\"<\/code><\/td>\n<td><code>summary = \"urgent\"<\/code><\/td>\n<td>7: Urgent, Urgent issue, Very urgent issue, URGENT ISSUE in production, Issue urgent, Urgent customer issue, Not urgent<\/td>\n<td>Urgently needed: VPN access<\/td>\n<\/tr>\n<tr>\n<td><code>summary ~ \"\\\"urgent issue\\\"\"<\/code><\/td>\n<td><code>summary = \"urgent issue\"<\/code><\/td>\n<td>3: Urgent issue, Very urgent issue, URGENT ISSUE in production<\/td>\n<td>Issue urgent (order), Urgent customer issue (gap), Urgent<\/td>\n<\/tr>\n<tr>\n<td><code>summary ~ \"\\\"alpha beta\\\"\"<\/code><\/td>\n<td><code>summary = \"alpha beta\"<\/code><\/td>\n<td>1: Alpha beta release notes<\/td>\n<td>Beta alpha rollback, Alpha build for beta testers<\/td>\n<\/tr>\n<tr>\n<td><code>summary ~ \"alpha beta\"<\/code><\/td>\n<td>none (words, no phrase)<\/td>\n<td>3: all three alpha\/beta items<\/td>\n<td>\u2014<\/td>\n<\/tr>\n<tr>\n<td><code>(summary ~ \"\\\"urgent issue\\\"\" OR summary ~ \"\\\"alpha beta\\\"\")<\/code><\/td>\n<td><code>summary IN (\"urgent issue\", \"alpha beta\")<\/code><\/td>\n<td>4<\/td>\n<td>\u2014<\/td>\n<\/tr>\n<tr>\n<td><code>summary !~ \"\\\"urgent\\\"\"<\/code><\/td>\n<td><code>summary NOT IN (\"urgent\")<\/code><\/td>\n<td>5: the three alpha\/beta items, Server running out of memory, Urgently needed<\/td>\n<td>7 items, including <strong>Not urgent<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>summary ~ \"\\\"run\\\"\"<\/code><\/td>\n<td><code>summary = \"run\"<\/code><\/td>\n<td>0<\/td>\n<td>Server running out of memory<\/td>\n<\/tr>\n<tr>\n<td><code>summary ~ \"run\"<\/code><\/td>\n<td>none (word search)<\/td>\n<td>1: Server running out of memory<\/td>\n<td>\u2014<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Stemming:<\/strong> the notice says the new <code>=<\/code> equals <code>~<\/code> with escaped quotes, and also that it still stems. On our site those two statements conflict: the quoted <code>~ \"\\\"run\\\"\"<\/code> found nothing, and only the unquoted <code>~ \"run\"<\/code> found &#8220;running&#8221;. Atlassian&#8217;s <a href=\"https:\/\/community.atlassian.com\/forums\/Jira-articles\/Search-for-an-exact-phrase-with-JQL\/ba-p\/2131545\" target=\"_blank\" rel=\"noopener\">phrase search article<\/a> also says a phrase finds no word variations. Don&#8217;t rely on either behaviour until you can test <code>=<\/code> on your own site.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-14807\" src=\"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-03-phrase-urgent.png\" alt=\"Phrase search for &quot;urgent&quot; returns seven work items\" width=\"1256\" height=\"453\" srcset=\"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-03-phrase-urgent.png 1256w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-03-phrase-urgent-300x108.png 300w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-03-phrase-urgent-1024x369.png 1024w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-03-phrase-urgent-150x54.png 150w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-03-phrase-urgent-768x277.png 768w\" sizes=\"auto, (max-width: 1256px) 100vw, 1256px\" \/><\/p>\n<p><em><code>\"urgent\"<\/code> as a phrase: every summary that contains the word, in any position and any case.<\/em><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-14809\" src=\"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-04-phrase-urgent-issue.png\" alt=\"Phrase search for &quot;urgent issue&quot; returns three work items\" width=\"1256\" height=\"293\" srcset=\"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-04-phrase-urgent-issue.png 1256w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-04-phrase-urgent-issue-300x70.png 300w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-04-phrase-urgent-issue-1024x239.png 1024w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-04-phrase-urgent-issue-150x35.png 150w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-04-phrase-urgent-issue-768x179.png 768w\" sizes=\"auto, (max-width: 1256px) 100vw, 1256px\" \/><\/p>\n<p><em><code>\"urgent issue\"<\/code>: only the words together, in that order. &#8220;Issue urgent&#8221; and &#8220;Urgent customer issue&#8221; drop out.<\/em><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-14811\" src=\"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-05-alpha-beta-any-order.png\" alt=\"Unquoted alpha beta matches the words in any order\" width=\"1256\" height=\"293\" srcset=\"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-05-alpha-beta-any-order.png 1256w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-05-alpha-beta-any-order-300x70.png 300w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-05-alpha-beta-any-order-1024x239.png 1024w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-05-alpha-beta-any-order-150x35.png 150w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-05-alpha-beta-any-order-768x179.png 768w\" sizes=\"auto, (max-width: 1256px) 100vw, 1256px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-14813\" src=\"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-06-alpha-beta-exact-order.png\" alt=\"Quoted &quot;alpha beta&quot; matches only the exact order\" width=\"1256\" height=\"213\" srcset=\"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-06-alpha-beta-exact-order.png 1256w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-06-alpha-beta-exact-order-300x51.png 300w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-06-alpha-beta-exact-order-1024x174.png 1024w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-06-alpha-beta-exact-order-150x25.png 150w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-06-alpha-beta-exact-order-768x130.png 768w\" sizes=\"auto, (max-width: 1256px) 100vw, 1256px\" \/><\/p>\n<p><em>Without escaped quotes, <code>~ \"alpha beta\"<\/code> finds the words in any order (3 items). With them, only &#8220;Alpha beta release notes&#8221; remains.<\/em><\/p>\n<h2>Where this bites<\/h2>\n<p>The riskiest places are the ones nobody looks at: rules and scripts that run unattended and act on whatever the query returns.<\/p>\n<ul>\n<li><strong>Saved filters, board filters, dashboard gadgets.<\/strong> An <code>=<\/code> or <code>IN<\/code> on a text value can return more items, so counts, charts and swimlanes grow. Shared filters change for everyone who uses them.<\/li>\n<li><strong>Automation rules.<\/strong> JQL conditions and &#8220;Lookup work items&#8221; actions that use <code>=<\/code> match more items, and the rule then edits, transitions or notifies all of them.<\/li>\n<li><strong><code>NOT IN<\/code> used as an exclusion list.<\/strong> It stops hiding one exact value and hides every item that contains the phrase. The equivalent <code>!~<\/code> query on our site also excluded &#8220;Not urgent&#8221; (screenshot below).<\/li>\n<li><strong>Scripts and apps that call the REST API.<\/strong> On our sites, <code>POST \/rest\/api\/3\/search\/jql<\/code> answered <strong>HTTP 200 with an empty <code>issues<\/code> list<\/strong> for <code>summary = \"\u2026\"<\/code>, with no error or warning, while the issue search UI showed the error. A script that looks up <code>summary = \"&lt;marker&gt;\"<\/code> before creating an item therefore never finds it and creates a duplicate every time. If <code>=<\/code> starts phrase-matching on that field, the same lookup can instead return &#8220;Nightly build 2&#8221; for &#8220;Nightly build&#8221;. Validate generated JQL with <code>POST \/rest\/api\/3\/jql\/parse?validation=strict<\/code>, and compare the returned value exactly in code.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-14815\" src=\"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-07-not-in-excludes-not-urgent.png\" alt=\"NOT IN-style exclusion also drops &quot;Not urgent&quot;\" width=\"1256\" height=\"373\" srcset=\"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-07-not-in-excludes-not-urgent.png 1256w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-07-not-in-excludes-not-urgent-300x89.png 300w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-07-not-in-excludes-not-urgent-1024x304.png 1024w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-07-not-in-excludes-not-urgent-150x45.png 150w, https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-07-not-in-excludes-not-urgent-768x228.png 768w\" sizes=\"auto, (max-width: 1256px) 100vw, 1256px\" \/><\/p>\n<p><em>The <code>NOT IN (\"urgent\")<\/code> equivalent keeps 5 of 12 items. &#8220;Not urgent&#8221; and every other item containing the word is excluded; &#8220;Urgently needed&#8221; stays, because a phrase does not match other word forms.<\/em><\/p>\n<h2>How to audit your site<\/h2>\n<p>Start with saved filters: gadgets, boards and some automation rules run on them. The script below lists every saved filter that uses <code>=<\/code>, <code>!=<\/code>, <code>IN<\/code> or <code>NOT IN<\/code> on a string-valued field, plus Summary and the other standard text fields as a safety net. It reads the field list from your own site, so app-provided fields are included.<\/p>\n<ol>\n<li>Open your Jira site in the browser as a user with the Administer Jira global permission. The script passes <code>overrideSharePermissions=true<\/code>, so it sees every filter, not only those shared with you.<\/li>\n<li>Open the developer console (F12 \u2192 Console), paste the script and press Enter.<\/li>\n<li>Review each row it prints: <code>clause<\/code> shows the field and operator, <code>jql<\/code> the full query. Expect some false positives: keyword-style string fields that accept <code>=<\/code> may not be affected.<\/li>\n<\/ol>\n<pre><code>\/\/ Paste into the browser console on https:\/\/&lt;your-site&gt;.atlassian.net\r\n(async () =&gt; {\r\n  const ac = await (await fetch('\/rest\/api\/3\/jql\/autocompletedata')).json();\r\n  const fields = ac.visibleFieldNames.filter(f =&gt;\r\n    (f.types || []).includes('java.lang.String') &amp;&amp;\r\n    !f.value.endsWith('.property') &amp;&amp;\r\n    f.operators.some(op =&gt; ['=', '!=', 'in', 'not in'].includes(op)));\r\n  const names = new Set(['summary', 'description', 'environment', 'comment', 'text', 'textfields']);\r\n  fields.forEach(f =&gt; {\r\n    names.add(f.value.replace(\/^\"|\"$\/g, '').toLowerCase());\r\n    if (f.cfid) names.add(f.cfid.toLowerCase());\r\n  });\r\n  const esc = s =&gt; s.replace(\/[.*+?^${}()|[\\]\\\\]\/g, '\\\\$&amp;');\r\n  const re = new RegExp('(?:^|[\\\\s(])\"?(' + [...names].map(esc).join('|') +\r\n    ')\"?\\\\s*(!=|=|not\\\\s+in\\\\b|in\\\\b)', 'i');\r\n  const hits = [];\r\n  for (let startAt = 0, last = false; !last;) {\r\n    const page = await (await fetch('\/rest\/api\/3\/filter\/search?expand=jql,owner' +\r\n      `&amp;overrideSharePermissions=true&amp;maxResults=100&amp;startAt=${startAt}`)).json();\r\n    page.values.forEach(f =&gt; {\r\n      const m = (f.jql || '').match(re);\r\n      if (m) hits.push({ id: f.id, name: f.name, owner: f.owner?.displayName,\r\n                         clause: m[0].trim(), jql: f.jql });\r\n    });\r\n    last = page.isLast; startAt += page.maxResults;\r\n  }\r\n  console.table(hits);\r\n  return hits;\r\n})();<\/code><\/pre>\n<p>On our test site it flagged the one demo filter that uses <code>\"Project overview key\" = \"SK\"<\/code> and skipped the one that uses <code>~<\/code>. It only calls GET endpoints.<\/p>\n<p>Then cover what the script cannot see:<\/p>\n<ul>\n<li><strong>Automation:<\/strong> in Settings \u2192 System \u2192 Global automation, export your rules as JSON. Quotes inside JQL are escaped there, so search case-insensitively with a regex such as <code>(=|!=|\\bin\\b|\\bnot in\\b)<\/code> next to your text field names.<\/li>\n<li><strong>Your own scripts and apps:<\/strong> search the code for JQL that uses <code>=<\/code> or <code>IN<\/code> on text values, and validate it with the parse endpoint above.<\/li>\n<li><strong>Shared dashboards:<\/strong> note the counts on your busiest gadgets now, so you can compare once the change reaches your site.<\/li>\n<\/ul>\n<h2>Rewrite cheat sheet<\/h2>\n<p>Pick the operator by what you mean, not by habit. The first five rows ran on our test site exactly as written.<\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>You want<\/strong><\/td>\n<td><strong>Write<\/strong><\/td>\n<td><strong>Note<\/strong><\/td>\n<\/tr>\n<tr>\n<td>The exact phrase, anywhere in the text<\/td>\n<td><code>summary ~ \"\\\"urgent issue\\\"\"<\/code><\/td>\n<td>Same result as the new <code>=<\/code>; works today<\/td>\n<\/tr>\n<tr>\n<td>The words in any order (no phrase)<\/td>\n<td><code>summary ~ \"alpha beta\"<\/code><\/td>\n<td>Unquoted terms stem: <code>~ \"run\"<\/code> found &#8220;running&#8221;<\/td>\n<\/tr>\n<tr>\n<td>Any of several phrases<\/td>\n<td><code>(summary ~ \"\\\"urgent issue\\\"\" OR summary ~ \"\\\"alpha beta\\\"\")<\/code><\/td>\n<td>Same as the new <code>IN<\/code><\/td>\n<\/tr>\n<tr>\n<td>Exclude a phrase<\/td>\n<td><code>summary !~ \"\\\"urgent\\\"\"<\/code><\/td>\n<td>Same as the new <code>NOT IN<\/code>; also drops &#8220;Not urgent&#8221;<\/td>\n<\/tr>\n<tr>\n<td>Words starting with a prefix<\/td>\n<td><code>summary ~ \"urge*\"<\/code><\/td>\n<td>Found 8 items, incl. &#8220;Urgently&#8221;; a leading <code>*<\/code> is rejected<\/td>\n<\/tr>\n<tr>\n<td>The whole value and nothing else<\/td>\n<td>Not possible on Summary, Description, Environment, Comment, Short text or Paragraph fields<\/td>\n<td>Narrow with the phrase search, then compare the full value in an automation condition or in code<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>If you need exact matching on a value every time, store it in a field built for it: a select list, labels or a component.<\/p>\n<h2>FAQ<\/h2>\n<p><strong>Do I have to change anything right now?<\/strong> Only if a filter, rule or script relies on <code>=<\/code>, <code>IN<\/code> or <code>NOT IN<\/code> returning whole-value matches on a text value. Run the audit, then rewrite with the cheat sheet so the intent is explicit.<\/p>\n<p><strong>Is <code>~<\/code> affected?<\/strong> The notice does not change it. <code>~<\/code> with and without escaped quotes is the reference Atlassian uses to describe the new <code>=<\/code>.<\/p>\n<h2>Sources<\/h2>\n<ul>\n<li><a href=\"https:\/\/developer.atlassian.com\/changelog\/#CHANGE-3440\" target=\"_blank\" rel=\"noopener\">Atlassian developer changelog, CHANGE-3440<\/a><\/li>\n<li><a href=\"https:\/\/support.atlassian.com\/jira-software-cloud\/docs\/jql-operators\/\" target=\"_blank\" rel=\"noopener\">JQL operators (Jira Cloud)<\/a><\/li>\n<li><a href=\"https:\/\/support.atlassian.com\/jira-software-cloud\/docs\/advanced-search-reference-jql-fields\/\" target=\"_blank\" rel=\"noopener\">JQL fields reference (Jira Cloud)<\/a><\/li>\n<li><a href=\"https:\/\/community.atlassian.com\/forums\/Jira-articles\/Search-for-an-exact-phrase-with-JQL\/ba-p\/2131545\" target=\"_blank\" rel=\"noopener\">Search for an exact phrase with JQL (Atlassian Community)<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Atlassian announced that =, IN and NOT IN on Jira Cloud text fields now run an exact phrase search. We tested the equivalent queries on a real Cloud site: what changes, where it bites, a filter audit script and a rewrite cheat sheet.<\/p>\n","protected":false},"author":33,"featured_media":14803,"comment_status":"closed","ping_status":"open","sticky":false,"template":"single_no_cta.php","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_is_cornerstone":"","_yoast_wpseo_meta-robots-noindex":"","_yoast_wpseo_meta-robots-nofollow":"","_yoast_wpseo_meta-robots-adv":"","_yoast_wpseo_bctitle":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-title":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_opengraph-image-id":0,"_yoast_wpseo_twitter-title":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_twitter-image-id":0,"_yoast_wpseo_schema_page_type":"","_yoast_wpseo_schema_article_type":"","footnotes":"","_yoast_wpseo_keywordsynonyms":"","_yoast_wpseo_focuskeywords":"","_yoast_wpseo_estimated-reading-time-minutes":"1","_yoast_wpseo_primary_category":null},"categories":[242],"tags":[],"class_list":["post-14799","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles-atlassian-best-practises"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.9 (Yoast SEO v28.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Jira JQL = and IN on Text Fields Now Use Phrase Search<\/title>\n<meta name=\"description\" content=\"Jira Cloud =, IN and NOT IN on text fields switch to exact phrase search (CHANGE-3440). Tested examples, risks, a filter audit script and a JQL cheat sheet.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Jira JQL: = and IN on Text Fields Are Switching to Exact Phrase Search\" \/>\n<meta property=\"og:description\" content=\"Jira Cloud =, IN and NOT IN on text fields switch to exact phrase search (CHANGE-3440). Tested examples, risks, a filter audit script and a JQL cheat sheet.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/\" \/>\n<meta property=\"og:site_name\" content=\"Actonic \u2013 Unfolding your potential\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-06T16:45:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-06T16:45:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-01-old-vs-new-rule.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1344\" \/>\n\t<meta property=\"og:image:height\" content=\"636\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Rustem Shiriiazdanov\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rustem Shiriiazdanov\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/jira-jql-equals-in-text-fields-exact-phrase-search\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/jira-jql-equals-in-text-fields-exact-phrase-search\\\/\"},\"author\":{\"name\":\"Rustem Shiriiazdanov\",\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/#\\\/schema\\\/person\\\/315396086623b0d7b90e64da0a72acc6\"},\"headline\":\"Jira JQL: = and IN on Text Fields Are Switching to Exact Phrase Search\",\"datePublished\":\"2026-10-06T16:45:47+00:00\",\"dateModified\":\"2026-10-06T16:45:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/jira-jql-equals-in-text-fields-exact-phrase-search\\\/\"},\"wordCount\":1442,\"publisher\":{\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/jira-jql-equals-in-text-fields-exact-phrase-search\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/actonic.de\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/jql-phrase-search-fig-01-old-vs-new-rule.png\",\"articleSection\":[\"Atlassian Best Practises\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/jira-jql-equals-in-text-fields-exact-phrase-search\\\/\",\"url\":\"https:\\\/\\\/actonic.de\\\/en\\\/jira-jql-equals-in-text-fields-exact-phrase-search\\\/\",\"name\":\"Jira JQL = and IN on Text Fields Now Use Phrase Search\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/jira-jql-equals-in-text-fields-exact-phrase-search\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/jira-jql-equals-in-text-fields-exact-phrase-search\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/actonic.de\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/jql-phrase-search-fig-01-old-vs-new-rule.png\",\"datePublished\":\"2026-10-06T16:45:47+00:00\",\"dateModified\":\"2026-10-06T16:45:55+00:00\",\"description\":\"Jira Cloud =, IN and NOT IN on text fields switch to exact phrase search (CHANGE-3440). Tested examples, risks, a filter audit script and a JQL cheat sheet.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/jira-jql-equals-in-text-fields-exact-phrase-search\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/actonic.de\\\/en\\\/jira-jql-equals-in-text-fields-exact-phrase-search\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/jira-jql-equals-in-text-fields-exact-phrase-search\\\/#primaryimage\",\"url\":\"https:\\\/\\\/actonic.de\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/jql-phrase-search-fig-01-old-vs-new-rule.png\",\"contentUrl\":\"https:\\\/\\\/actonic.de\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/jql-phrase-search-fig-01-old-vs-new-rule.png\",\"width\":1344,\"height\":636,\"caption\":\"Phrase matching returns 3 of 5 summaries for \\\"urgent issue\\\", whole-value matching 1\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/jira-jql-equals-in-text-fields-exact-phrase-search\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/actonic.de\\\/en\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Jira JQL: = and IN on Text Fields Are Switching to Exact Phrase Search\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/actonic.de\\\/en\\\/\",\"name\":\"Actonic \u2013 Unfolding your potential\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/actonic.de\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/#organization\",\"name\":\"Actonic GmbH\",\"alternateName\":\"Actonic\",\"url\":\"https:\\\/\\\/actonic.de\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/actonic.de\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/actonic_logo_compact_rgb_800px_for-profiles_round.jpg\",\"contentUrl\":\"https:\\\/\\\/actonic.de\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/actonic_logo_compact_rgb_800px_for-profiles_round.jpg\",\"width\":800,\"height\":800,\"caption\":\"Actonic GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/marketplace.atlassian.com\\\/vendors\\\/1214306\\\/actonic-products-gmbh\",\"https:\\\/\\\/trust.actonic.de\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/actonic.de\\\/en\\\/#\\\/schema\\\/person\\\/315396086623b0d7b90e64da0a72acc6\",\"name\":\"Rustem Shiriiazdanov\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/29c0c269fe1dd9f12ceb4fba71e920c8b71d0f6e2ab048efb0b9468914cef19e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/29c0c269fe1dd9f12ceb4fba71e920c8b71d0f6e2ab048efb0b9468914cef19e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/29c0c269fe1dd9f12ceb4fba71e920c8b71d0f6e2ab048efb0b9468914cef19e?s=96&d=mm&r=g\",\"caption\":\"Rustem Shiriiazdanov\"},\"url\":\"https:\\\/\\\/actonic.de\\\/en\\\/author\\\/rustem-shiriiazdanov\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Jira JQL = and IN on Text Fields Now Use Phrase Search","description":"Jira Cloud =, IN and NOT IN on text fields switch to exact phrase search (CHANGE-3440). Tested examples, risks, a filter audit script and a JQL cheat sheet.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/","og_locale":"en_US","og_type":"article","og_title":"Jira JQL: = and IN on Text Fields Are Switching to Exact Phrase Search","og_description":"Jira Cloud =, IN and NOT IN on text fields switch to exact phrase search (CHANGE-3440). Tested examples, risks, a filter audit script and a JQL cheat sheet.","og_url":"https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/","og_site_name":"Actonic \u2013 Unfolding your potential","article_published_time":"2026-10-06T16:45:47+00:00","article_modified_time":"2026-10-06T16:45:55+00:00","og_image":[{"width":1344,"height":636,"url":"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-01-old-vs-new-rule.png","type":"image\/png"}],"author":"Rustem Shiriiazdanov","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Rustem Shiriiazdanov","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/#article","isPartOf":{"@id":"https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/"},"author":{"name":"Rustem Shiriiazdanov","@id":"https:\/\/actonic.de\/en\/#\/schema\/person\/315396086623b0d7b90e64da0a72acc6"},"headline":"Jira JQL: = and IN on Text Fields Are Switching to Exact Phrase Search","datePublished":"2026-10-06T16:45:47+00:00","dateModified":"2026-10-06T16:45:55+00:00","mainEntityOfPage":{"@id":"https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/"},"wordCount":1442,"publisher":{"@id":"https:\/\/actonic.de\/en\/#organization"},"image":{"@id":"https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/#primaryimage"},"thumbnailUrl":"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-01-old-vs-new-rule.png","articleSection":["Atlassian Best Practises"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/","url":"https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/","name":"Jira JQL = and IN on Text Fields Now Use Phrase Search","isPartOf":{"@id":"https:\/\/actonic.de\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/#primaryimage"},"image":{"@id":"https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/#primaryimage"},"thumbnailUrl":"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-01-old-vs-new-rule.png","datePublished":"2026-10-06T16:45:47+00:00","dateModified":"2026-10-06T16:45:55+00:00","description":"Jira Cloud =, IN and NOT IN on text fields switch to exact phrase search (CHANGE-3440). Tested examples, risks, a filter audit script and a JQL cheat sheet.","breadcrumb":{"@id":"https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/#primaryimage","url":"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-01-old-vs-new-rule.png","contentUrl":"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-01-old-vs-new-rule.png","width":1344,"height":636,"caption":"Phrase matching returns 3 of 5 summaries for \"urgent issue\", whole-value matching 1"},{"@type":"BreadcrumbList","@id":"https:\/\/actonic.de\/en\/jira-jql-equals-in-text-fields-exact-phrase-search\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/actonic.de\/en\/home\/"},{"@type":"ListItem","position":2,"name":"Jira JQL: = and IN on Text Fields Are Switching to Exact Phrase Search"}]},{"@type":"WebSite","@id":"https:\/\/actonic.de\/en\/#website","url":"https:\/\/actonic.de\/en\/","name":"Actonic \u2013 Unfolding your potential","description":"","publisher":{"@id":"https:\/\/actonic.de\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/actonic.de\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/actonic.de\/en\/#organization","name":"Actonic GmbH","alternateName":"Actonic","url":"https:\/\/actonic.de\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/actonic.de\/en\/#\/schema\/logo\/image\/","url":"https:\/\/actonic.de\/wp-content\/uploads\/2020\/03\/actonic_logo_compact_rgb_800px_for-profiles_round.jpg","contentUrl":"https:\/\/actonic.de\/wp-content\/uploads\/2020\/03\/actonic_logo_compact_rgb_800px_for-profiles_round.jpg","width":800,"height":800,"caption":"Actonic GmbH"},"image":{"@id":"https:\/\/actonic.de\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/marketplace.atlassian.com\/vendors\/1214306\/actonic-products-gmbh","https:\/\/trust.actonic.de\/"]},{"@type":"Person","@id":"https:\/\/actonic.de\/en\/#\/schema\/person\/315396086623b0d7b90e64da0a72acc6","name":"Rustem Shiriiazdanov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/29c0c269fe1dd9f12ceb4fba71e920c8b71d0f6e2ab048efb0b9468914cef19e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/29c0c269fe1dd9f12ceb4fba71e920c8b71d0f6e2ab048efb0b9468914cef19e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/29c0c269fe1dd9f12ceb4fba71e920c8b71d0f6e2ab048efb0b9468914cef19e?s=96&d=mm&r=g","caption":"Rustem Shiriiazdanov"},"url":"https:\/\/actonic.de\/en\/author\/rustem-shiriiazdanov\/"}]}},"jetpack_featured_media_url":"https:\/\/actonic.de\/wp-content\/uploads\/2026\/10\/jql-phrase-search-fig-01-old-vs-new-rule.png","_links":{"self":[{"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/posts\/14799","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/users\/33"}],"replies":[{"embeddable":true,"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/comments?post=14799"}],"version-history":[{"count":5,"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/posts\/14799\/revisions"}],"predecessor-version":[{"id":14822,"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/posts\/14799\/revisions\/14822"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/media\/14803"}],"wp:attachment":[{"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/media?parent=14799"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/categories?post=14799"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/actonic.de\/en\/wp-json\/wp\/v2\/tags?post=14799"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}