cURL
curl --request PUT \
--url https://app.teable.ai/api/base/%7BbaseId%7D/workflow/%7BworkflowId%7D/action/%7BactionId%7D \
--header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
--header 'content-type: application/json' \
--data '{"name":"string","description":"string","config":null}'const url = 'https://app.teable.ai/api/base/%7BbaseId%7D/workflow/%7BworkflowId%7D/action/%7BactionId%7D';
const options = {
method: 'PUT',
headers: {
Authorization: 'Bearer REPLACE_BEARER_TOKEN',
'content-type': 'application/json'
},
body: '{"name":"string","description":"string","config":null}'
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}const http = require('https');
const options = {
method: 'PUT',
hostname: 'app.teable.ai',
port: null,
path: '/api/base/%7BbaseId%7D/workflow/%7BworkflowId%7D/action/%7BactionId%7D',
headers: {
Authorization: 'Bearer REPLACE_BEARER_TOKEN',
'content-type': 'application/json'
}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.write(JSON.stringify({name: 'string', description: 'string', config: null}));
req.end();import http.client
conn = http.client.HTTPSConnection("app.teable.ai")
payload = "{\"name\":\"string\",\"description\":\"string\",\"config\":null}"
headers = {
'Authorization': "Bearer REPLACE_BEARER_TOKEN",
'content-type': "application/json"
}
conn.request("PUT", "/api/base/%7BbaseId%7D/workflow/%7BworkflowId%7D/action/%7BactionId%7D", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.teable.ai/api/base/{baseId}/workflow/{workflowId}/action/{actionId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'config' => '<unknown>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://app.teable.ai/api/base/{baseId}/workflow/{workflowId}/action/{actionId}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"config\": \"<unknown>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://app.teable.ai/api/base/{baseId}/workflow/{workflowId}/action/{actionId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"config\": \"<unknown>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.teable.ai/api/base/{baseId}/workflow/{workflowId}/action/{actionId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"config\": \"<unknown>\"\n}"
response = http.request(request)
puts response.read_body{
"config": {
"tableId": "<string>",
"fields": {},
"baseId": "<string>",
"loopKey": {
"resolvable": true,
"type": "fact",
"fact": "<string>",
"path": "<string>",
"keyStack": [
"<string>"
],
"params": {
"pipes": [
"uppercase"
],
"pipeOptions": {
"formatDate": {
"date": "<string>",
"time": "HH:mm",
"timeZone": "<string>"
}
}
}
},
"_fieldsOrder": [
"<string>"
]
},
"id": "<string>",
"category": "action",
"createdTime": "<string>",
"type": "createRecord",
"name": "<string>",
"description": "<string>",
"testResult": {
"createdTime": "<string>",
"spent": 123,
"inputRaw": null,
"outputRaw": null,
"inputVariables": {},
"outputVariables": {},
"errorMsg": "<string>"
},
"outputVariables": {},
"inputVariables": {},
"lastModifiedTime": "<string>"
}automation
Put project workflow action
update a automation workflow action
PUT
/
base
/
{baseId}
/
workflow
/
{workflowId}
/
action
/
{actionId}
cURL
curl --request PUT \
--url https://app.teable.ai/api/base/%7BbaseId%7D/workflow/%7BworkflowId%7D/action/%7BactionId%7D \
--header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
--header 'content-type: application/json' \
--data '{"name":"string","description":"string","config":null}'const url = 'https://app.teable.ai/api/base/%7BbaseId%7D/workflow/%7BworkflowId%7D/action/%7BactionId%7D';
const options = {
method: 'PUT',
headers: {
Authorization: 'Bearer REPLACE_BEARER_TOKEN',
'content-type': 'application/json'
},
body: '{"name":"string","description":"string","config":null}'
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}const http = require('https');
const options = {
method: 'PUT',
hostname: 'app.teable.ai',
port: null,
path: '/api/base/%7BbaseId%7D/workflow/%7BworkflowId%7D/action/%7BactionId%7D',
headers: {
Authorization: 'Bearer REPLACE_BEARER_TOKEN',
'content-type': 'application/json'
}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.write(JSON.stringify({name: 'string', description: 'string', config: null}));
req.end();import http.client
conn = http.client.HTTPSConnection("app.teable.ai")
payload = "{\"name\":\"string\",\"description\":\"string\",\"config\":null}"
headers = {
'Authorization': "Bearer REPLACE_BEARER_TOKEN",
'content-type': "application/json"
}
conn.request("PUT", "/api/base/%7BbaseId%7D/workflow/%7BworkflowId%7D/action/%7BactionId%7D", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.teable.ai/api/base/{baseId}/workflow/{workflowId}/action/{actionId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'config' => '<unknown>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://app.teable.ai/api/base/{baseId}/workflow/{workflowId}/action/{actionId}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"config\": \"<unknown>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://app.teable.ai/api/base/{baseId}/workflow/{workflowId}/action/{actionId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"config\": \"<unknown>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.teable.ai/api/base/{baseId}/workflow/{workflowId}/action/{actionId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"config\": \"<unknown>\"\n}"
response = http.request(request)
puts response.read_body{
"config": {
"tableId": "<string>",
"fields": {},
"baseId": "<string>",
"loopKey": {
"resolvable": true,
"type": "fact",
"fact": "<string>",
"path": "<string>",
"keyStack": [
"<string>"
],
"params": {
"pipes": [
"uppercase"
],
"pipeOptions": {
"formatDate": {
"date": "<string>",
"time": "HH:mm",
"timeZone": "<string>"
}
}
}
},
"_fieldsOrder": [
"<string>"
]
},
"id": "<string>",
"category": "action",
"createdTime": "<string>",
"type": "createRecord",
"name": "<string>",
"description": "<string>",
"testResult": {
"createdTime": "<string>",
"spent": 123,
"inputRaw": null,
"outputRaw": null,
"inputVariables": {},
"outputVariables": {},
"errorMsg": "<string>"
},
"outputVariables": {},
"inputVariables": {},
"lastModifiedTime": "<string>"
}Autorizaciones
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Cuerpo
application/json
Respuesta
200 - application/json
Successful updated
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
Show child attributes
Show child attributes
node id
Opciones disponibles:
action created time
This Action will activate when a record is created in a table.
Opciones disponibles:
createRecord name of the node
description of the node
action test result
Show child attributes
Show child attributes
output variables
input variables
last modified time
Última modificación el 15 de septiembre de 2026
¿Esta página le ayudó?

