Picture this. A new client signs up, and your team needs a ClickUp task for the onboarding. Not just any task: the one that already comes with the standard subtasks, checklists and instructions you saved as a task template. If GoHighLevel simply makes a blank task, someone still has to rebuild the structure by hand, and that is exactly the kind of chore you automated to avoid.
Here's the good news. There is a way to do it, using a Custom Webhook in your GoHighLevel workflow to ask ClickUp to build the task from your template. We'll walk through it the way we'd explain it over a coffee: what's happening, why each step matters, and where people usually get stuck.

Can GoHighLevel Create a ClickUp Task From a Template?
Not with a ready-made action, as far as HighLevel's documentation shows. HighLevel's page on ClickUp actions (ClickUp - Actions & Triggers in Workflows, updated 11 March 2026) lists 18 actions you can use in a workflow, including Create Task, Update Task, Archive or Delete Task, Create List, Post Task Comment and Find Task by ID. None of them applies a task template. The Create Task action's documented fields are the name, due date and assignee.
That matches what a lot of people run into. Creating a normal task is easy. Creating a task from a template is a different request, and the native integration doesn't list it. We'd say "as of that page," because HighLevel adds features regularly, so it's worth a quick look at the action list in your own account before you build anything.
What's the difference, really? A blank task has a name and whatever you type into it. A task made from a template arrives with the structure you saved: subtasks, checklists, a description, custom fields and more, depending on what you included (ClickUp's task template help). ClickUp's own API has a request for exactly this, and that's the one we'll call.
One possible shortcut worth testing first. ClickUp lets you set a default template for a List so it applies to every new task created there, and you can also use a ClickUp Automation to apply a template when a task is created (ClickUp's task template help). If that also applies to tasks created by HighLevel's regular Create Task action, you may not need a webhook at all. ClickUp's page doesn't say whether it does, so test it with one dummy task. If it works, you've saved yourself the rest of this guide. If it doesn't, read on.
How Does the Template Automation Work?
Five steps, and only two of them are yours to build.
Diagram: Five-step flow. 1. GoHighLevel workflow triggers (form, stage change, appointment...). 2. Custom Webhook action — POST request with your ClickUp token and a task name. 3. ClickUp API builds a new task from your template in the list. 4. ClickUp replies (success or an error message). 5. HighLevel saves the reply (if 'Save response' is on) and later steps can use it.
- Something happens in GoHighLevel (a form is submitted, an opportunity moves stage, an appointment is booked) and your workflow starts.
- A Custom Webhook action sends a request to ClickUp. A webhook is just a way for one app to send a message to another over the internet. Ours is a POST request, which is the kind of request that means "please create something."
- ClickUp's API receives it. An API is the front door ClickUp offers to other software. The request says which list, which template and what to call the new task.
- ClickUp creates the task from your template and replies with either a success message or an error.
- If you turn on Save response, HighLevel keeps that reply so later steps can use it, for example to remember the new task's ID.
What Do I Need Before I Start?
- A HighLevel account where you can build workflows.
- A ClickUp account that can reach the list where the new tasks should appear. Whoever's token you use must be able to access that list.
- An existing task template in ClickUp.
- A ClickUp personal API token (we'll get it in a moment).
- Two IDs: the template ID and the list ID. Most of the fiddly work in this guide is finding these.
- A test list and a test template, so your first run doesn't create real tasks for real people.
Check one more thing: a mirror of HighLevel's help describes Custom Webhook as a Premium workflow action, and HighLevel's own page doesn't state pricing. Look at your billing settings so a test run doesn't surprise you. The native ClickUp actions can also be billed as premium.
How Do I Find My ClickUp Task Template ID?
This is the step the original video called out, and it's fair: ClickUp doesn't show a template's ID on the template itself. ClickUp's reference for the request we'll use says the template ID is required but doesn't say where to find it. Here are the two ways we found, safest first.
The safer way: ask ClickUp's API for your template list
ClickUp has a documented request that lists the task templates in a Workspace (Get Task Templates). It looks like this:
GET https://api.clickup.com/api/v2/team/{team_id}/taskTemplate?page=0
Authorization: YOUR_CLICKUP_API_TOKENteam_idis your Workspace ID (ClickUp's API still calls a Workspace a "team").- The
pagesetting is required. We'd start with 0, the usual first page. ClickUp's page doesn't spell out the starting number, so if you get nothing back, try 1. - ClickUp's page doesn't show the reply format. Expect a list of templates with names and IDs, and look for the name of yours.
You can send this from a free tool like Postman or from a developer's terminal. If that sounds like too much, a developer or whoever manages your ClickUp can do it in a couple of minutes. The big plus: it never makes your template public.
The shortcut: read the ID from a share link (and why we'd be careful)
The video's method works like this: open the template in ClickUp's Template Center, click Share, switch on public sharing, copy the link and pull the ID out of it (ClickUp: Share a template). ClickUp staff and users mention the same trick on ClickUp's feedback board, where they describe the ID as a code starting with t-, and note that the only documented way to list IDs is the request above (ClickUp feedback). A Make community thread suggests the sharing can be switched off again afterward, since you only need it to read the ID (Make community).
Why we'd be careful. A public link means anyone who has the link can open the template, even people outside your Workspace, and they can save their own copy (ClickUp: Share a template, ClickUp: public versus internal links). Your onboarding template might include internal steps, client names or attachments you wouldn't want out in the world. If you use this method:
- Use it on a test template if you can.
- Copy the link, note the ID, and switch public sharing off straight away in the same Share window. ClickUp's page I read doesn't describe the off switch, so check it's really off.
- Don't paste the link in chats, tickets or screenshots.
Public sharing isn't necessary for the automation itself. It's only a way to read the ID. ClickUp also launched internal-only template links in April 2026, which don't create a public link (ClickUp feedback), but we couldn't confirm that those links contain the ID, so we're not relying on them.
How Do I Find My ClickUp List ID?
The list ID tells ClickUp where the new task should go. ClickUp says it must be a number. People mix it up with the Workspace, Space, Folder and task IDs, which all look similar.
- Open the list in ClickUp, the actual list, not a folder or space.
- Look at the address in your browser. A third-party help article (Elatly) describes the pattern as the following, where the list ID is the number right after /v/li/:
https://app.clickup.com/1234567/v/li/9876543 ^ Workspace ID ^ List ID (fictional numbers)
The first number (before /v/) is your Workspace ID. In the example, the list ID would be 9876543. ClickUp's own pages we read don't give this URL layout, so after you build the automation, a test run is your proof that it's right. If it creates the task in the wrong place, or you get a "not found" error, recheck this number first.
How Do I Create a ClickUp Task From a Template With a Custom Webhook?
Now the main build. Do it in a test workflow first. Where we describe HighLevel's screens, we're using labels from HighLevel's help page for the action (Workflow Action - Custom webhook, updated 11 December 2025). Yours may look slightly different.
Step 1: Add the Custom Webhook action
Open your workflow, add an action and choose Custom Webhook. Put it where you want the task created, such as right after a form submission or a stage change.
Step 2: Choose the method and enter the URL
Choose the CUSTOM event and set the method to POST. This matters. HighLevel's page says the CUSTOM event gives you the method, the Content-Type and a Raw Body editor for JSON, while the POST event shows a simple key-and-value form without a Raw Body editor. We want to send JSON, so use CUSTOM.
Enter this address, swapping in your own IDs (the endpoint comes from ClickUp's reference):
https://api.clickup.com/api/v2/list/YOUR_LIST_ID/taskTemplate/YOUR_TEMPLATE_ID
Read it left to right: "In this list, using this template, create a task." ClickUp lists both IDs as required.
Step 3: Add ClickUp authorization
ClickUp needs to know who is asking. Create a personal API token: click your avatar in ClickUp, go to Settings, then Apps, then under API Token choose Generate (ClickUp authentication). It starts with pk_. Copy it somewhere safe.
Here's the detail that trips people up. ClickUp wants the token on its own in the Authorization header, with no "Bearer" in front of it. HighLevel's Bearer Token option sends the word "Bearer" first, so don't use it for this.
HighLevel's page doesn't say which of its options sends a plain Authorization value. The safest approach we can see from its description is to choose No auth and add a header manually, as in the next step. If your account offers a better-fitting option, test it with a dummy run.
Protect that token. It acts as you in ClickUp, ClickUp says personal tokens never expire, and it's meant for individual or testing use. So:
- Never put it in the body, the URL or a screenshot. HighLevel's page also advises keeping secrets out of query strings.
- Think about using a dedicated ClickUp user with access to only the lists the automation needs (that's our recommendation, not a ClickUp requirement).
- If it's ever exposed, regenerate it in the same Settings screen and update HighLevel.
Step 4: Add the headers
Add two headers:
| Header name | Value | Why |
|---|---|---|
| Authorization | YOUR_CLICKUP_API_TOKEN (no Bearer) | Proves who's asking |
| Content-Type | application/json | Tells ClickUp the body is JSON |
Step 5: Build the JSON body
The body is the information you send. ClickUp's reference lists exactly one body field, name, and marks it required. Nothing else is listed on that page, so don't assume other fields will work:
{
"name": "Client onboarding: <contact name from the picker>"
}JSON in plain English: curly braces wrap the whole message, the field name goes in quotes, then a colon, then the value in quotes. A missing quote or comma is the most common reason a request fails.
Step 6: Insert dynamic GoHighLevel values
To personalize the task name, use the tag icon next to the body field to open HighLevel's dynamic value picker. Don't type merge fields from memory. HighLevel's page shows examples like {{contact.id}} and {{contact.email}}, and the picker is the reliable way to see what your workflow offers (a contact name, an opportunity name and so on depend on the trigger you used). Insert the value inside the quotes, so the body stays valid JSON.
Step 7: Turn on Save response
Switch on Save response from this Webhook if you see it. HighLevel's page says it's available "if available in your account." We'll use it in the next section.
Step 8: Save the action and test
Click Save Action first, because HighLevel's page says to save before testing. Then use Test Workflow in draft mode with a test contact, and look at the Execution Logs to see whether the action ran and what status came back. A successful ClickUp request returns a 200 status. Then open your test list and check the task appeared, was named as expected and looks like the template.
Check the subtasks specifically. ClickUp's reference page doesn't say that the API copies a template's subtasks, checklists and other pieces the way "Use Template" does inside the app. Compare your new task to the template. If something is missing, that's valuable to know before you go live.
Want to test outside HighLevel first? A developer can try the same request with a command-line tool (swap in your own test values):
curl -X POST "https://api.clickup.com/api/v2/list/YOUR_LIST_ID/taskTemplate/YOUR_TEMPLATE_ID" \
-H "Authorization: YOUR_CLICKUP_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Test task from template"}'How Do I Use the New ClickUp Task ID Later in the Workflow?
Why bother? Because the task ID is the handle for that exact task. If you store it, later steps (or later workflows) can find, update or comment on the right task instead of guessing.
What does ClickUp send back? The reference page shows a 200 status and an example, but it doesn't list the reply's fields. Plan to look at the real reply from your test run in the logs and find the task's ID there.
How does HighLevel let you use it? This is where we have to be straight with you: HighLevel's help page mentions the Save response toggle but doesn't explain how to reference saved values afterwards. One third-party guide (HL Growth Partner) describes saving the response and then using an Update Contact Field action to write values into custom fields. We couldn't confirm the details in official documentation, so treat this as a way to try, not a promise:
- Create a custom field (for example, "ClickUp Task ID") on the contact, or on the opportunity if that suits your process.
- Run your test so the response is saved.
- Add an action that updates that field, and open the value picker. If the saved response values show up there, choose the task ID.
- If you can't find them, don't force it. The response is also visible in the logs, and a developer can help map it.
Once an ID is stored, HighLevel's native ClickUp actions Find Task by ID, Update Task, Post Task Comment and Archive or Delete Task become useful (action list). We haven't confirmed that each one accepts a stored ID in its task field, so check that when you build.
Why Isn't My ClickUp Task Being Created?
Start with the Execution Logs and the status code, then match it here. The status code meanings come from HighLevel's page. The ClickUp-specific causes are our reading of the docs, so confirm against the actual error text.
| What you see | Likely cause | What to check | What to try |
|---|---|---|---|
| 401 | Missing or wrong token, or the wrong header format | Header name and value; is 'Bearer' there? | Remove 'Bearer', paste the token again, regenerate if needed |
| 403 | The token's user can't access that list or Workspace | Can that user open the list in ClickUp? Was the token made in the right Workspace? | Give the user access or use a token from the right Workspace |
| 404 | Wrong list ID, wrong template ID, or the template is gone or not available | Compare both IDs; open the template in ClickUp | Fix the IDs; confirm the template is in your Workspace |
| 400 or 422 | Invalid JSON or an unsupported body field | Quotes, commas, braces; only 'name' is documented | Paste the body into a JSON checker; remove extra fields |
| 429 | Too many requests in a minute | How many runs fired at once? | Add a Wait step; run in batches. ClickUp limits are per token: 100 a minute on Free Forever, Unlimited and Business; 1,000 on Business Plus; 10,000 on Enterprise (ClickUp rate limits) |
| 5xx | A problem on ClickUp's side | Does it pass later? | Retry later. HighLevel's page doesn't document automatic retries |
| Task made, subtasks missing | The API may not copy everything the app does (not confirmed) | Compare the task to the template | Test other templates; ask ClickUp support |
| Success, but no task where you expected | Wrong list ID | Search the Workspace for the task name | Recheck the list ID |
| Two tasks for one client | The workflow ran twice | Check the contact's workflow history | Add a guard (see limits below) |
| Saved response missing | The toggle isn't in your account, or the values aren't mapped | Is Save response on? What does the picker offer? | Re-test; check the logs for the reply |
| Body ignored or error about format | Used the POST event form instead of CUSTOM, or the wrong Content-Type | Event type and Content-Type | Use CUSTOM with Content-Type application/json |
HighLevel also has no preview mode for this action. Its troubleshooting guidance suggests a dummy contact with known values and a mock endpoint such as Webhook.site when you want to inspect exactly what is being sent (a HighLevel help mirror).
What Are the Limits of This Approach?
- It depends on ClickUp's API. If ClickUp changes the request, this stops working until you update it. Re-test it after any ClickUp or HighLevel change that affects it.
- Credentials need care. A personal token acts as one person and doesn't expire. If that person leaves your Workspace or loses access, the automation can break.
- Permissions matter. The task is created with that user's access.
- Rate limits apply. Bulk runs can hit ClickUp's per-minute limits.
- Template changes can surprise you. Delete or rename a template and the request can fail.
- Response use is limited by documentation. See the section above.
- Duplicates are your job to prevent. HighLevel's pages don't describe a built-in guard. One approach we'd consider: store the task ID in a field, and before the webhook, add an If/Else step that skips it when the field already has a value. That's our recommendation, not a documented feature, so test it.
- It needs maintenance. Treat it as a small piece of software: name it clearly, note who owns it and recheck it now and then.
Where Is This Automation Useful?
| Situation | What triggers it | What the template holds |
|---|---|---|
| New client onboarding | A signed form or a new client tag | Kickoff, access requests, setup checklist |
| Sales-to-delivery handoff | An opportunity moving to a won stage | Delivery tasks and a briefing checklist |
| New project creation | A form with project details | Standard phases as subtasks |
| Appointment-to-service workflow | An appointment booked or completed | Prep and follow-up tasks |
| Internal fulfillment and operations | A tag or status change | A repeatable fulfillment checklist |
These are illustrations of where the pattern fits, not customer results. HighLevel's page says any workflow trigger can be used with a Custom Webhook, so your trigger is up to you.
Frequently Asked Questions
Can GoHighLevel natively create a ClickUp task from a template?
HighLevel's ClickUp actions page (11 March 2026) lists 18 actions and none applies a template. Check your account's action list, since it can change.
What is the ClickUp API endpoint for creating a task from a template?
POST https://api.clickup.com/api/v2/list/{list_id}/taskTemplate/{template_id}, per ClickUp's reference. The body requires a name.
Do I need to make my template public?
No. Public sharing is only a shortcut for reading the ID. ClickUp's Get Task Templates request lists templates without making any public.
Where do I find the template ID?
Use ClickUp's Get Task Templates request, or read it from a share link and switch public sharing off straight away.
Which authorization header does ClickUp use?
Authorization: followed by your personal token, with no "Bearer," per ClickUp's authentication page.
Will subtasks and checklists come across?
ClickUp's API page doesn't say. Test with your template.
Can I send more than a name in the request?
ClickUp's page lists only name. Don't assume others are supported.
Does it cost extra?
A mirror of HighLevel's help calls Custom Webhook a Premium action. Check your billing.
Is there a rate limit?
Yes, per token per minute, depending on the ClickUp plan (100 to 10,000).
What Should I Do Next?
Make a test template and test list, grab the two IDs, build the webhook, and run one dummy contact through it. Check the task, the subtasks and the saved response. Once that all behaves, switch it to your real list. For the basics of connecting the two tools first, our guide to connecting ClickUp to GoHighLevel covers the native setup, and for the workflow side, how to set up GoHighLevel workflow automation is a good companion.
If you'd rather not write this up yourself, that's what our GoHighLevel integrations and workflow automation services are for. No pressure, though: this guide should get you most of the way on its own.
Still have questions about creating ClickUp tasks from templates using GoHighLevel?
Talk to our GHL experts directly. We're here to help.
Make a test template and test list. Build the webhook. Run one dummy contact through it.
GHL Scale Up implements GoHighLevel for agencies and service businesses. If you'd rather not write this up yourself, our integrations and workflow automation services are for it.
Book Your Free Call
Prepared 4 November 2026. HighLevel and ClickUp pages read 4 November 2026. This guide comes from reading ClickUp's and HighLevel's own documentation closely and working out the safest way to put the two together. We haven't run this exact setup in a live ClickUp workspace for this article, and a few details are not spelled out in the official docs. Please try it on a throwaway template in a test list first.
ghlscaleup.com