Create Task
n8n-nodes-base.httpRequest
Create a task or to-do item for a contact in Follow Up Boss
π‘ Use Cases
- Create follow-up tasks automatically
- Schedule reminders for contact outreach
- Generate tasks from workflow triggers
- Assign tasks to team members
π API Documentation
Reference documentation for this API endpoint:
π https://docs.followupboss.com/reference/tasks-post βπ Node Configuration
{
"nodes": [
{
"parameters": {
"content": "## π Create Task\n\n**Usage:**\nCreate a task or to-do item for a contact in Follow Up Boss to manage follow-ups and activities.\n\n**Required Input:**\n- `personId`: The ID of the contact for this task\n- `description`: Task description/title\n- `dueDate`: When the task is due (ISO 8601 format)\n\n**Optional Fields:**\n- `assignedTo`: User ID to assign task to\n- `priority`: Task priority level\n- `completed`: Mark as completed (true/false)\n\n**Setup:**\n1. Configure HTTP Basic Auth credentials with your Follow Up Boss API key as username (leave password blank)\n2. Pass personId, description, and dueDate in incoming data\n3. Node creates the task and assigns it\n\n**Output:**\nReturns the created task object with task ID and details",
"height": 238,
"width": 389,
"color": 4
},
"type": "n8n-nodes-base.stickyNote",
"position": [
96,
332
],
"typeVersion": 1,
"id": "3c4af773c6c755eb1a4b05aa233fbcfe",
"name": "Sticky Note"
},
{
"parameters": {
"method": "POST",
"url": "https://api.followupboss.com/v1/tasks",
"authentication": "genericCredentialType",
"genericAuthType": "httpBasicAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"personId\": \"{{ $json.personId }}\",\n \"description\": \"{{ $json.description }}\",\n \"dueDate\": \"{{ $json.dueDate }}\",\n \"assignedTo\": \"{{ $json.assignedTo }}\",\n \"priority\": \"{{ $json.priority }}\",\n \"completed\": {{ $json.completed || false }}\n}",
"options": {}
},
"id": "997cc12ee2ba6c0b0c2fd3d3e3992ef0",
"name": "Create Task",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
368,
400
]
}
],
"connections": {},
"pinData": {},
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "a8f077b0fceefd088cd6105ee18e84ba182d29f06c0fc6a636a750df08cd8cd9"
}
}
[
{
"id": "4ca15ffe-befa-4db3-acd4-bb56ce3bc4e6",
"meta": {
"name": "API Call Node",
"id": "api-call",
"icon": {
"svg": " ",
"type": "SVG"
},
"description": "## π Create Task **Usage:**"
},
"label": "Create Task",
"dependencies": {
"node-fetch": "3.3.2"
},
"script": "import fetch from \"node-fetch\";\nexport default async function apiCall({\n url,\n method,\n contentType,\n authorization,\n body,\n shouldAwait,\n queryParams,\n customHeaders\n}: NodeInputs, {\n logging\n}: NodeScriptOptions) : NodeOutput {\n const headers = {\n \"Content-Type\": contentType,\n ...customHeaders\n };\n if (authorization) headers[\"Authorization\"] = authorization;\n\n let queryParamsString = '';\n if (queryParams) {\n queryParamsString = '?' + new URLSearchParams(queryParams).toString();\n }\n\n const fetchOptions = {\n method,\n headers\n };\n\n if (method !== 'GET') {\n fetchOptions.body = JSON.stringify(body);\n }\n\n const fetchPromise = fetch(url + queryParamsString, fetchOptions);\n\n if (!shouldAwait) {\n return {\n data: null\n };\n }\n\n const response = await fetchPromise;\n const data = await response.json();\n return {\n status: response.status,\n data\n };\n}",
"inputs": {
"properties": {
"method": {
"type": "string",
"description": "The HTTP method to use for the API call",
"enum": [
"GET",
"POST",
"PUT",
"DELETE",
"PATCH"
],
"default": "POST",
"title": "HTTP Method",
"buildship": {
"options": [
{
"label": "GET",
"value": "GET"
},
{
"value": "POST",
"label": "POST"
},
{
"value": "PUT",
"label": "PUT"
},
{
"label": "DELETE",
"value": "DELETE"
},
{
"label": "PATCH",
"value": "PATCH"
}
],
"index": 0,
"sensitive": false
}
},
"url": {
"description": "The URL of the API endpoint",
"title": "URL",
"type": "string",
"buildship": {
"index": 1
}
},
"authorization": {
"description": "The authorization header for the API call, if required (e.g., Bearer or Basic token)",
"type": "string",
"title": "Authorization",
"buildship": {
"sensitive": true,
"index": 2
}
},
"queryParams": {
"default": {},
"description": "The query parameters for the API call",
"type": "object",
"title": "Query Parameters",
"buildship": {
"index": 3,
"sensitive": false
}
},
"body": {
"type": "object",
"buildship": {
"index": 4
},
"description": "The body to send with the API call",
"title": "Body"
},
"contentType": {
"enum": [
"application/json",
"application/x-www-form-urlencoded",
"multipart/form-data",
"text/plain"
],
"description": "The content type of the API call",
"title": "Content Type",
"buildship": {
"index": 5,
"options": [
{
"label": "application/json",
"value": "application/json"
},
{
"value": "application/x-www-form-urlencoded",
"label": "application/x-www-form-urlencoded"
},
{
"label": "multipart/form-data",
"value": "multipart/form-data"
},
{
"label": "text/plain",
"value": "text/plain"
}
]
},
"type": "string"
},
"shouldAwait": {
"description": "Whether to wait for the request to complete or not",
"title": "Await?",
"type": "boolean",
"buildship": {
"sensitive": false,
"index": 6
}
},
"customHeaders": {
"type": "object",
"description": "Additional custom headers for the API call",
"title": "Custom Headers",
"buildship": {
"index": 7,
"sensitive": false
}
}
},
"type": "object",
"required": [
"url",
"shouldAwait",
"method"
]
},
"integrations": [],
"name": "API Call Node",
"output": {
"buildship": {},
"properties": {
"status": {
"buildship": {
"index": 0
},
"type": "number",
"description": "The HTTP status of the API response",
"title": "Status"
},
"data": {
"buildship": {
"index": 1
},
"title": "Data",
"type": "object",
"description": "The data object from the API response"
}
},
"type": "object"
},
"isCollapsed": false,
"type": "script",
"values": {
"method": "POST",
"url": "https://api.followupboss.com/v1/tasks",
"authorization": {
"_$expression_": "`Bearer ${(await getSecret(\"ANONYMIZED_SECRET\"))}`",
"type": "javascript",
"hasErrors": false
},
"queryParams": {},
"body": {
"_$expression_": "{\n \"personId\": ctx?.[\"root\"]?.[\"inputs\"]?.[\"body\"].personId,\n \"description\": ctx?.[\"root\"]?.[\"inputs\"]?.[\"body\"].description,\n \"dueDate\": ctx?.[\"root\"]?.[\"inputs\"]?.[\"body\"].dueDate,\n \"assignedTo\": ctx?.[\"root\"]?.[\"inputs\"]?.[\"body\"].assignedTo,\n \"priority\": ctx?.[\"root\"]?.[\"inputs\"]?.[\"body\"].priority,\n \"completed\": {{ $json.completed || false }}\n}",
"type": "javascript",
"hasErrors": false
},
"contentType": "application/json",
"shouldAwait": true,
"customHeaders": {
"Content-Type": "application/json"
}
}
}
]
{
"subflows": [
{
"flow": [
{
"id": 964,
"module": "http:ActionSendDataBasicAuth",
"version": 3,
"parameters": {
"key": "ANONYMIZED_CREDENTIALS",
"handleErrors": false,
"useNewZLibDeCompress": true
},
"mapper": {
"ca": "",
"qs": [],
"url": "https://api.followupboss.com/v1/tasks",
"data": "{\n \"personId\": {{1.personId}},\n \"description\": {{1.description}},\n \"dueDate\": {{1.dueDate}},\n \"assignedTo\": {{1.assignedTo}},\n \"priority\": {{1.priority}},\n \"completed\": {{ $json.completed || false }}\n}",
"gzip": true,
"method": "post",
"headers": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Authorization",
"value": "Bearer {{ANONYMIZED_TOKEN}}"
}
],
"timeout": "",
"useMtls": false,
"bodyType": "raw",
"contentType": "application/json",
"serializeUrl": false,
"shareCookies": false,
"parseResponse": true,
"followRedirect": true,
"useQuerystring": false,
"followAllRedirects": false,
"rejectUnauthorized": true
},
"metadata": {
"designer": {
"x": 300,
"y": 300,
"name": "Create Task"
},
"restore": {
"expect": {
"qs": {
"mode": "chose",
"items": []
},
"method": {
"mode": "chose",
"label": "POST"
},
"headers": {
"mode": "chose",
"items": [
null,
null
]
},
"bodyType": {
"label": "Raw"
},
"contentType": {
"label": "JSON (application/json)"
}
},
"parameters": {
"key": {
"label": "ANONYMIZED_CREDENTIALS"
}
}
},
"parameters": [
{
"name": "key",
"type": "keychain:basicauth",
"label": "Credentials",
"required": true
},
{
"name": "handleErrors",
"type": "boolean",
"label": "Evaluate all states as errors (except for 2xx and 3xx )",
"required": true
},
{
"name": "useNewZLibDeCompress",
"type": "hidden"
}
],
"expect": [
{
"name": "url",
"type": "url",
"label": "URL",
"required": true
},
{
"name": "serializeUrl",
"type": "boolean",
"label": "Serialize URL",
"required": true
},
{
"name": "method",
"type": "select",
"label": "Method",
"required": true,
"validate": {
"enum": [
"get",
"head",
"post",
"put",
"patch",
"delete",
"options"
]
}
},
{
"name": "headers",
"spec": [
{
"name": "name",
"type": "text",
"label": "Name",
"required": true
},
{
"name": "value",
"type": "text",
"label": "Value"
}
],
"type": "array",
"label": "Headers"
},
{
"name": "qs",
"spec": [
{
"name": "name",
"type": "text",
"label": "Name",
"required": true
},
{
"name": "value",
"type": "text",
"label": "Value"
}
],
"type": "array",
"label": "Query String"
},
{
"name": "bodyType",
"type": "select",
"label": "Body type",
"validate": {
"enum": [
"raw",
"x_www_form_urlencoded",
"multipart_form_data"
]
}
},
{
"name": "parseResponse",
"type": "boolean",
"label": "Parse response",
"required": true
},
{
"name": "contentType",
"type": "select",
"label": "Content type",
"validate": {
"enum": [
"text/plain",
"application/json",
"application/xml",
"text/xml",
"text/html",
"custom"
]
}
},
{
"name": "data",
"type": "buffer",
"label": "Request content"
}
]
}
}
]
}
],
"metadata": {
"version": 1
}
}