Create rule
curl --request POST \
--url https://api-prod.usefini.com/v2/hc-rules/public \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"name": "<string>",
"description": "<string>",
"flowConfig": {},
"botIds": [
"<string>"
],
"type": "<string>",
"source": "<string>",
"triggerType": "<string>",
"defaultRuleId": "<string>",
"inputSchema": [
{}
]
}
'import requests
url = "https://api-prod.usefini.com/v2/hc-rules/public"
payload = {
"name": "<string>",
"description": "<string>",
"flowConfig": {},
"botIds": ["<string>"],
"type": "<string>",
"source": "<string>",
"triggerType": "<string>",
"defaultRuleId": "<string>",
"inputSchema": [{}]
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "<content-type>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': '<content-type>'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
flowConfig: {},
botIds: ['<string>'],
type: '<string>',
source: '<string>',
triggerType: '<string>',
defaultRuleId: '<string>',
inputSchema: [{}]
})
};
fetch('https://api-prod.usefini.com/v2/hc-rules/public', 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-prod.usefini.com/v2/hc-rules/public",
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([
'name' => '<string>',
'description' => '<string>',
'flowConfig' => [
],
'botIds' => [
'<string>'
],
'type' => '<string>',
'source' => '<string>',
'triggerType' => '<string>',
'defaultRuleId' => '<string>',
'inputSchema' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$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-prod.usefini.com/v2/hc-rules/public"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"flowConfig\": {},\n \"botIds\": [\n \"<string>\"\n ],\n \"type\": \"<string>\",\n \"source\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"defaultRuleId\": \"<string>\",\n \"inputSchema\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "<content-type>")
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-prod.usefini.com/v2/hc-rules/public")
.header("Authorization", "<authorization>")
.header("Content-Type", "<content-type>")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"flowConfig\": {},\n \"botIds\": [\n \"<string>\"\n ],\n \"type\": \"<string>\",\n \"source\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"defaultRuleId\": \"<string>\",\n \"inputSchema\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-prod.usefini.com/v2/hc-rules/public")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = '<content-type>'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"flowConfig\": {},\n \"botIds\": [\n \"<string>\"\n ],\n \"type\": \"<string>\",\n \"source\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"defaultRuleId\": \"<string>\",\n \"inputSchema\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_bodyRules
Create rule
Create a published rule.
POST
/
v2
/
hc-rules
/
public
Create rule
curl --request POST \
--url https://api-prod.usefini.com/v2/hc-rules/public \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"name": "<string>",
"description": "<string>",
"flowConfig": {},
"botIds": [
"<string>"
],
"type": "<string>",
"source": "<string>",
"triggerType": "<string>",
"defaultRuleId": "<string>",
"inputSchema": [
{}
]
}
'import requests
url = "https://api-prod.usefini.com/v2/hc-rules/public"
payload = {
"name": "<string>",
"description": "<string>",
"flowConfig": {},
"botIds": ["<string>"],
"type": "<string>",
"source": "<string>",
"triggerType": "<string>",
"defaultRuleId": "<string>",
"inputSchema": [{}]
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "<content-type>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': '<content-type>'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
flowConfig: {},
botIds: ['<string>'],
type: '<string>',
source: '<string>',
triggerType: '<string>',
defaultRuleId: '<string>',
inputSchema: [{}]
})
};
fetch('https://api-prod.usefini.com/v2/hc-rules/public', 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-prod.usefini.com/v2/hc-rules/public",
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([
'name' => '<string>',
'description' => '<string>',
'flowConfig' => [
],
'botIds' => [
'<string>'
],
'type' => '<string>',
'source' => '<string>',
'triggerType' => '<string>',
'defaultRuleId' => '<string>',
'inputSchema' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$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-prod.usefini.com/v2/hc-rules/public"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"flowConfig\": {},\n \"botIds\": [\n \"<string>\"\n ],\n \"type\": \"<string>\",\n \"source\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"defaultRuleId\": \"<string>\",\n \"inputSchema\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "<content-type>")
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-prod.usefini.com/v2/hc-rules/public")
.header("Authorization", "<authorization>")
.header("Content-Type", "<content-type>")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"flowConfig\": {},\n \"botIds\": [\n \"<string>\"\n ],\n \"type\": \"<string>\",\n \"source\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"defaultRuleId\": \"<string>\",\n \"inputSchema\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-prod.usefini.com/v2/hc-rules/public")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = '<content-type>'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"flowConfig\": {},\n \"botIds\": [\n \"<string>\"\n ],\n \"type\": \"<string>\",\n \"source\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"defaultRuleId\": \"<string>\",\n \"inputSchema\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_bodyCreates a published
Rule.
Headers
Bearer token containing your Fini workspace API key. Format:
Bearer fini_... The key needs write scope.application/jsonBody parameters
Rule name.
Natural-language routing description. This is the text the planner uses when deciding whether the rule should run.
Optional agent IDs to assign after creation.
Optional rule type. Current values are
intent and business. Send it explicitly rather than relying on the current default.Optional source. Current public enum value is
widget.Optional trigger type. Current public enum value is
on_escalation.Optional template rule ID.
Response
Returns the createdRule.
Errors
400 Bad Request
400 Bad Request
The body is malformed, a referenced agent ID is invalid, or the
flowConfig references a missing or unsupported action or widget form.401 Unauthorized
401 Unauthorized
The API key is missing, malformed, revoked, or invalid.
403 Forbidden
403 Forbidden
The API key does not include the
write scope required for this route.500 Internal Server Error
500 Internal Server Error
Fini failed while creating the rule in storage.
Was this page helpful?
⌘I

