Automated Urgency & Priority Scoring
Classifies priority level into low, medium, high, or critical emergency based on customer frustration and deadlines.
Intelligent email processing API for urgency scoring, intent classification, entity extraction, and sentiment tagging.
https://rsflowhub.com/api/v1/ai/email-analyze
X-API-Key header{
"subject": "Issue with my recent invoice",
"email_content": "Hello, I was double charged for my Pro subscription this month. Please fix this ASAP as I am very frustrated.",
"allowed_categories": [
"sales",
"support",
"billing",
"spam"
],
"allowed_intents": [
"refund_request",
"cancellation",
"technical_issue"
]
}
{
"result": {
"category": "billing",
"intent": "refund_request",
"priority": "high",
"sentiment": "negative",
"language": "en",
"entities": {
"invoice_number": "INV-2041",
"amount": "49.00 USD"
},
"summary": "Customer was charged twice for invoice INV-2041 and asks for a refund of the duplicate payment."
}
}
Email Content, Urgency & Priority Analysis API is a REST API on RSFlowHub for web, mobile and AI agent applications. Send a JSON request to POST /api/v1/ai/email-analyze with your API key; RSFlowHub runs it on a tuned AI model, falls back to a backup provider if needed, and returns a structured JSON result, usually within 1 to 3 seconds.
POST /api/v1/ai/email-analyzeX-API-Key headerSend these fields as a JSON body. An invalid or missing field returns a 422 error that names the field.
| Field | Type | Required | Description |
|---|---|---|---|
email_content |
string | Required | The main body of the email to analyze (Max: 20,000 characters). |
subject |
string | Optional | Optional email subject line. Providing this increases analysis accuracy. |
allowed_categories |
array of strings | Optional | Optional list of allowed categories. If provided, the AI forces the output category into one of these buckets. |
allowed_intents |
array of strings | Optional | Optional list of allowed intents. If provided, the AI forces the output intent into one of these buckets. |
custom_instructions |
string | Optional | Optional specific guidelines to customize the analysis or extraction process. |
Copy, replace rfh_your_api_key with your key and run. Prefer a client library? See the official SDKs.
curl -X POST "https://rsflowhub.com/api/v1/ai/email-analyze" \
-H "Content-Type: application/json" \
-H "X-API-Key: rfh_your_api_key" \
-d '{"subject":"Issue with my recent invoice","email_content":"Hello, I was double charged for my Pro subscription this month. Please fix this ASAP as I am very frustrated.","allowed_categories":["sales","support","billing","spam"],"allowed_intents":["refund_request","cancellation","technical_issue"]}'
<?php
$client = new \GuzzleHttp\Client();
$response = $client->post('https://rsflowhub.com/api/v1/ai/email-analyze', [
'headers' => [
'Content-Type' => 'application/json',
'X-API-Key' => 'rfh_your_api_key',
],
'json' => array (
'subject' => 'Issue with my recent invoice',
'email_content' => 'Hello, I was double charged for my Pro subscription this month. Please fix this ASAP as I am very frustrated.',
'allowed_categories' =>
array (
0 => 'sales',
1 => 'support',
2 => 'billing',
3 => 'spam',
),
'allowed_intents' =>
array (
0 => 'refund_request',
1 => 'cancellation',
2 => 'technical_issue',
),
),
]);
echo $response->getBody();
const response = await fetch('https://rsflowhub.com/api/v1/ai/email-analyze', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': 'rfh_your_api_key'
},
body: JSON.stringify({"subject":"Issue with my recent invoice","email_content":"Hello, I was double charged for my Pro subscription this month. Please fix this ASAP as I am very frustrated.","allowed_categories":["sales","support","billing","spam"],"allowed_intents":["refund_request","cancellation","technical_issue"]})
});
const data = await response.json();
console.log(data);
import requests
url = "https://rsflowhub.com/api/v1/ai/email-analyze"
headers = {
"Content-Type": "application/json",
"X-API-Key": "rfh_your_api_key"
}
payload = {"subject":"Issue with my recent invoice","email_content":"Hello, I was double charged for my Pro subscription this month. Please fix this ASAP as I am very frustrated.","allowed_categories":["sales","support","billing","spam"],"allowed_intents":["refund_request","cancellation","technical_issue"]}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
Every RSFlowHub endpoint uses the same envelope, so one parser handles all of them. Failed calls are not charged.
{
"success": true,
"request_id": "req_3f9a2c7e-5b1d-4e8a-9c2f-7d6e1a0b4c8d",
"data": {
"result": {
"category": "billing",
"intent": "refund_request",
"priority": "high",
"sentiment": "negative",
"language": "en",
"entities": {
"invoice_number": "INV-2041",
"amount": "49.00 USD"
},
"summary": "Customer was charged twice for invoice INV-2041 and asks for a refund of the duplicate payment."
}
},
"meta": {
"version": "v1",
"timestamp": "2026-10-05T09:30:00Z"
}
}
{
"success": false,
"request_id": "req_8c1d4e2a-7f3b-4a9c",
"error": {
"code": "VALIDATION_ERROR",
"message": "The given data was invalid.",
"details": {
"email_content": [
"This field is required."
]
}
},
"meta": {
"version": "v1",
"timestamp": "2026-10-05T09:30:00Z"
}
}
| Field | Type | Meaning |
|---|---|---|
success | boolean | true when the call worked, false on any error. |
request_id | string | Unique id for this call. Quote it when you contact support. |
data.result | object | The result of this endpoint (see the example). |
error | object | Only on failure: code, message and details per field. |
meta | object | API version and server timestamp. |
All error codes: Errors reference
Classifies priority level into low, medium, high, or critical emergency based on customer frustration and deadlines.
Automatically categorizes emails into billing, technical support, sales inquiries, refund requests, or spam.
Extracts customer names, order IDs, account numbers, requested action dates, and key summary takeaways.
Identifies source language and measures emotional tone across positive, neutral, frustrated, or angry sentiment.
How teams use the Email Content, Urgency & Priority Analysis API in production.
Classify incoming customer support emails to route high-urgency billing complaints directly to senior support managers.
{"category": "billing", "intent": "refund_request", "urgency": "high", "sentiment": "negative"}Surfaces critical billing issues first so they are answered sooner.
Extract company names, team size, and buyer purchase intent from inbound contact sales emails.
{"category": "sales", "intent": "enterprise_demo", "company": "Acme Corp", "seats": 250}Accelerates enterprise sales qualification pipelines.
Automatically tag incoming company inbox emails by department (Billing, Support, Legal, Careers) for team routing.
{"category": "legal_compliance", "intent": "w9_request", "department": "finance"}Eliminates manual inbox triage for operations teams.
The same job done three ways.
| Topic | RSFlowHub API | Raw LLM prompts | Rules / regex |
|---|---|---|---|
| Output | Validated JSON fields | Free text you have to parse | Fixed patterns only |
| Setup | One POST request, no prompts | Write and maintain prompts and parsing | Write and maintain rule lists |
| Provider outage | Automatic fallback to a backup model | You build retries and a second vendor | Not applicable |
| Pricing | 2 credits per call, failed calls free | Per token, per vendor | Your own servers and upkeep |
| Understands context | Yes, AI model | Yes, AI model | No, keywords only |
Free plan with 100 credits/month + 1,000 bonus credits when you sign in before 23 Nov. Test it in the playground first, no code needed.
Flowy
AI assistant