In this tutorial, we will create a Confluence page with IFTTT module and then update the original ConfiForms entry with a page id of a just created page.

This tutorial uses the concept of IFTTT results chaining, described here: Advanced integrations with IFTTT macros with ConfiForms

There are 2 tutorials here: one original, with "creating a link" and on the right side, you can see the new tutorial, showing how to do a similar thing but setting a page id only and using the "Page/BlogPost" field type from ConfiForms


Using hidden text and creating links


Let's start with a very simple form which contains only 2 fields: one of type text and another of type "hidden HTML" (so it would not be visible on the entry form, but is visible in tables/lists/calendars)

In order to complete the task, we need to have 2 IFTTT macros. Order of placing IFTTTs on the Form is IMPORTANT here. First, should the be one which creates the page and second should be the one that uses the results of the first IFTTT macro execution and updates the original ConfiForms entry

  • One to create a page


  • Another to update ConfiForms entry based on the result of first IFTTT macro

    Parameters value is as follows:

    entryId=[entry.id]&mylink=<a href="http://localhost:1990/confluence/pages/viewpage.action?pageId=${iftttResult_0.id}">${iftttResult_0.displayTitle}</a>


    we reference here an id of the page that was just created by the 1st IFTTT macro (this will be replaced in runtime). You can reference any property of the page created, see https://docs.atlassian.com/confluence/latest/com/atlassian/confluence/pages/AbstractPage.html. See Documentation to get details about objects stored in IFTTT results after IFTTT macro execution.

  • You need also to set the form which you are trying to update
  • In our case the form is named "f" and is stored on the page with id "884778"

The final page will look like this:

A page with "here is my test" title was created with ConfiForms IFTTT macro when an entry was created and a link to this page was added/updated in the original ConfiForms entry.



Using "Page/BlogPost" field from ConfiForms

Preferred solution


Here, we will have a slightly different form, again with 2 fields, but instead of "mylink" field we will have a field called "mypage" of type "Page/BlogPost"

We will also have a rule to hide the "mypage" field from the input form, as it will be set for us automatically by ConfiForms when the page is created and we don't want to confuse the user, asking for the input they don't have to provide

In order to complete the task, we also need to have 2 IFTTT macros. One to create a page and another one to update the ConfiForms entry, but in a slightly different way.


  • One to create a page


  • Another to update ConfiForms entry based on the result of first IFTTT macro


Parameters value is as follows:

entryId=[entry.id]&mypage=[iftttResult_0.id]


We can show the results in a TableView, for example


<ac:structured-macro ac:macro-id="d44a6ab0-6d30-47f1-b3b6-6462cc7e71ad" ac:name="confiform" ac:schema-version="1">
  <ac:parameter ac:name="formName">f</ac:parameter>
  <ac:rich-text-body>
    <ac:structured-macro ac:macro-id="86071632-a1b4-4dc5-afed-77447ae67155" ac:name="confiform-entry-register" ac:schema-version="1">
      <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
      <ac:rich-text-body>
        <p>
          <br/>
        </p>
      </ac:rich-text-body>
    </ac:structured-macro>
    <p>
      <ac:structured-macro ac:macro-id="2d83fb82-da45-40dd-a065-8194e5503a04" ac:name="confiform-field-definition" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">myfield</ac:parameter>
        <ac:parameter ac:name="fieldLabel">myfield</ac:parameter>
        <ac:parameter ac:name="type">text</ac:parameter>
      </ac:structured-macro>
    </p>
    <p>
      <ac:structured-macro ac:macro-id="935d710c-46a3-4ee7-918c-4808c85b91e8" ac:name="confiform-field-definition" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">mypage</ac:parameter>
        <ac:parameter ac:name="fieldLabel">created page</ac:parameter>
        <ac:parameter ac:name="type">page</ac:parameter>
      </ac:structured-macro>
    </p>
    <p>-- always hide the "mypage" field</p>
    <p>
      <ac:structured-macro ac:macro-id="cc4a55c0-69f6-4c02-ae79-cea3f4daf6da" ac:name="confiform-field-definition-rules" ac:schema-version="1">
        <ac:parameter ac:name="condition">*</ac:parameter>
        <ac:parameter ac:name="fieldName">mypage</ac:parameter>
        <ac:parameter ac:name="action">Hide field</ac:parameter>
      </ac:structured-macro>
    </p>
    <ac:structured-macro ac:macro-id="7e0bb0a2-47fc-4f31-963a-9d5b5c98d5b6" ac:name="confiform-ifttt" ac:schema-version="1">
      <ac:parameter ac:name="action">Create Page</ac:parameter>
      <ac:parameter ac:name="event">onCreated</ac:parameter>
      <ac:parameter ac:name="title">[entry.myfield]</ac:parameter>
      <ac:rich-text-body>
        <p>Here goes the contents of the page we create with ConfiForms...</p>
      </ac:rich-text-body>
    </ac:structured-macro>
    <ac:structured-macro ac:macro-id="5e604d9f-66ce-4cf2-987a-15ce9b45501d" ac:name="confiform-ifttt" ac:schema-version="1">
      <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;mypage=[iftttResult_0.id]</ac:parameter>
      <ac:rich-text-body>
        <p>
          <br/>
        </p>
      </ac:rich-text-body>
    </ac:structured-macro>
  </ac:rich-text-body>
</ac:structured-macro>