Documentation
POST /api/settings/rules
Manage the support desk's keyword rules.
| Request | POST /api/settings/rules |
|---|---|
| Authentication | Session cookie required |
| Handler | backend/server.py |
What it does
Add, edit or remove the rules that decide what the desk does with an inbound message. `op` names the operation; an unrecognised one is refused by name rather than treated as a default.
Authentication
Session cookie required. Send the ff_session cookie. Without one the engine treats the caller as a new visitor with no holds and no claims, and returns a new cookie to use from then on.
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
ff_session | cookie | string | Optional | The session identifier. Omit it on the first call and store the value the response sets; every later call must send the same one or the engine treats the caller as a new visitor with no holds and no claims. |
op | body | string | Required | The operation to apply. Refused as `unknown op` when unrecognised. |
id | body | integer | Optional | The rule to edit or remove. |
keyword | body | string | Optional | The keyword that triggers the rule. |
scope | body | string | Optional | Where the keyword is matched. |
action | body | string | Optional | What the desk does on a match. |
canned_subject | body | string | Optional | Subject of the reply this rule sends. |
canned_body | body | string | Optional | Body of the reply this rule sends. |
Request
The cookie jar carries the session between calls. Angle-bracketed values are the parameter types from the table above.
curl -s -b cookies.txt -c cookies.txt \
-X POST -H 'Content-Type: application/json' \
-d '{"op":"<string>","id":"<integer>","keyword":"<string>","scope":"<string>","action":"<string>","canned_subject":"<string>","canned_body":"<string>"}' \
"https://flowfinds.ai/api/settings/rules"const res = await fetch("https://flowfinds.ai/api/settings/rules", {
method: "POST",
credentials: "include",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"op": "<string>",
"id": "<integer>",
"keyword": "<string>",
"scope": "<string>",
"action": "<string>",
"canned_subject": "<string>",
"canned_body": "<string>"
}),
});
const data = await res.json();import requests
s = requests.Session()
r = s.post("https://flowfinds.ai/api/settings/rules", json={
"op": "<string>",
"id": "<integer>",
"keyword": "<string>",
"scope": "<string>",
"action": "<string>",
"canned_subject": "<string>",
"canned_body": "<string>"
})
data = r.json()Recorded example
curl -s -b cookies.txt -c cookies.txt \
-X POST -H 'Content-Type: application/json' \
-d '{"op":"add","keyword":"refund","scope":"subject","action":"…"}' \
"$FLOWFINDS_ORIGIN/api/settings/rules"Responses
200 — Applied.
| Field | Type | Description |
|---|---|---|
status | string | `ok`. |
rules | array | The rule set as stored. |
Errors
| Status | Reason | When |
|---|---|---|
400 | no account yet | No account exists to attach rules to. |
400 | unknown op | The operation is not one the handler defines. |
Related
POST /api/account— Save the account a claim is credited to.POST /api/login/request— Request a sign-in link.POST /api/logout— Sign out.GET /api/settings/business— The business settings the support desk reads.POST /api/settings/business— Save the business settings.GET /api/settings/payout— The payout destination.POST /api/settings/payout— Save the payout destination.
Back to the API reference index, or read the cookbook for recipes that compose this endpoint with others.