Create a simple task template first
Before jumping into automation, the most underrated step is just creating a basic task template in ClickUp with everything pre-filled. Seriously. I used to think, “Meh, I’ll just zap everything in. Who needs templates?” But the more I automated, the messier it got — tasks were missing deadlines, assignees, or even the main description. My automations weren’t broken, they just had nothing solid to work with 🫠
So here’s exactly what I do now: I make a task in ClickUp with a clear title (like “[New Hire] Welcome Email”), then set the priority, assignee, due date (keep this relative like “1 day after creation”), a status (not Started), and — this is a big deal — a checklist or custom fields if the task needs milestones. I save that as a template.
ClickUp lets you name the template so I prefix it with something obvious like “Template_” to avoid confusion when searching for it from automation later. And yep, I’ve definitely pulled the wrong one before 😑
Field | What to set in the template |
---|---|
Title | Include dynamic label placeholders like [Client] or [Date] |
Status | Keep it at initial stage (e.g., To Do) |
Assignee | The default person or role, not just yourself |
Checklist | Add subtasks or key steps if process-driven |
Templates are not glamorous, but if you skip this part, everything downstream gets fuzzy. Trust me — I tried skipping it again last week and I’m still finding orphaned tasks floating around 😬
Trigger from form submissions or Slack
Most people start task creation from inside ClickUp directly, which is fine, but what really unlocked it for me was connecting form submissions or Slack messages to task creation. I use Typeform for incoming requests and also a dedicated Slack channel called #task-requests where people drop chaos, I mean tasks 😅
In Zapier, this setup is super basic conceptually but has little gotchas:
– Trigger: Typeform submission or new Slack message in channel
– Action: Create task in ClickUp using template
The annoying part? Zapier doesn’t let you pick a ClickUp template in the basic “Create Task” action.
So you have two options:
1. Use “Custom Task Creation” by pre-filling all settings in the Zap — fragile but works.
2. Switch to ClickUp’s built-in Automations (inside ClickUp itself) which does let you use templates *but* only as part of internal task activity (like when a task is moved).
That means: if your input is coming from outside ClickUp (like Typeform or Slack), you’re stuck loading the template manually by mimicking it. My workaround? I map form fields like this:
– Title ➝ “/[Client Name]/ Initial Setup Task”
– Assignee ➝ Me or a Round Robin technique using Zapier Paths
– Checklist Items ➝ Skipped them for now, they fail silently if format isn’t perfect
Yes, it’s irritating 😐 but at least it gets the task into ClickUp.
Add automatic due dates using field logic
If you’re used to calendar scheduling tools where you just choose a time and boom, you’re done — ClickUp’s date handling through automations will probably trip you up the first five times. I kept setting up automations thinking “Cool, I’ll just add 3 business days to today,” only to get wrong dates or nothing at all.
Here’s what works reliably now:
– In Zapier: Use their built-in Formatter tool → Date/Time → Add/Subtract Time
– Input: {{zap_meta_human_now}} ← this is just “right now”
– Modify: +3d or +2h depending on which makes sense
Then feed that formatted date into the Due Date field of the task creation step. That’s it.
But two very annoying things I ran into:
1. Business days don’t exist here — “+3d” adds calendar days, so watch for weekends 🙁
2. Dates with timestamps (e.g. “2024-04-13T15:00:00Z”) occasionally get rejected by ClickUp if you mess up the format
So I always use this format setting in Zapier: “MM/DD/YYYY hh:mm AM/PM”. It seems the most stable.
In native ClickUp automations (like “When status changes to X”), you can’t manipulate the date at all. It only allows static due date shifts like “+2 days from trigger,” so I use those only when exact relative shifting is okay.
Assign automatically based on dropdowns
This one took a weirdly long time to troubleshoot because it works fine with test data but breaks (quietly) in real submissions.
I had a Typeform with a question like “Who should this task go to?” with options like:
– Marketing
– Design
– Engineering
The dropdown maps to a field, and I used a Zapier Paths step to assign tasks based on the answer.
Here’s how my Path logic looks:
– If response = “Marketing” → Creator = @Sarah
– If response = “Design” → Creator = @James
– If no match → fallback task to me
But here’s where it bit me 😵
If the form submits slightly different strings — like “Marketing ” (with trailing space) or lowercase “design” — the Zap tries to evaluate it but fails the condition silently. It doesn’t error out but just doesn’t assign to anyone. So now I always use a Formatter step (Text → Capitalize + Trim whitespace) before the conditional Paths.
Also important: ClickUp sometimes doesn’t recognize the Zapier user’s email as a valid assignee unless that person has been added to every relevant space. You end up with “User not found” errors.
An alternate way I’m experimenting with (when the dropdown options are stable) is assigning by Custom Field Team and attaching an automation inside ClickUp:
When Custom Field changes to “Design Team” → Assign to James.
This feels way more stable but then you lose control from outside forms.
Set up a visual board tracking progress
Once the automation works, the big unanswered question becomes “Wait… where are all these tasks going?” 🙃 I had tasks routing to the correct folders but never checking them because they weren’t visible.
So I now always make a Board view in ClickUp tied directly to the status or team field. That way, I can just leave the tab open and drag stuff around.
Here’s what my basic setup looks like:
– View Type: Board
– Group By: Status (To Do, Doing, Waiting, Done)
– Filter: Only tasks matching the current sprint tag or delivery week
Helpful tip: Save this view and pin it. Don’t rely on “Me Mode” because if someone else looks, the filters reset. I learned this the hard way when someone said “I marked it done last week” and I thought the task had vanished 😑
You can also create Dashboards, but I honestly avoid it unless I need charts. Just make a shared board view for each team and treat it like a real kanban wall.
Use automations to update statuses on checklist completion
This probably saved me the most back-and-forth asking: “Is this done yet?”
Once you start relying on task templates with checklists (which you should), there’s a real trigger in ClickUp’s native automation builder that says:
Condition: When all items in checklist are complete
Then: Change status to “Done”
It works. Except it doesn’t work if someone checks the box outside the ClickUp desktop browser. In my experience (and yes, I filed a bug on this), mobile app or email-integrated checklists somehow don’t always push the event that ClickUp listens for.
So the safe version:
1. Use the automation for checklist logic,
2. But ALSO have a fallback button or dummy dropdown field like “Ready To Deliver” that people click manually.
You can then build a second automation:
Condition: When field changes to Ready
Then: Move to Done, notify assignee
Yeah it’s clunky, but having the double mechanism means you’re less likely to accidentally leave a finished task in the wrong column 🙂
Track when tasks actually get done
All of this automation works great… until you actually want to know when something was *really* finished, not just marked as Done because someone nudged a status 🙄
ClickUp has a built-in field called “Resolved” or “Done Date” but you can’t always depend on it — depending on how the task was closed (Drag-drop? Automation? Mobile click?), the resolved date may be wrong or missing.
Here’s my personal workaround:
I added a new Custom Field called “Approved On” — it’s a date field. Then I set up an automation:
Trigger: When status changes to Done
Action: Set Custom Field → Approved On → Current date/time
This way, no matter why or how the task ended up Done, I have a clean field tracking actual closure. Bonus: I use this in reporting dashboards to generate throughput charts weekly or monthly.
I’ve compared that with the native “Resolved” date over several months, and yeah — mine is way more consistent 😅