Coming soon. Abrova Chat is coming soon. This page describes how it will work; it can’t be used yet.
Use Case Examples
Real-world Abrova Chat integration patterns — customer support ticket chat, team collaboration project chat, education class group chat. Each shows room creation with push variables and deep links.
Last updated: 27 Oct 2026
Real-world integration patterns for common industries. Each example shows room creation with push notification variables and deep links.
Customer Support — Ticket Chat#
Agent-customer chat per ticket. Push notification shows agent name and ticket number.
AbrovaPush Template
- Title:
{{senderName}} — {{teamName}} - Body:
Re: Ticket #{{ticketNumber}} — {{messagePreview}}
Flutter
// Create support ticket chat room
final room = await client.findOrCreateRoom(
externalId: 'ticket-${ticket.id}',
type: RoomType.direct,
name: 'Ticket #${ticket.number}',
participants: [
{'externalUserId': agent.id, 'displayName': agent.name, 'locale': 'en'},
{'externalUserId': customer.id, 'displayName': customer.name, 'locale': customer.locale},
],
metadata: {
'pushVariables': {
'teamName': team.name,
'ticketNumber': ticket.number,
},
'pushData': {
'deepLink': 'myapp://tickets/${ticket.id}',
'ticketId': ticket.id,
},
},
);Node.js
// Create support ticket chat room
const { room } = await abrovaChat.rooms.findOrCreate({
externalId: `ticket-${ticket.id}`,
type: 'direct',
name: `Ticket #${ticket.number}`,
participants: [
{ externalUserId: agent.id, displayName: agent.name, locale: 'en' },
{ externalUserId: customer.id, displayName: customer.name, locale: customer.locale },
],
metadata: {
pushVariables: { teamName: team.name, ticketNumber: ticket.number },
pushData: { deepLink: `myapp://tickets/${ticket.id}`, ticketId: ticket.id },
},
});REST API
# Create support ticket chat room
curl -X POST "https://chat.abrova.ir/api/v1/rooms/find-or-create" \
-H "X-API-Key: ab_live_your_api_key" -H "X-Server-Secret: $ABROVA_SERVER_SECRET" -H "Content-Type: application/json" \
-d '{
"externalId": "ticket-456",
"type": "direct",
"name": "Ticket #456",
"participants": [
{"externalUserId": "agent-1", "displayName": "Support Team", "locale": "en"},
{"externalUserId": "user-2", "displayName": "Alice", "locale": "hy"}
],
"metadata": {
"pushVariables": {"teamName": "Support Team", "ticketNumber": "456"},
"pushData": {"deepLink": "myapp://tickets/456", "ticketId": "456"}
}
}'Team Collaboration — Project Chat#
Team chat per project. Push shows project name and sender name.
AbrovaPush Template
- Title:
{{senderName}} — {{projectName}} - Body:
New message in your project
Flutter
final room = await client.findOrCreateRoom(
externalId: 'project-${project.id}',
type: RoomType.group,
name: project.name,
participants: [
{'externalUserId': lead.id, 'displayName': lead.name, 'role': 'admin', 'locale': 'en'},
{'externalUserId': member.id, 'displayName': member.name, 'locale': member.locale},
],
metadata: {
'pushVariables': {'projectName': project.name, 'teamName': team.name},
'pushData': {'deepLink': 'myapp://projects/${project.id}'},
},
);Node.js
const { room } = await abrovaChat.rooms.findOrCreate({
externalId: `project-${project.id}`,
type: 'group',
name: project.name,
participants: [
{ externalUserId: lead.id, displayName: lead.name, role: 'admin', locale: 'en' },
{ externalUserId: member.id, displayName: member.name, locale: member.locale },
],
metadata: {
pushVariables: { projectName: project.name, teamName: team.name },
pushData: { deepLink: `myapp://projects/${project.id}` },
},
});REST API
curl -X POST "https://chat.abrova.ir/api/v1/rooms/find-or-create" \
-H "X-API-Key: ab_live_your_api_key" -H "X-Server-Secret: $ABROVA_SERVER_SECRET" -H "Content-Type: application/json" \
-d '{
"externalId": "project-789",
"type": "group",
"name": "Website Redesign",
"participants": [
{"externalUserId": "lead-1", "displayName": "Alex", "role": "admin", "locale": "en"},
{"externalUserId": "dev-2", "displayName": "Alice", "locale": "hy"}
],
"metadata": {
"pushVariables": {"projectName": "Website Redesign", "teamName": "Engineering"},
"pushData": {"deepLink": "myapp://projects/789"}
}
}'Education — Class Group Chat#
Group chat per class. Push shows class name.
Flutter
final room = await client.findOrCreateRoom(
externalId: 'class-${classId}',
type: RoomType.group,
name: 'Math 101 — Prof. Johnson',
participants: [
{'externalUserId': 'prof-1', 'displayName': 'Prof. Johnson', 'role': 'admin', 'locale': 'en'},
{'externalUserId': 'student-1', 'displayName': 'Alice', 'locale': 'en'},
{'externalUserId': 'student-2', 'displayName': 'Bob', 'locale': 'hy'},
],
metadata: {
'pushVariables': {'className': 'Math 101', 'semester': 'Spring 2026'},
'pushData': {'deepLink': 'myapp://classes/${classId}'},
},
);
// Pin an announcement — triggers message_pinned push
await client.pinMessage(announcementMsg.id);
// Share homework — triggers file_shared push
await client.sendMessage(
room.id,
content: 'Homework due Friday',
type: MessageType.file,
attachments: [homework],
);Node.js
const { room } = await abrovaChat.rooms.findOrCreate({
externalId: `class-${classId}`,
type: 'group',
name: 'Math 101 — Prof. Johnson',
participants: [
{ externalUserId: 'prof-1', displayName: 'Prof. Johnson', role: 'admin', locale: 'en' },
{ externalUserId: 'student-1', displayName: 'Alice', locale: 'en' },
{ externalUserId: 'student-2', displayName: 'Bob', locale: 'hy' },
],
metadata: {
pushVariables: { className: 'Math 101', semester: 'Spring 2026' },
pushData: { deepLink: `myapp://classes/${classId}` },
},
});
// Pin an announcement — triggers message_pinned push
await abrovaChat.pins.pin(announcementMsg.id, 'prof-1');
// Share homework — triggers file_shared push
await abrovaChat.messages.send(room.id, {
senderUserId: 'prof-1',
content: 'Homework due Friday',
type: 'file',
attachments: [homework],
});REST API
# Create class group chat
curl -X POST "https://chat.abrova.ir/api/v1/rooms/find-or-create" \
-H "X-API-Key: ab_live_your_api_key" -H "X-Server-Secret: $ABROVA_SERVER_SECRET" -H "Content-Type: application/json" \
-d '{
"externalId": "class-math101",
"type": "group",
"name": "Math 101 — Prof. Johnson",
"participants": [
{"externalUserId": "prof-1", "displayName": "Prof. Johnson", "role": "admin", "locale": "en"},
{"externalUserId": "student-1", "displayName": "Alice", "locale": "en"},
{"externalUserId": "student-2", "displayName": "Bob", "locale": "hy"}
],
"metadata": {
"pushVariables": {"className": "Math 101", "semester": "Spring 2026"},
"pushData": {"deepLink": "myapp://classes/math101"}
}
}'Was this page helpful?
Report a problem