How To Use UpStream With Gravity Forms

Steve

Steve

Last updated on Nov 7, 2026

image

UpStream’s Forms module allows you to connect UpStream to all three major WordPress forms plugins.

Additional articles about UpStream Forms:

In this article we look at how to use UpStream with Gravity Forms.

Getting Started

UpStream Forms is compatible with most recent versions of Gravity Forms. The setup process is the same for each one.

If you want, you can use UpStream Forms with multiple forms plugins at the same time (for example, Gravity Forms and WPForms). We will explain how to do this later.

Once you install Gravity Forms, you can install and activate UpStream Forms.

Preparing Your Gravity Forms Form For UpStream

If you haven’t created a form yet, the first thing you will need to do is to to your WordPress admin dashboard, and click on Forms -> New Form. That will take you to a Wizard, which allows you to add a new form.

Once you have created the form, you will see a page where you can add fields:

Creating a form using Gravity Forms

Creating a form using Gravity Forms

On this page, you will add all of the fields that you want to populate into your project. You can click any of the blue buttons in order to add a field.

When you add a field, and click on the field, Gravity Forms will show you a properties page, which includes an ID number for each field. Make note of all of the IDs of the fields you create.

The image below shows where you can find the ID:

The ID for each field shows up in the top bar in Gravity Forms

The ID for each field shows up in the top bar in Gravity Forms

You can use most of the fields available in Gravity Forms, although there are some specific rules for certain field types. We will look at those later.

For now, let’s create a basic form with one field — the Project Title. After starting the form, add one “Single Line Text” field to your form, and set the label to “Project Title” (as in the image above).

Make a note of the Gravity Forms ID of the “Project Title” field, and then save the form. Also, make note of the form ID, which is prominently displayed in orange at the top of the page:

The ID of the form is in orange at the top of the page.

The ID of the form is in orange at the top of the page.

Connecting Your Gravity Forms Form To UpStream

In this section, we will take the simple form we created in the last section and connect it to UpStream, so that by submitting the form, a user can create a project with a title entered by the user.

After installing and activating the UpStream Forms addon, go to your WordPress dashboard, and then go to UpStream -> Forms. You will see a page like below.

After activating, you will see a page like this (although the Action XML field will be blank)

After activating, you will see a page like this (although the Action XML field will be blank)

The Action XML field is where all of the magic happens. In that field, you can enter the rules that tell UpStream how to handle each Gravity Forms form field.

Let’s take a look at a very basic Action XML:


<upstream-forms-action>
	<form id="1">
		<project action="create" title="[1]" created-by="1">
		</project>
	</form>
</upstream-forms-action>

Every Action XML starts with an *<upstream-forms-action>*tag. You can see that this tag is opened on line 1 and closed on line 6.

Line 2 is where the rule begins. UpStream can handle multiple Gravity Forms (or Ninja Forms, etc.) forms at the same time. For each form, UpStream expects a *<form>*tag. The *<form>*tag has an id parameter, which is the ID of the form.

In the last section, we explained where to find the form ID in Gravity Forms. Check above if you need help finding it.

Since our Gravity Forms form had the ID 1, we would enter that as the id parameter in our *<form>*tag.

Line 3 tells UpStream to create a new project. The *<project>*tag tells UpStream to create a new project when the form with ID 1 is submitted. The parameters titleand created-by are required, and tell UpStream what the title of the project should be, and who the creator should be.

The first part, *title=”[1]”,*sets the title of the new project to what the user entered in the Gravity Forms field with ID 1. See above for instructions on how to get the ID of each Gravity Forms field.

The second part, created-by=”1″ sets the creator of the form to the WordPress user with ID 1 — admin.

So after the Gravity form is submitted, the Action XML above will create a new project, and set the title of that project to whatever the user entered in the first Gravity Forms field.

You can also enter text, or multiple field values, into any of the attributes. For example, you could change the previous code to this:


<upstream-forms-action>
	<form id="1">
		<project action="create" title="Project [1] by [2]" created-by="1">
		</project>
	</form>
</upstream-forms-action>

This code would create a project like before, but the title would be set differently. It would use the values the user entered in fields ID 1 and 2, and turn them into a string.

For example, if the user entered “Gutenberg” in the field with ID 1, and “Mike” in the field with ID 2, the new project would get the title “Project Gutenberg by Mike”.

Setting Other Project Fields

You will obviously want to set more than just the project title. For example, you may want to set the description, start date, end date, or owner. To do this, you will add a *<field>*tag under the *<project>*tag in your XML.

Here’s an example:


<upstream-forms-action>
	<form id="522">
		<project action="create" title="[1]" created-by="1">
			<field name="assignedTo" value="[15]"></field>
			<field name="status" value="[5]"></field>
			<field name="startDate" value="[2]"></field>
			<field name="endDate" value="[3]"></field>
			<field name="description" value="[7]"></field>
			<field name="clientId" value="[8]"></field>
		</project>
	</form>
</upstream-forms-action>

Each of the field tags in the XML set the value of an individual project field. For example, the XML causes UpStream to set the description of the new project to whatever the user entered in your Gravity Forms field with ID 7.

You can find a full list of fields below.

Some fields, such as status or startDate/endDate require special setup in Gravity Forms in order to work. We will explain how to do that in a later section.

Adding Tasks, Milestones, Bugs, and Files

You can add tasks, milestones, bugs, and files to projects by adding tags under the <project> tag in your XML.

Here’s a simple example that creates a task, milestone, and bug in a project.


	<form id="522">
		<project action="create" title="[1]" created-by="1">
			<field name="assignedTo" value="[15]"></field>
			<field name="status" value="[5]"></field>
			<field name="startDate" value="[2]"></field>
			<field name="endDate" value="[3]"></field>
			<field name="description" value="[7]"></field>
			<field name="clientId" value="[8]"></field>
			<milestone action="create" title="[11]" created-by="1">
				<field name="description" value="[19]"></field>
			</milestone>
			<task action="create" title="[20]" created-by="1">
				<field name="notes" value="[26]"></field>		
			</task>			
			<bug action="create" title="[31]" created-by="1">
				<field name="description" value="[35]"></field>		
			</bug>
		</project>
	</form>

With this code, when the Gravity Forms form with ID 522 is submitted, a new project is created with a task, milestone, and bug.

The task name/title is set to what the user entered in the Gravity Forms field with ID 20. The task notes are set to whatever the user entered in the Gravity Forms field with ID 26.

A bug is created, with the bug title set to the Gravity Forms field with ID 31. The bug description is set to the Gravity Forms field with id 35.

And a milestone is created with the title set to Gravity Forms field 11, and the description set to Gravity Forms field 19.

Gravity Forms Field Types With UpStream Forms

There are a few things you need to know when building your form for UpStream Forms.

Many of the fields can transfer directly over to UpStream, but certain fields require special handling. Please read the following to ensure that you setup your form correctly.

Date Fields

If you add a Date field to your form, you need tomake sure that the “Date Format” is set to “yyyy-mm-dd”.

To add a date field, you must set the Date Format to yyy-mm-dd

To add a date field, you must set the Date Format to yyy-mm-dd

Dropdown/Multiple Choice/Checkbox Fields

What you enter in dropdowns, multiple choice fields, or checkbox fields must match the value you set for a field in UpStream. This depends on the type of field you’re trying to set in UpStream:

UpStream Assigned User/Owner

You have three different options to set the assigned user or owner of a project, task, file, or bug.

To set the assigned user/owner by the WordPress user ID, you will need to enter integer user IDs in the second box under the “Choices” setting in Gravity Forms. In order to do this, you first need to check “Show Values” (see the red box in the image below).

Then, under “Choices”, enter the person’s name in the first box, and their user ID in the second box.

You can see an example below:

You must set the values properly when creating dropdowns, checkboxes, etc.

You must set the values properly when creating dropdowns, checkboxes, etc.

When you create your XML, you can refer to this field like this (change the number 4 to the ID of your field):

<field name=”assignedTo” value=”[4]”></field>

To set the assigned user/owner by email, do the same thing as above, except enter email addresses in the second boxes under the “Choices” setting in Gravity Forms.

To set the owner or assigned user by email, you can enter the email in the second box in Gravity Forms.

To set the owner or assigned user by email, you can enter the email in the second box in Gravity Forms.

Once you have created the field, you can refer to it in the XML like this (change the number 4 to the ID of your field) :

<field name=”assignedTo:byEmail” value=”[4]”></field>

To set the assigned user/owner by WordPress username, you can enter that in the second box under “Choices” in Gravity Forms.

To set the assigned user by username, you can enter that in the second field.

To set the assigned user by username, you can enter that in the second field.

You can reference that field in the XML like this (change the number 4 to the ID of your field) :

<field name=”assignedTo:byUsername” value=”[4]”></field>

UpStream Project Client ID

In UpStream, you can find client IDs by going to your WordPress dashboard and then going to Projects -> Clients. In the table, you will see the ID for each client.

To set a client ID for a project via a Gravity Forms form, you will need to enter integer client IDs in the second box under the “Choices” setting in Gravity Forms. In order to do this, create a dropdown or radio field. Then check “Show Values”.

Finally, enter the client name in the first box and the client ID in the second box for each option in the “Choices” section:

image

You can then reference the field in the XML like this (change the number 4 to the ID of your field):

<field name=”clientId” value=”[4]”></field>

UpStream Status

To create project, task, or bug status fields in Gravity Forms for use with UpStream, you can do the following.

First, go to Gravity Forms and create a dropdown or radio button field (don’t use a checkbox, since you can’t have multiple statuses). This time, make sure “Show Values” is not checked.

Next, go to your WordPress dashboard, and then go to UpStream -> Projects (or tasks, or bugs). On that page, you will see status options. You can see the page below:

Setting status options in UpStream for use with forms

Setting status options in UpStream for use with forms

For each status, copy the text under “Status Name”. Then, go to Gravity Forms, and in the “Choices” box, enter the copied text. See below for an example:

Setting up status with forms

Setting up status with Gravity Forms

UpStream Bug Severity

To create a bug severity fields in Gravity Forms for use with UpStream, you can follow a similar procedure as above.

First, go to Gravity Forms and create a dropdown or radio button field (don’t use a checkbox, since you can’t have multiple severities). Make sure “Show Values” is not checked.

Next, go to UpStream and go to your WordPress admin, then UpStream -> Bugs. Scroll down, and you will see severity options.

Setting values for bug severity in UpStream for use with forms

Setting values for bug severity in UpStream for use with forms

For each option, copy the text under “Severity Name” into your “Choices” section in Gravity Forms.

Color Fields

To set a color field via a Gravity Forms form, you will need to create a dropdown or radio button field.

Then, you can enter a hex color definition (example: #FF00FF) in the second box under the “Choices” setting in Gravity Forms. In order to do this, create a dropdown or radio field. Then check “Show Values”.

Finally, enter the color name (or however else you want to describe the color) in the first box and the hex color in the second box for each option in the “Choices” section.

Project and Milestone Categories

Unlike WPForms, Gravity Forms does not allow for taxonomy fields. So you cannot auto-populate categories for projects or milestones.

Therefore, in order to create category or tag fields, you will need to manually enter category/tag names and IDs into your form. Use the instructions above for standard dropdowns in order to do this.

Adding a category field using Gravity Forms, you must enter category IDs in the value section

Adding a category field using Gravity Forms, you must enter category IDs in the value section

After creating the field, use it in your UpStream Forms XML just as you would use any other field, using the field name categoryIds.

Attaching A Task To A Milestone

You can attach a milestone to a task by setting the milestoneId field of the task. This can be done in multiple ways.

If you have an existing milestone, and you want to attach a new task to it, you can set the milestoneId field just like you would set any other field. For example, you could create a dropdown or multiple choice field with the milestone ID as the value.

You can also use references, which are explained next.

Continue to Part 2 — References, Editing & Custom Fields.