Edit Task Action
curl --request POST \
--url https://api.example.com/api/public/tools/edit_task_action \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"taskId": "<string>",
"actionId": "<string>",
"email": null,
"call": null,
"linkedin": null
}
'import requests
url = "https://api.example.com/api/public/tools/edit_task_action"
payload = {
"taskId": "<string>",
"actionId": "<string>",
"email": None,
"call": None,
"linkedin": None
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
taskId: '<string>',
actionId: '<string>',
email: null,
call: null,
linkedin: null
})
};
fetch('https://api.example.com/api/public/tools/edit_task_action', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/public/tools/edit_task_action",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'taskId' => '<string>',
'actionId' => '<string>',
'email' => null,
'call' => null,
'linkedin' => null
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/public/tools/edit_task_action"
payload := strings.NewReader("{\n \"taskId\": \"<string>\",\n \"actionId\": \"<string>\",\n \"email\": null,\n \"call\": null,\n \"linkedin\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/public/tools/edit_task_action")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"taskId\": \"<string>\",\n \"actionId\": \"<string>\",\n \"email\": null,\n \"call\": null,\n \"linkedin\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/public/tools/edit_task_action")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"taskId\": \"<string>\",\n \"actionId\": \"<string>\",\n \"email\": null,\n \"call\": null,\n \"linkedin\": null\n}"
response = http.request(request)
puts response.read_body{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}FirstTouch tools
Edit Task Action
Edit one grouped action inside a todo section-approval task.
Usage notes
- Use preview_task first; use branchContext to distinguish Dynamic Actions paths and only send fields listed in actionGroup.actions[].editableFields.
POST
/
api
/
public
/
tools
/
edit_task_action
Edit Task Action
curl --request POST \
--url https://api.example.com/api/public/tools/edit_task_action \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"taskId": "<string>",
"actionId": "<string>",
"email": null,
"call": null,
"linkedin": null
}
'import requests
url = "https://api.example.com/api/public/tools/edit_task_action"
payload = {
"taskId": "<string>",
"actionId": "<string>",
"email": None,
"call": None,
"linkedin": None
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
taskId: '<string>',
actionId: '<string>',
email: null,
call: null,
linkedin: null
})
};
fetch('https://api.example.com/api/public/tools/edit_task_action', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/public/tools/edit_task_action",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'taskId' => '<string>',
'actionId' => '<string>',
'email' => null,
'call' => null,
'linkedin' => null
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/public/tools/edit_task_action"
payload := strings.NewReader("{\n \"taskId\": \"<string>\",\n \"actionId\": \"<string>\",\n \"email\": null,\n \"call\": null,\n \"linkedin\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/public/tools/edit_task_action")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"taskId\": \"<string>\",\n \"actionId\": \"<string>\",\n \"email\": null,\n \"call\": null,\n \"linkedin\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/public/tools/edit_task_action")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"taskId\": \"<string>\",\n \"actionId\": \"<string>\",\n \"email\": null,\n \"call\": null,\n \"linkedin\": null\n}"
response = http.request(request)
puts response.read_body{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}Authorizations
Body
application/json
Task id returned by list_user_tasks or preview_task. Example: task_123. Use a taskId value, not actionId or enrollmentId.
Grouped action id from preview_task actionGroup.expectedActionIds. Example: action_123. Use an actionId value from preview_task; do not pass taskId or nodeId here.
Email edit payload. Use only for email actions.
Show child attributes
Show child attributes
Call edit payload. Use only for call actions.
Show child attributes
Show child attributes
LinkedIn edit payload. Use only for LinkedIn connect, message, or InMail actions.
Show child attributes
Show child attributes
Response
Tool result.

