WhatsApp Meta agent
Update Meta agent skill
Change any field; omitted fields keep their value. An edit sends the skill back to review.
PATCH
/
orgs
/
{org_id}
/
connections
/
{connection_id}
/
whatsapp
/
phone-numbers
/
{phone_number_id}
/
meta-agent
/
skills
/
{skill_id}
Update Meta agent skill
curl --request PATCH \
--url https://api.useinvent.com/orgs/{org_id}/connections/{connection_id}/whatsapp/phone-numbers/{phone_number_id}/meta-agent/skills/{skill_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "returns-policy",
"description": "<string>",
"skill": "<string>"
}
'import requests
url = "https://api.useinvent.com/orgs/{org_id}/connections/{connection_id}/whatsapp/phone-numbers/{phone_number_id}/meta-agent/skills/{skill_id}"
payload = {
"title": "returns-policy",
"description": "<string>",
"skill": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({title: 'returns-policy', description: '<string>', skill: '<string>'})
};
fetch('https://api.useinvent.com/orgs/{org_id}/connections/{connection_id}/whatsapp/phone-numbers/{phone_number_id}/meta-agent/skills/{skill_id}', 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.useinvent.com/orgs/{org_id}/connections/{connection_id}/whatsapp/phone-numbers/{phone_number_id}/meta-agent/skills/{skill_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'title' => 'returns-policy',
'description' => '<string>',
'skill' => '<string>'
]),
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://api.useinvent.com/orgs/{org_id}/connections/{connection_id}/whatsapp/phone-numbers/{phone_number_id}/meta-agent/skills/{skill_id}"
payload := strings.NewReader("{\n \"title\": \"returns-policy\",\n \"description\": \"<string>\",\n \"skill\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.useinvent.com/orgs/{org_id}/connections/{connection_id}/whatsapp/phone-numbers/{phone_number_id}/meta-agent/skills/{skill_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"returns-policy\",\n \"description\": \"<string>\",\n \"skill\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.useinvent.com/orgs/{org_id}/connections/{connection_id}/whatsapp/phone-numbers/{phone_number_id}/meta-agent/skills/{skill_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"returns-policy\",\n \"description\": \"<string>\",\n \"skill\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"skill": "<string>",
"status": "pending_review",
"title": "<string>",
"description": "<string>",
"channel": "<string>",
"metadata": {},
"created_at": "<string>"
}Authorizations
Bearer token authentication using your API key
Path Parameters
The ID of the org
The ID of the connection
The ID of the WhatsApp phone number the Meta agent runs on
The ID of the skill
Body
application/jsonmultipart/form-data
Lowercase letters, digits and hyphens.
Maximum string length:
64Pattern:
^[a-z0-9]+(-[a-z0-9]+)*$Example:
"returns-policy"
When the agent applies this skill.
Required string length:
1 - 1024What the agent does: tone, persona, policies or a workflow.
Required string length:
1 - 20000Response
200 - application/json
Meta reviews every skill. A blocked skill is kept but never applied, usually because it asks for sensitive personal data.
Available options:
pending_review, active, blocked Show child attributes
Show child attributes
Was this page helpful?
⌘I
Update Meta agent skill
curl --request PATCH \
--url https://api.useinvent.com/orgs/{org_id}/connections/{connection_id}/whatsapp/phone-numbers/{phone_number_id}/meta-agent/skills/{skill_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "returns-policy",
"description": "<string>",
"skill": "<string>"
}
'import requests
url = "https://api.useinvent.com/orgs/{org_id}/connections/{connection_id}/whatsapp/phone-numbers/{phone_number_id}/meta-agent/skills/{skill_id}"
payload = {
"title": "returns-policy",
"description": "<string>",
"skill": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({title: 'returns-policy', description: '<string>', skill: '<string>'})
};
fetch('https://api.useinvent.com/orgs/{org_id}/connections/{connection_id}/whatsapp/phone-numbers/{phone_number_id}/meta-agent/skills/{skill_id}', 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.useinvent.com/orgs/{org_id}/connections/{connection_id}/whatsapp/phone-numbers/{phone_number_id}/meta-agent/skills/{skill_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'title' => 'returns-policy',
'description' => '<string>',
'skill' => '<string>'
]),
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://api.useinvent.com/orgs/{org_id}/connections/{connection_id}/whatsapp/phone-numbers/{phone_number_id}/meta-agent/skills/{skill_id}"
payload := strings.NewReader("{\n \"title\": \"returns-policy\",\n \"description\": \"<string>\",\n \"skill\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.useinvent.com/orgs/{org_id}/connections/{connection_id}/whatsapp/phone-numbers/{phone_number_id}/meta-agent/skills/{skill_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"returns-policy\",\n \"description\": \"<string>\",\n \"skill\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.useinvent.com/orgs/{org_id}/connections/{connection_id}/whatsapp/phone-numbers/{phone_number_id}/meta-agent/skills/{skill_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"returns-policy\",\n \"description\": \"<string>\",\n \"skill\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"skill": "<string>",
"status": "pending_review",
"title": "<string>",
"description": "<string>",
"channel": "<string>",
"metadata": {},
"created_at": "<string>"
}