n8n / API Developer for FieldPulse + CTM + AI Voice Intake Automation

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

TYPE OF WORK

Any

SALARY

N/A

HOURS PER WEEK

TBD

DATE UPDATED

May 17, 2026

JOB OVERVIEW

Project Overview

I am looking for an experienced automation/API developer to build Phase 1 of a field service intake automation system.

This project involves CallTrackingMetrics, FieldPulse, n8n, webhooks, APIs, customer lookup, job creation, alerts, and AI voice intake.

The goal of Phase 1 is not full dispatch or scheduling. The goal is to create a reliable intake system that captures qualified service requests, creates or updates the correct customer/job record, and sends alerts so a human can review and take over.

Phase 1 Scope

The first build should include these modules:

Module 1 — Intake / Webhook Receiver

Receive incoming call/contact/intake data through webhook or API. This may come from CallTrackingMetrics, an AI voice agent, web form, chatbot, or test payload.

The workflow should capture and structure fields such as:

Customer name
Phone number
Service location / city / ZIP
Vehicle or equipment description
Service issue
Urgency
Roadside / safety status if applicable
Lead source / tracking number if available
Call summary or transcript if available

Module 2 — AI Voice Intake Assistant

Set up or integrate an AI voice intake assistant that collects required intake information.

The voice agent must act only as an intake assistant. It should not diagnose, estimate, schedule, dispatch, or promise response times.

The voice agent should identify whether the caller is a qualified service request, out of area, sales/spam, existing customer follow-up, or needs human follow-up.

Module 3 — FieldPulse Customer / Job Record Creation

Use FieldPulse API or approved integration method to:

Search for an existing customer before creating a new one
Avoid duplicate customer records when possible
Create or update customer information
Create a job, lead, or service request record
Attach relevant intake details, notes, call summary, source, and urgency

Module 4 — Alerts and Human Review Output

Send alerts when a qualified service request is received.

Minimum alert output should include:

Customer name
Phone number
City / ZIP / location
Vehicle or equipment
Service issue
Urgency
Roadside / safety status
FieldPulse customer/job link if available
Intake summary
Whether the record was created, updated, or flagged for review

Alerts may be sent by SMS, email, FieldPulse notification, or another agreed method.

Important Rules

This is Phase 1 only. The system should not automatically dispatch technicians, schedule appointments, give price estimates, diagnose mechanical problems, order parts, or promise arrival times.

Human review remains part of the process.

Required Experience

Please apply only if you have experience with some or all of the following:

n8n workflow automation
Webhooks and REST APIs
CRM or field-service software API integrations
Customer lookup before creating new records
Job, lead, or service request creation through API
CallTrackingMetrics, FieldPulse, or similar platforms
AI voice agents such as Vapi, Retell, Twilio, Bland, or similar
Error handling, logging, and workflow documentation

Preferred First Step

I would like to start with a small fixed-price test module before the full build.

The test module should prove that you can receive a sample intake payload, apply qualification logic, check for an existing customer, prepare a FieldPulse-ready record, and send a structured alert.

Please include in your response:

Relevant n8n/API/webhook projects you have built
Whether you have worked with FieldPulse, CallTrackingMetrics, or similar platforms
Whether you have built AI voice intake agents
Your recommended approach for Phase 1
Estimated hours and cost for the first test module

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0161
Total Execution Time  0.0174
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,505,936 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/n8n-API-Developer-for-FieldPulse-CTM-AI-Voice-Intake-Automation-1648998
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0098 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1648998
 LIMIT 1 
0.0008   SELECT *
FROM `employers`
WHERE `employer_id` = 253128
 LIMIT 1 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1648998
AND `misc`.`idIS NULL 
0.0007   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-24',ej.date_added) duration_daysDATEDIFF('2026-08-24',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-08-24',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1648998' 
0.0009   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1648998 
0.0018   UPDATE employer_jobs SET hit_counts '***May-17-2026=305***May-18-2026=239***May-19-2026=45***May-20-2026=20***May-21-2026=15***May-22-2026=11***May-23-2026=4***May-24-2026=7***May-25-2026=17***May-26-2026=7***May-27-2026=3***May-28-2026=8***May-29-2026=5***May-30-2026=1***May-31-2026=8***Jun-01-2026=17***Jun-02-2026=8***Jun-03-2026=12***Jun-04-2026=3***Jun-05-2026=12***Jun-06-2026=4***Jun-07-2026=4***Jun-08-2026=4***Jun-09-2026=4***Jun-10-2026=8***Jun-11-2026=10***Jun-12-2026=10***Jun-13-2026=2***Jun-14-2026=13***Jun-15-2026=7***Jun-16-2026=10***Jun-17-2026=4***Jun-18-2026=5***Jun-19-2026=14***Jun-20-2026=8***Jun-21-2026=3***Jun-22-2026=2***Jun-23-2026=2***Jun-24-2026=9***Jun-25-2026=1***Jun-26-2026=1***Jun-27-2026=2***Jun-28-2026=3***Jun-29-2026=1***Jun-30-2026=9***Jul-02-2026=3***Jul-03-2026=2***Jul-04-2026=1***Jul-05-2026=1***Jul-06-2026=1***Jul-07-2026=2***Jul-08-2026=1***Jul-09-2026=2***Jul-10-2026=1***Jul-12-2026=3***Jul-15-2026=1***Jul-16-2026=6***Jul-17-2026=1***Jul-18-2026=1***Jul-19-2026=1***Jul-21-2026=4***Jul-22-2026=1***Jul-23-2026=4***Jul-24-2026=7***Jul-25-2026=8***Jul-27-2026=1***Jul-28-2026=2***Jul-29-2026=3***Jul-30-2026=7***Jul-31-2026=2***Aug-01-2026=1***Aug-02-2026=1***Aug-03-2026=3***Aug-06-2026=3***Aug-08-2026=1***Aug-09-2026=2***Aug-10-2026=1***Aug-11-2026=3***Aug-12-2026=3***Aug-13-2026=5***Aug-14-2026=1***Aug-16-2026=1***Aug-18-2026=2***Aug-19-2026=1***Aug-22-2026=6***Aug-24-2026=1' WHERE job_id'1648998'  
0.0007   UPDATE employer_jobs SET monthly_hits '***May-2026=695***Jun-2026=191***Jul-2026=66***Aug-2026=35' WHERE job_id'1648998'  
0.0007   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1648998' 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` = 1648998 
0.0015   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '253128'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0004   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)