ClickUp + ServiceM8 + n8n Automation Build — Job Management System for Trades Business

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Gig

SALARY

$6-$10 / HOUR

HOURS PER WEEK

35

DATE UPDATED

Aug 17, 2026

JOB OVERVIEW

**ClickUp + ServiceM8 + n8n Automation Build — Job Management System for Trades Business**

We're a tiling contracting company in New Zealand looking for an experienced n8n automation specialist to build an integration between ServiceM8 (job management) and ClickUp (VA task/workflow system).

**The architecture:**
- ServiceM8 = source of truth for all customer/job data (quotes, invoices, scheduling, client comms)
- ClickUp = internal workflow/task system for our virtual assistant — no customer data duplication
- n8n = automation layer connecting the two

Full spec (statuses, fields, templates, workflow logic, dedup rules) is written and ready to hand over — this is implementation, not design work.

**Scope:**
1. Build ClickUp workspace: 8-stage job lifecycle, ~20 custom fields, task templates (core job checklist, closeout checklist, optional add-ons for UFH/council/PS3), views, and native ClickUp automations
2. Build 9 n8n workflows connecting ServiceM8 ? ClickUp:
- Create/update ClickUp job when ServiceM8 job becomes a Work Order (with strict duplicate prevention keyed on ServiceM8 Job UUID)
- Sync core job fields (status, address, start date, etc.)
- Move job to "In Progress" on first site visit
- Auto-generate daily task checklist while job is in progress (deduped by date)
- Move job to "Closeout" when marked Completed in ServiceM8
- Mirror invoice-sent and payment-received status
- Create 6-month follow-up reminder on completion
- Visible error handling (no silent failures, no leaked credentials/data)
3. Test and validate — replay/duplicate-safety testing is mandatory, not optional

**Requirements:**
- Proven experience with n8n (show us workflows you've built)
- Experience with ServiceM8 API/webhooks specifically, or strong general REST API/webhook integration experience
- Experience with ClickUp API, custom fields, and automations
- Comfortable working from a detailed written spec and flagging issues rather than guessing
- Strong on idempotency/duplicate-prevention — this is critical, not a nice-to-have

**What we'll provide:**
- Full written specification (architecture, field lists, workflow logic, status definitions, test cases)
- ServiceM8 and ClickUp account access
- Direct point of contact for questions during the build

**Structure:** We'd like to start with a fixed-price milestone covering the ClickUp build + the first (and most critical) n8n workflow, tested and proven, before committing to the full build.

**Timeline:** Estimated 35–55 hours total. Please quote your rate and estimated timeline for the first milestone.

To apply, please include:
- 1–2 examples of similar integration work (ServiceM8, ClickUp, or comparable job-management/CRM systems)
- Your hourly rate or fixed-price approach
- Any questions about the spec before we share full details

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0015
Controller Execution Time ( Jobseekers / Job )  0.0272
Total Execution Time  0.0299
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,503,480 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/ClickUp-ServiceM8-n8n-Automation-Build-Job-Management-System-for-Trades-Business-1710514
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0095 seconds)  (Hide)
0.0005   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0007   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1710514
 LIMIT 1 
0.0007   SELECT *
FROM `employers`
WHERE `employer_id` = 836175
 LIMIT 1 
0.0010   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1710514
AND `misc`.`idIS NULL 
0.0007   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-09-02',ej.date_added) duration_daysDATEDIFF('2026-09-02',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-09-02',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1710514' 
0.0005   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1710514 
0.0013   UPDATE employer_jobs SET hit_counts '***Aug-17-2026=1113***Aug-18-2026=139***Aug-19-2026=70***Aug-20-2026=53***Aug-21-2026=19***Aug-22-2026=8***Aug-23-2026=7***Aug-24-2026=13***Aug-25-2026=14***Aug-26-2026=4***Aug-27-2026=10***Aug-28-2026=2***Aug-29-2026=4***Aug-31-2026=1***Sep-02-2026=1' WHERE job_id'1710514'  
0.0016   UPDATE employer_jobs SET monthly_hits '***Aug-2026=1456***Sep-2026=1' WHERE job_id'1710514'  
0.0009   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1710514' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1710514 
0.0006   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '836175'
AND `date_added` >= '2022-06-08' 
0.0004   select from teasers 
0.0003   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)