TutorialGravity Forms ClickUp Integration: Create Tasks Without Zapier

You can connect Gravity Forms to ClickUp without Zapier by using GravityWP API Connector and the ClickUp API. In our test, submitting a Gravity Forms task request automatically created a new ClickUp task with the submitted name, requester details, request type, description, and priority.

The workflow also saved data returned by ClickUp back into the original Gravity Forms entry. This included the ClickUp task ID, task URL, task status, and full API response.

In this tutorial, you will build the same Gravity Forms ClickUp integration step by step. You will create the form, generate a ClickUp API token, find your List ID, configure the API request, map Gravity Forms fields to a new ClickUp task, and save the response.

By the end, the workflow will look like this:

Gravity Forms submission → GravityWP API Connector → ClickUp task → returned ClickUp data saved to Gravity Forms

This tutorial follows the exact configuration we tested in August 2026.

What do you need for this Gravity Forms ClickUp integration?

Before you start, you need:

  • A WordPress website
  • Gravity Forms
  • GravityWP API Connector
  • A ClickUp account
  • A ClickUp List where new tasks will be created
  • A ClickUp Personal API Token
  • Permission to edit the Gravity Form

GravityWP API Connector can send GET and POST requests, use Gravity Forms values in request parameters and headers, and map values from an API response back to form fields.

For this test, we used a ClickUp Personal API Token. ClickUp recommends personal tokens for individual or testing use. Apps or integrations intended for other users should use ClickUp’s OAuth flow instead.

Step 1: Create the Gravity Forms task request form

Create a new form in Gravity Forms.

We named ours:

ClickUp Task Request Form

Add these public fields:

FieldGravity Forms field typePurpose
Task NameSingle Line TextBecomes the ClickUp task name
Requester NameNameIdentifies who submitted the request
Requester EmailEmailAdds contact information
Request TypeDrop DownDescribes the type of request
PriorityDrop DownSets the ClickUp priority
Task DescriptionParagraph TextContains the request details

For Request Type, our test form used:

  • Content Request
  • Technical Issue
  • Website Update
  • Customer Support
  • Other

Next, add these fields for data returned by ClickUp:

FieldField type
ClickUp Task IDSingle Line Text
ClickUp Task URLSingle Line Text
ClickUp Task StatusSingle Line Text
ClickUp Task ResponseParagraph Text

Set these response fields to Administrative visibility. Visitors do not need to see data that is only used by the integration.

Gravity Forms ClickUp task request form with task fields and ClickUp response fields
The ClickUp Task Request Form includes customer-facing task fields and administrative fields for storing data returned by ClickUp.

Step 2: Configure the Gravity Forms Priority field

The Priority field needs special values because ClickUp represents its four priorities with integers.

ClickUp uses:

LabelValue
Urgent1
High2
Normal3
Low4

Open the Priority Drop Down and enable:

Show Values

Then enter the values above.

Gravity Forms lets a choice have a user-facing label and a separate stored value. Custom choice values are especially useful when sending form data to external systems.

This means a visitor can select:

High

while Gravity Forms can send:

2

to ClickUp.

Later in the API feed, we will use:

{Priority:6:value}

The :value modifier outputs the stored value instead of the visible choice label.

Your field IDs may be different, so use the merge tags generated by your own form.

Step 3: Create the ClickUp List for incoming tasks

Next, choose where ClickUp should create the tasks.

In our test, we created a List called:

Gravity Forms Requests

You can use an existing ClickUp List instead.

The ClickUp Create Task API requires the ID of the List that will receive the new task. Its endpoint follows this structure:

POST /api/v2/list/{list_id}/task

ClickUp requires list_id in the endpoint and name in the task request body. It also supports properties such as description, priority, status, assignees, dates, tags, and custom fields.

Step 4: Find your ClickUp List ID

Open the List you want to use.

In the ClickUp interface we tested, we could open the List menu and choose:

Copy link

A copied List link looked similar to:

https://app.clickup.com/WORKSPACE_ID/v/li/LIST_ID

The number after /li/ is the List ID you will use in the API Connector feed.

Do not copy our test ID. Use the ID from your own ClickUp List.

ClickUp List menu showing the Copy link option used to find the List ID
Use the ClickUp List menu to copy the List link. The List ID from this URL is used in the Create Task API endpoint.

Step 5: Generate a ClickUp Personal API Token

In the ClickUp interface we tested, go to the ClickUp API settings and open the API tokens section.

Click:

Generate

Copy the token and store it somewhere private.

ClickUp personal API tokens start with pk_ and are sent in the Authorization header of API requests.

ClickUp API token settings with Generate button for a Personal API Token
Generate a Personal API Token from the ClickUp API settings before connecting ClickUp to GravityWP API Connector.

Step 6: Create the ClickUp API connection in GravityWP

In WordPress, go to:

Forms → Settings → API Connector → Add New API Connection

Use:

SettingValue
API NameClickUp API
Slugclickup-api
Base URLhttps://api.clickup.com/api/v2/
Authentication methodNo authentication

The No authentication option can look confusing here.

ClickUp does require authentication. We selected this option because our Personal API Token is added manually to the request’s Authorization header in the feed instead of using API Connector’s OAuth or Basic Auth settings.

ClickUp documents this personal-token format as:

Authorization: {personal_token}

Save the API connection.

GravityWP API Connector settings for connecting Gravity Forms to the ClickUp API
The ClickUp API connection uses the ClickUp API v2 base URL. Authentication is added later through the request header.

Step 7: Create the ClickUp task API feed

Open:

Forms → ClickUp Task Request Form → Settings → API Connector

Create a new feed.

We named ours:

Create ClickUp Task

Use:

SettingValue
API ConfigurationClickUp API
Request MethodPOST
Body formatJSON body
Endpoint URLlist/YOUR_LIST_ID/task
Input typeRegular Field input
Gravity Forms ClickUp API Connector feed using POST JSON body and Create Task endpoint
The Create ClickUp Task feed sends a POST request with a JSON body to the selected ClickUp List.

Replace YOUR_LIST_ID with the ClickUp List ID you copied earlier.

ClickUp’s official Create Task endpoint is:

POST https://api.clickup.com/api/v2/list/{list_id}/task

A POST request is used here because we are creating a new task.

GravityWP API Connector supports POST feeds with JSON request bodies, including values built from Gravity Forms fields.

Step 8: Add the ClickUp Authorization header

Under Headers, add:

Key:

Authorization

For the value, enter your ClickUp Personal API Token.

Conceptually:

Authorization → pk_YOUR_PRIVATE_TOKEN

ClickUp requires the personal token in the Authorization header for this authentication method.

GravityWP API Connector Authorization header for ClickUp with API token redacted
Add the ClickUp Personal API Token to the Authorization header. The token is hidden here for security.

Step 9: Map Gravity Forms fields to the ClickUp task

Under Query String (GET) / Body Parameters (POST), add the request body fields.

We used three ClickUp properties:

Task name

name

mapped to:

{Task Name:1}

Task description

description

For the description, we combined several Gravity Forms values into one ClickUp field:

Requester: {Requester Name (First):3.3} {Requester Name (Last):3.6} Email: {Requester Email:4} Request Type: {Request Type:5} Description: {Task Description:7}

This lets the ClickUp task contain the requester information and actual task details without requiring custom ClickUp fields for this basic workflow.

Gravity Forms task name and description mapped to ClickUp API request fields
Gravity Forms merge tags provide the task name and combine requester details with the task description sent to ClickUp.

Priority

priority

mapped to:

{Priority:6:value}

The final mapping looks like this:

ClickUp propertyGravity Forms value
name{Task Name:1}
descriptionRequester details + request type + task description
priority{Priority:6:value}

ClickUp accepts name, description, and integer priority values when creating a task.

Step 10: Store the full ClickUp response first

Before we mapped individual ClickUp response values, we first captured the complete response.

Set:

API request trigger → On form submission

Then enable:

Store full response

Select:

ClickUp Task Response

This is a useful way to test an unfamiliar API because it lets you see the actual JSON ClickUp returned before deciding which properties you want to save.

GravityWP recommends this same approach for testing: trigger the request on submission, store the full response, inspect it in the Gravity Forms entry, and then determine the response paths you need.

Step 11: Run the first Gravity Forms to ClickUp test

For our first test, we submitted:

Task Name:
Homepage pricing update

Requester:
Alex Morgan

Request Type:
Website Update

Priority:
Normal

Task Description:
Please update the pricing section on the homepage with the latest package information.

The submission created a new ClickUp task successfully.

ClickUp showed:

  • Task name: Homepage pricing update
  • Priority: Normal
  • Requester details in the description
  • Request Type: Website Update
  • Submitted task description

The full ClickUp response was also stored in the Gravity Forms entry.

That response gave us the exact paths needed for the next step.

Step 12: Map the ClickUp response back to Gravity Forms

Go back to the API Connector feed.

Under Target Fields, add:

Gravity Forms fieldResponse path
ClickUp Task IDid
ClickUp Task URLurl
ClickUp Task Statusstatus/status
API Connector maps the returned ClickUp task ID, URL, and nested status value back into the original Gravity Forms entry.
ClickUp task ID URL and status mapped back to Gravity Forms target fields

Keep:

API request trigger → On form submission

and:

Store full response → ClickUp Task Response

API Connector maps API response values to Target Fields using response paths. Nested JSON properties use / as the separator, which is why the ClickUp status uses:

status/status

If you are not sure which response path to use with another API, GravityWP also provides a JSON response path parser. It can display the available paths from a stored JSON response.

Step 13: Run the final ClickUp integration test

For our final test, we submitted:

Task Name:
Update API Connector documentation

Requester:
Alex Morgan

Request Type:
Content Request

Priority:
High

Task Description:
Please review and update the API Connector documentation with the latest setup details.

The form stored:

Priority: 2

because 2 is the custom Gravity Forms value we assigned to High.

ClickUp correctly displayed:

High

This confirmed that the priority mapping was dynamic rather than hardcoded.

Gravity Forms ClickUp integration test submission with Content Request and High priority
Our final test submits an API Connector documentation request with Content Request type and High priority.

Step 14: Verify the task in ClickUp

Open the task created from the final submission.

Our ClickUp task showed:

  • Update API Connector documentation
  • High priority
  • Requester: Alex Morgan
  • Requester email
  • Request Type: Content Request
  • The submitted task description

The task was created inside our Gravity Forms Requests List.

This confirms that Gravity Forms successfully transferred the mapped form data to the ClickUp API.

ClickUp task created from Gravity Forms with High priority and requester details
The Gravity Forms submission created a ClickUp task with the correct title, High priority, requester information, request type, and description.

Step 15: Check the returned ClickUp data in Gravity Forms

Return to:

Forms → Entries

Open the same submission.

Our final entry contained:

  • ClickUp Task ID
  • ClickUp Task URL
  • ClickUp Task Status
  • Full ClickUp Task Response

The returned task URL gives you a direct link from the Gravity Forms entry to the ClickUp task.

The returned status in our test reflected the status configured in our ClickUp List. Your own value may differ because ClickUp workflows can use different status names.

This is also why storing the full response during testing is useful. You can see what your own ClickUp workspace actually returned instead of assuming every account uses the same configuration.

Gravity Forms entry showing returned ClickUp task ID URL status and full API response
The original Gravity Forms entry stores the returned ClickUp task ID, direct task URL, status, and full JSON response.

What happened in our final test?

In our final test, submitting the Gravity Forms task request created a ClickUp task named Update API Connector documentation.

ClickUp received the requester information, Content Request type, task description, and High priority.

GravityWP API Connector then saved the returned:

  • Task ID
  • ClickUp task URL
  • Task status
  • Complete JSON response

back into the original Gravity Forms entry.

The final workflow was:

Gravity Forms submission → API Connector → ClickUp task → ClickUp response saved to Gravity Forms

Gravity Forms priority value 2 creating a High priority ClickUp task
The final test shows that Gravity Forms stored priority value 2, which ClickUp correctly interpreted as High priority.

What should you check if the Gravity Forms ClickUp integration does not work?

ClickUp does not create a task

Check these settings first:

  • Personal API Token
  • Authorization header
  • ClickUp List ID
  • Request method is POST
  • Endpoint uses list/YOUR_LIST_ID/task
  • Task Name is mapped

ClickUp requires authentication on API requests, and the Create Task endpoint requires both a List ID and a task name.

ClickUp receives the wrong priority

Check the Gravity Forms Priority field.

Make sure Show Values is enabled and use:

Urgent → 1

High → 2

Normal → 3

Low → 4

Then map the field using:

{Priority:FIELD_ID:value}

ClickUp uses these four fixed priority values, while Gravity Forms’ :value modifier outputs the stored value instead of the label.

ClickUp response fields stay empty

Temporarily enable:

Store full response

Then submit another test and inspect the complete JSON response inside the Gravity Forms entry.

Compare the returned JSON with your Target Field paths.

API Connector supports nested paths using /, and the GravityWP JSON response path parser can help identify available properties.

The task is created but the status is different from this tutorial

That does not necessarily mean the integration failed.

Our response returned the status configured in our ClickUp List. Your workspace may use different task statuses.

Check the full response and use the status value returned by your own ClickUp configuration.

Can you connect Gravity Forms to ClickUp without Zapier?

Yes.

The workflow in this tutorial connects Gravity Forms directly to the ClickUp API through GravityWP API Connector. There is no Zap in the tested setup.

The request path is:

Gravity Forms → GravityWP API Connector → ClickUp API

This gives you direct control over the endpoint, request headers, mapped form values, and returned API response.

If you want a broader comparison of ways to connect Gravity Forms with external services, see our guide to Gravity Forms integrations. GravityWP explains when API-based integrations can be useful compared with add-ons, webhooks, and other connection methods.

We are not saying this method is always better than Zapier or another automation platform. The best approach depends on the workflow you need.

Can this ClickUp workflow be expanded?

Yes.

ClickUp’s Create Task API supports more task properties than the three we used here, including:

  • Assignees
  • Status
  • Tags
  • Start dates
  • Due dates
  • Time estimates
  • Sprint points
  • Custom fields
  • Parent tasks and dependencies

We kept this tutorial focused on the fields we actually tested:

name, description, and priority.

If you need a more advanced project-management integration, the same API Connector approach can be expanded after you test the additional ClickUp properties your workflow requires.

For another example of creating project-management records from Gravity Forms, see our Gravity Forms monday.com integration tutorial. That workflow also uses API Connector to turn a form submission into a new item in an external work-management platform.

Create ClickUp tasks from Gravity Forms

You now have a working Gravity Forms ClickUp integration that creates a new task when someone submits a form.

Our tested workflow sent the task name, requester information, request type, description, and dynamic priority to ClickUp. It then saved useful response data back into the original Gravity Forms entry.

The final setup is:

Gravity Forms → API Connector → ClickUp → returned task data stored in Gravity Forms

If you want to build more API-driven Gravity Forms workflows, see the GravityWP API Connector documentation or the API Connector product page. API Connector supports configurable requests, custom headers, multiple authentication methods, and response mapping for other APIs as well.

Frequently Asked Questions

Can Gravity Forms create a ClickUp task automatically?

Yes. In our tested workflow, submitting the Gravity Forms form triggered API Connector, which sent a POST request to ClickUp’s Create Task endpoint. A new ClickUp task was created in the selected List.

Do I need Zapier to integrate Gravity Forms with ClickUp?

No. The method in this tutorial uses GravityWP API Connector and the ClickUp API directly.

What authentication does this ClickUp integration use?

Our test uses a ClickUp Personal API Token in the Authorization request header.
ClickUp recommends personal tokens for individual or testing use. Integrations intended for other users should use OAuth.

How do I send Gravity Forms priority to ClickUp?

Enable Show Values on the Priority Drop Down and assign ClickUp’s numeric values:
1 Urgent, 2 High, 3 Normal, and 4 Low.
Then use the Gravity Forms :value merge tag modifier in the API mapping.

Can ClickUp task data be saved back to Gravity Forms?

Yes. API Connector can map properties returned by the API response into Gravity Forms Target Fields.
In our test, we saved the task ID, task URL, and status. We also stored the complete ClickUp response.

Can I send more Gravity Forms fields to ClickUp?

Yes, if they map to properties supported by ClickUp’s API. ClickUp’s Create Task endpoint supports additional fields such as assignees, dates, tags, status, and custom fields.
This tutorial only documents the mappings we tested.

Proudly powered by WordPress