Create Business 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>",
"type": "<string>",
"source": "<string>",
"triggerType": "<string>",
"flowConfig": {},
"defaultRuleId": "<string>",
"inputSchema": [
{}
],
"botIds": [
"<string>"
]
}
'import requests
url = "https://api-prod.usefini.com/v2/hc-rules/public"
payload = {
"name": "<string>",
"description": "<string>",
"type": "<string>",
"source": "<string>",
"triggerType": "<string>",
"flowConfig": {},
"defaultRuleId": "<string>",
"inputSchema": [{}],
"botIds": ["<string>"]
}
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>',
type: '<string>',
source: '<string>',
triggerType: '<string>',
flowConfig: {},
defaultRuleId: '<string>',
inputSchema: [{}],
botIds: ['<string>']
})
};
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>',
'type' => '<string>',
'source' => '<string>',
'triggerType' => '<string>',
'flowConfig' => [
],
'defaultRuleId' => '<string>',
'inputSchema' => [
[
]
],
'botIds' => [
'<string>'
]
]),
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 \"type\": \"<string>\",\n \"source\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"flowConfig\": {},\n \"defaultRuleId\": \"<string>\",\n \"inputSchema\": [\n {}\n ],\n \"botIds\": [\n \"<string>\"\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 \"type\": \"<string>\",\n \"source\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"flowConfig\": {},\n \"defaultRuleId\": \"<string>\",\n \"inputSchema\": [\n {}\n ],\n \"botIds\": [\n \"<string>\"\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 \"type\": \"<string>\",\n \"source\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"flowConfig\": {},\n \"defaultRuleId\": \"<string>\",\n \"inputSchema\": [\n {}\n ],\n \"botIds\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_bodyBusiness Rules
Create Business Rule
Create a custom or template-based Business Rule.
POST
/
v2
/
hc-rules
/
public
Create Business 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>",
"type": "<string>",
"source": "<string>",
"triggerType": "<string>",
"flowConfig": {},
"defaultRuleId": "<string>",
"inputSchema": [
{}
],
"botIds": [
"<string>"
]
}
'import requests
url = "https://api-prod.usefini.com/v2/hc-rules/public"
payload = {
"name": "<string>",
"description": "<string>",
"type": "<string>",
"source": "<string>",
"triggerType": "<string>",
"flowConfig": {},
"defaultRuleId": "<string>",
"inputSchema": [{}],
"botIds": ["<string>"]
}
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>',
type: '<string>',
source: '<string>',
triggerType: '<string>',
flowConfig: {},
defaultRuleId: '<string>',
inputSchema: [{}],
botIds: ['<string>']
})
};
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>',
'type' => '<string>',
'source' => '<string>',
'triggerType' => '<string>',
'flowConfig' => [
],
'defaultRuleId' => '<string>',
'inputSchema' => [
[
]
],
'botIds' => [
'<string>'
]
]),
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 \"type\": \"<string>\",\n \"source\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"flowConfig\": {},\n \"defaultRuleId\": \"<string>\",\n \"inputSchema\": [\n {}\n ],\n \"botIds\": [\n \"<string>\"\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 \"type\": \"<string>\",\n \"source\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"flowConfig\": {},\n \"defaultRuleId\": \"<string>\",\n \"inputSchema\": [\n {}\n ],\n \"botIds\": [\n \"<string>\"\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 \"type\": \"<string>\",\n \"source\": \"<string>\",\n \"triggerType\": \"<string>\",\n \"flowConfig\": {},\n \"defaultRuleId\": \"<string>\",\n \"inputSchema\": [\n {}\n ],\n \"botIds\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_bodyCreates a Business Rule. Business Rules are stored directly and do not have a draft lifecycle.
Headers
string
required
Bearer token containing your Fini workspace API key. Format:
Bearer fini_... The key needs write scope.string
required
application/jsonBody parameters
string
required
Rule name.
string
required
Description of the escalation workflow.
string
required
Send
business.string
Business Rule source. The current enum value is
widget.string
Business Rule trigger. The current enum value is
on_escalation.RuleNodeConfig
Required for a custom Business Rule. Do not send it for a template-based rule.
string
Template ID from List default Business Rules. A template-based rule cannot also define
flowConfig.InputSchemaField[]
Runtime bindings for Business Rule inputs, including template inputs.
string[]
Agent IDs to assign after creation.
Response
Returns the createdRule.
Errors
400 Bad Request
400 Bad Request
The body is malformed, a custom rule has no
flowConfig, a template is invalid, a template-based rule also defines flowConfig, or a referenced agent, action, or widget form is invalid.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.Was this page helpful?
⌘I

