This is the documentation for ConfiForms CLOUD app

ConfiForms app on Atlassian marketplace


Especially to the demos around creating Jira issues via web service connections. As this is exactly the method used in ConfiForms app for Confluence cloud


Here is a step by step tutorial on how to setup a form in Confluence cloud to create issues in JIRA


The form, we are about to create

2 fields, one to ask for JIRA issue summary and another to ask about issue description

The 3rd field is of type JIRA and is hidden with the rule (initially, for new records)

Configuration looks like this

Very useful page to see how various Jira field types shall be mapped

https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples/


We have 2 IFTTTs to create the issue and to store the result of this operation (Jira issue key) back to ConfiForms record (the macro you see as "Unknown macro" is actually "ConfiForms IFTTT rules" macro, but as it uses the $ in the parameter expression the editor goes a bit crazy and reports this as "unknown macro". You can safely ignore this)


In order for our 1st IFTTT to create the JIRA issue to work you need to go to ConfiForms app settings and configure web-service connection to your JIRA

ConfiForms app settings could be accessed like this


Direct link would be

https://<YOUR_SERVER>.atlassian.net/wiki/plugins/servlet/ac/com.vertuna.confluence.plugins.confiforms/confi-forms-admin



You will have something like this (but using your server details and username)


Please make sure you follow the advise and generate API token to access Jira

For setting up connections to Jira cloud please consider using API tokens, https://id.atlassian.com/manage/api-tokens (Generated token goes to password field and your email address goes to the username field)

as basic auth is deprecated by Atlassian and will not work


And the IFTTT is configured as follows


Second IFTTT is configured as follows

It uses the result of the previous IFTTT and sets it back to ConfiForms record

entryId=[entry.id]&jiraKey=${iftttResult_JI.key}

We using the result of the "JI" IFTTT action and take the "key" property of it - the object stored in the result is the JSON response object returned by JIRA server

Updated way of referencing IFTTT macro result is by using [iftttResult_IFTTTNAME]

For example:

entryId=[entry.id]&jiraKey=[iftttResult_JI.key]


Complete storage format for you to reference and import is as follows (we also have a ConfiForms TableView to show the data stored with this ConfiForms Form)

<p class="auto-cursor-target"><br/></p>
<p><br/></p>
<ac:structured-macro ac:name="confiform" ac:schema-version="1" ac:macro-id="07191fcd-1954-4e6d-8a0e-63536f9d9de7">
  <ac:parameter ac:name="formName">myform</ac:parameter>
  <ac:rich-text-body>
    <p>
      <ac:structured-macro ac:name="confiform-field-definition" ac:schema-version="1"
                           ac:macro-id="60f14199-9c9e-44f9-8f59-f0e540ebca35">
        <ac:parameter ac:name="fieldName">summary</ac:parameter>
        <ac:parameter ac:name="fieldLabel">Summary</ac:parameter>
        <ac:parameter ac:name="type">text</ac:parameter>
      </ac:structured-macro>
    </p>
    <p>
      <ac:structured-macro ac:name="confiform-field-definition" ac:schema-version="1"
                           ac:macro-id="ffbb4283-f010-4ffe-ad0c-f0e8f69e15f2">
        <ac:parameter ac:name="fieldName">description</ac:parameter>
        <ac:parameter ac:name="fieldLabel">Description</ac:parameter>
        <ac:parameter ac:name="type">textarea</ac:parameter>
      </ac:structured-macro>
    </p>
    <p>
      <ac:structured-macro ac:name="confiform-field-definition" ac:schema-version="1"
                           ac:macro-id="7bc8c39f-1075-44ae-bbb6-d0af118d5ddc">
        <ac:parameter ac:name="fieldName">jiraKey</ac:parameter>
        <ac:parameter ac:name="fieldLabel">jiraKey</ac:parameter>
        <ac:parameter ac:name="type">jira</ac:parameter>
        <ac:parameter ac:name="extras">e6b2ccca-1bec-4b00-9a59-2850aa00cd6a</ac:parameter>
      </ac:structured-macro>&nbsp;<ac:structured-macro ac:name="confiform-field-definition-rules" ac:schema-version="1"
                                                       ac:macro-id="d866a3e6-5ade-4378-8361-8899eaaf17f1">
      <ac:parameter ac:name="condition">id:[empty]</ac:parameter>
      <ac:parameter ac:name="fieldName">jiraKey</ac:parameter>
      <ac:parameter ac:name="action">Hide field</ac:parameter>
    </ac:structured-macro>&nbsp;- rule to hide the jiraKey field
    </p>
    <p><br/></p>
    <ac:structured-macro ac:name="confiform-entry-register" ac:schema-version="1"
                         ac:macro-id="932c3f67-8923-4a16-8878-78597d012ce2">
      <ac:parameter ac:name="overrideSaveButtonLabel">Create Jira issue</ac:parameter>
      <ac:parameter ac:name="formName">myform</ac:parameter>
      <ac:rich-text-body>
        <p><br/></p></ac:rich-text-body>
    </ac:structured-macro>
    <p class="auto-cursor-target"><br/></p>
    <p class="auto-cursor-target"><br/></p>
    <p class="auto-cursor-target"><br/></p>
    <ac:structured-macro ac:name="confiform-ifttt" ac:schema-version="1"
                         ac:macro-id="94deac46-2b58-4cc2-b854-778807ee07e1">
      <ac:parameter ac:name="action">Create JIRA Issue</ac:parameter>
      <ac:parameter ac:name="extras">e6b2ccca-1bec-4b00-9a59-2850aa00cd6a</ac:parameter>
      <ac:parameter ac:name="event">onCreated</ac:parameter>
      <ac:parameter ac:name="resultName">JI</ac:parameter>
      <ac:rich-text-body>
        <p class="auto-cursor-target"><br/></p>
        <ac:structured-macro ac:name="noformat" ac:schema-version="1"
                             ac:macro-id="ad9d9576-2025-42a5-a7cc-f2dd05f0fdba">
          <ac:plain-text-body><![CDATA[{
            "fields": {
            "project":
            {
            "key": "JTEST"
            },
            "summary": "[entry.summary.escapeJSON]",
            "description": "[entry.description.escapeJSON]",
            "issuetype": {
            "name": "Bug"
            }
            }
            }]]>
          </ac:plain-text-body>
        </ac:structured-macro>
        <p class="auto-cursor-target"><br/></p></ac:rich-text-body>
    </ac:structured-macro>
    <ac:structured-macro ac:name="confiform-ifttt" ac:schema-version="1"
                         ac:macro-id="e6b8116b-5d52-4458-95db-83fe22495413">
      <ac:parameter ac:name="action">Create ConfiForms Entry</ac:parameter>
      <ac:parameter ac:name="event">onCreated</ac:parameter>
      <ac:parameter ac:name="title">entryId=[entry.id]&amp;jiraKey=[iftttResult_JI.key]</ac:parameter>
      <ac:rich-text-body>
        <p><br/></p></ac:rich-text-body>
    </ac:structured-macro>
    <p class="auto-cursor-target"><br/></p></ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target"><br/></p>
<p class="auto-cursor-target">Show all</p>
<ac:structured-macro ac:name="confiform-table" ac:schema-version="1" ac:macro-id="4e37c280-e3b1-4466-ae8f-763e551dfbdd">
  <ac:parameter ac:name="formName">myform</ac:parameter>
  <ac:rich-text-body>
    <p><br/></p></ac:rich-text-body>
</ac:structured-macro>

New Editor in Confluence cloud

If you are working with Confluence cloud new editor then please use "code" macro instead of "noformat" macro, as a workaround.

As there were so many macros and functionalities removed without providing any alternatives for many valid and very common use cases. 

Also, with "new editor" nesting of bodied macros is not supported and you need to place your IFTTT macros outside the ConfiForms Form (Definition) macro. (The editor simply does not allow you to put these macros inside)

In this case please make sure you set the "Form name" parameter to match your form name


How to send and upload files to Jira issue from ConfiForms

This is very simple as long as you use "Create (or Update) Jira Issue" IFTTT rule

Just put a ConfiForms Field macro referencing your file field (in ConfiForms) inside the IFTTT macro body 


ConfiForms will recognise there is a file or multiple files and will attempt to upload them into the Jira issue you have created or updated