အဖွဲ့အစည်းများ
သင့် ChatHub အကောင့်အတွင်း အဖွဲ့အစည်းများကို စီမံခန့်ခွဲပါ။ အဖွဲ့အစည်းများသည် အော်ပရေတာများနှင့် ချက်တင်လုပ်ဆောင်မှုများအတွက် ကွန်တိန်နာများအဖြစ် ဆောင်ရွက်သည်။
ခြုံငုံသုံးသပ်ချက်
ChatHub ရှိ အဖွဲ့အစည်းများ-
- ဌာန၊ အဖွဲ့ သို့မဟုတ် လုပ်ဆောင်ချက်အလိုက် အော်ပရေတာများကို အုပ်စုဖွဲ့ပါ။
- မတူညီသော လုပ်ငန်းယူနစ်များအကြား ချတ်လုပ်ခြင်းများကို သီးခြားခွဲထုတ်ပါ။
- အဖွဲ့အစည်းအဆင့်တွင်ခွင့်ပြုချက်များကိုစီမံပါ။
- အဖွဲ့အစည်းအလိုက် တိုင်းတာမှုများကို ခြေရာခံပါ။
အဖွဲ့အစည်းများစာရင်း
သင့်ကုမ္ပဏီ တိုကင်ဖြင့် အသုံးပြုနိုင်သော အဖွဲ့အစည်းအားလုံးကို ပြန်လည်ရယူပါ။
အဆုံးမှတ်
တောင်းဆိုခြင်း။
curl -X GET https://chatapi.smsbat.com/api/company/organization \
-H "Authorization: Bearer {company-token}" \
-H "Accept: text/plain"
ခေါင်းစီးများ
| ခေါင်းစီး | တန်ဖိုး | လိုအပ်သည် | ဖော်ပြချက် |
|---|---|---|---|
ခွင့်ပြုချက် |
ဆောင်သူ | ဟုတ်တယ် | ကုမ္ပဏီ တိုကင် |
လက်ခံ |
စာသား/လွင်ပြင် | ဟုတ်တယ် | တုံ့ပြန်မှုပုံစံ |
တုံ့ပြန်မှု
[
{
"id": 6,
"name": "Customer Support"
},
{
"id": 24,
"name": "Sales Team"
},
{
"id": 42,
"name": "Technical Support"
}
]
တုံ့ပြန်မှုနယ်ပယ်များ
| လယ် | ရိုက် | ဖော်ပြချက် |
|---|---|---|
id |
ကိန်းပြည့် | ထူးခြားသောအဖွဲ့အစည်းအမှတ်အသား |
အမည် |
string | အဖွဲ့အစည်းအမည် |
အဖွဲ့အစည်းဖွဲ့စည်းပုံ
အဖွဲ့အစည်းတစ်ခုစီတွင်-
- အော်ပရေတာများ- အဖွဲ့အစည်းအတွက် သတ်မှတ်ထားသော ချတ်အေးဂျင့်များ
- Chat Sessions- အသက်ဝင်ပြီး သမိုင်းဝင် စကားဝိုင်းများ
- ဝစ်ဂျက်များ- ဤအဖွဲ့အစည်းအတွက် ထည့်သွင်းထားသော ချတ်ဝစ်ဂျက်များ
- ဆက်တင်များ- အဖွဲ့အစည်းအလိုက် ဖွဲ့စည်းမှုပုံစံ
Cases ကိုအသုံးပြုပါ။
ဌာနပေါင်းစုံ ကုမ္ပဏီ
Company: ACME Corp
├── Organization: Sales (id: 10)
│ ├── Operator: John (Sales Rep)
│ └── Operator: Sarah (Sales Manager)
├── Organization: Support (id: 20)
│ ├── Operator: Mike (Support Agent)
│ └── Operator: Lisa (Support Lead)
└── Organization: Technical (id: 30)
└── Operator: Alex (Tech Expert)
Multi-Brand လုပ်ငန်း
Company: Retail Group
├── Organization: Brand A (id: 101)
│ └── Widget: branda.com
├── Organization: Brand B (id: 102)
│ └── Widget: brandb.com
└── Organization: Brand C (id: 103)
└── Widget: brandc.com
အကောင်အထည်ဖော်မှု ဥပမာများ
Python
import requests
def get_organizations(company_token):
"""Get list of all organizations"""
response = requests.get(
'https://chatapi.smsbat.com/api/company/organization',
headers={
'Authorization': f'Bearer {company_token}',
'Accept': 'text/plain'
}
)
response.raise_for_status()
return response.json()
def find_organization_by_name(company_token, name):
"""Find organization by name"""
organizations = get_organizations(company_token)
for org in organizations:
if org['name'].lower() == name.lower():
return org
return None
def get_organization_by_id(company_token, org_id):
"""Get specific organization by ID"""
organizations = get_organizations(company_token)
for org in organizations:
if org['id'] == org_id:
return org
return None
# Usage
token = "your-company-token"
# Get all organizations
orgs = get_organizations(token)
print(f"Found {len(orgs)} organizations")
# Find specific organization
support_org = find_organization_by_name(token, "Support")
if support_org:
print(f"Support organization ID: {support_org['id']}")
# Get by ID
org = get_organization_by_id(token, 24)
print(f"Organization: {org['name']}")
JavaScript (Node.js)
const axios = require('axios');
class OrganizationManager {
constructor(companyToken) {
this.companyToken = companyToken;
this.baseUrl = 'https://chatapi.smsbat.com';
}
async getOrganizations() {
const response = await axios.get(
`${this.baseUrl}/api/company/organization`,
{
headers: {
'Authorization': `Bearer ${this.companyToken}`,
'Accept': 'text/plain'
}
}
);
return response.data;
}
async findByName(name) {
const organizations = await this.getOrganizations();
return organizations.find(org =>
org.name.toLowerCase() === name.toLowerCase()
);
}
async findById(id) {
const organizations = await this.getOrganizations();
return organizations.find(org => org.id === id);
}
async listByIds(ids) {
const organizations = await this.getOrganizations();
return organizations.filter(org => ids.includes(org.id));
}
}
// Usage
const manager = new OrganizationManager('your-company-token');
async function manageOrganizations() {
// Get all organizations
const orgs = await manager.getOrganizations();
console.log(`Found ${orgs.length} organizations`);
// Find by name
const support = await manager.findByName('Support');
console.log('Support org:', support);
// Find by ID
const org = await manager.findById(24);
console.log('Organization:', org);
// Get multiple organizations
const selectedOrgs = await manager.listByIds([10, 20, 30]);
console.log('Selected organizations:', selectedOrgs);
}
manageOrganizations();
PHP
<?php
class OrganizationManager {
private $companyToken;
private $baseUrl = 'https://chatapi.smsbat.com';
public function __construct($companyToken) {
$this->companyToken = $companyToken;
}
public function getOrganizations() {
$ch = curl_init($this->baseUrl . '/api/company/organization');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $this->companyToken,
'Accept: text/plain'
]);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
public function findByName($name) {
$organizations = $this->getOrganizations();
foreach ($organizations as $org) {
if (strcasecmp($org['name'], $name) === 0) {
return $org;
}
}
return null;
}
public function findById($id) {
$organizations = $this->getOrganizations();
foreach ($organizations as $org) {
if ($org['id'] === $id) {
return $org;
}
}
return null;
}
}
// Usage
$manager = new OrganizationManager('your-company-token');
// Get all organizations
$orgs = $manager->getOrganizations();
echo "Found " . count($orgs) . " organizations\n";
// Find by name
$support = $manager->findByName('Support');
if ($support) {
echo "Support organization ID: " . $support['id'] . "\n";
}
// Find by ID
$org = $manager->findById(24);
if ($org) {
echo "Organization: " . $org['name'] . "\n";
}
အဖွဲ့အစည်းများနှင့် လက်တွဲလုပ်ဆောင်ခြင်း။
အဖွဲ့ အစည်းအားလုံးကို စာရင်းပြုစုပါ။
const organizations = await getOrganizations(companyToken);
organizations.forEach(org => {
console.log(`${org.id}: ${org.name}`);
});
အထွက်-
အဖွဲ့အစည်းများကို စစ်ထုတ်ခြင်း။
// Get organizations matching criteria
const supportOrgs = organizations.filter(org =>
org.name.toLowerCase().includes('support')
);
// Get organizations by IDs
const specificOrgs = organizations.filter(org =>
[10, 20, 30].includes(org.id)
);
မြေပုံအစည်း
// Create ID to name mapping
const orgMap = organizations.reduce((map, org) => {
map[org.id] = org.name;
return map;
}, {});
console.log(orgMap[24]); // "Sales Team"
ပေါင်းစည်းမှုပုံစံများ
အဖွဲ့အစည်းရွေးချယ်မှု UI
async function renderOrganizationSelect(companyToken) {
const organizations = await getOrganizations(companyToken);
const select = document.createElement('select');
select.id = 'organization-select';
organizations.forEach(org => {
const option = document.createElement('option');
option.value = org.id;
option.textContent = org.name;
select.appendChild(option);
});
return select;
}
အဖွဲ့အစည်းအလိုက် Chats လမ်းကြောင်း
async function routeChatToOrganization(chatRequest) {
const organizations = await getOrganizations(companyToken);
// Route based on business logic
let targetOrg;
if (chatRequest.department === 'sales') {
targetOrg = organizations.find(org =>
org.name.toLowerCase().includes('sales')
);
} else if (chatRequest.department === 'support') {
targetOrg = organizations.find(org =>
org.name.toLowerCase().includes('support')
);
}
return targetOrg?.id;
}
အဖွဲ့အစည်း မက်ထရစ်များ
class OrganizationMetrics {
async getMetrics(companyToken, orgId) {
// Get operators for organization
const operators = await getOperators(companyToken, orgId);
// Get chat statistics (example)
return {
organizationId: orgId,
operatorCount: operators.length,
activeOperators: operators.filter(op => op.isActive).length,
// Add more metrics as needed
};
}
async getAllMetrics(companyToken) {
const organizations = await getOrganizations(companyToken);
const metrics = await Promise.all(
organizations.map(org =>
this.getMetrics(companyToken, org.id)
)
);
return metrics;
}
}
အကောင်းဆုံးအလေ့အကျင့်များ
သိမ်းဆည်းခြင်း။
API ခေါ်ဆိုမှုများကို လျှော့ချရန် Cache အဖွဲ့အစည်းစာရင်း-
class CachedOrganizationManager {
constructor(companyToken, cacheTTL = 300000) { // 5 minutes
this.companyToken = companyToken;
this.cacheTTL = cacheTTL;
this.cache = null;
this.cacheTime = 0;
}
async getOrganizations(forceRefresh = false) {
const now = Date.now();
if (!forceRefresh &&
this.cache &&
now - this.cacheTime < this.cacheTTL) {
return this.cache;
}
this.cache = await fetchOrganizations(this.companyToken);
this.cacheTime = now;
return this.cache;
}
clearCache() {
this.cache = null;
this.cacheTime = 0;
}
}
မှားယွင်းကိုင်တွယ်ခြင်း။
async function getOrganizationsWithRetry(companyToken, retries = 3) {
for (let i = 0; i < retries; i++) {
try {
return await getOrganizations(companyToken);
} catch (error) {
if (error.response?.status === 401) {
throw new Error('Invalid or expired company token');
}
if (i === retries - 1) throw error;
// Wait before retry
await new Promise(resolve =>
setTimeout(resolve, Math.pow(2, i) * 1000)
);
}
}
}
အတည်ပြုခြင်း။
function validateOrganizationId(organizations, orgId) {
const org = organizations.find(o => o.id === orgId);
if (!org) {
throw new Error(`Organization ${orgId} not found`);
}
return org;
}
// Usage
const organizations = await getOrganizations(companyToken);
const org = validateOrganizationId(organizations, requestedOrgId);
ပြဿနာဖြေရှင်းခြင်း။
ဗလာအဖွဲ့စာရင်း
- ကုမ္ပဏီ တိုကင်သည် တရားဝင်ကြောင်း အတည်ပြုပါ။
- Check token တွင် အဖွဲ့အစည်းဝင်ရောက်ခွင့်ရှိသည်။
- အကောင့်ထဲတွင် အဖွဲ့အစည်းများ ရှိနေကြောင်း သေချာပါစေ။
အဖွဲ့အစည်း မတွေ့ပါ။
- အဖွဲ့အစည်း ID မှန်ကန်ကြောင်း အတည်ပြုပါ။
- စစ်ဆေးသောအဖွဲ့အစည်းကို ဖျက်မထားပါ။
- အဖွဲ့အစည်းစာရင်းကို ပြန်လည်စတင်ပါ။
401 ခွင့်ပြုချက်မရှိပါ။
- ကုမ္ပဏီ တိုကင်သည် တရားဝင်ပြီး သက်တမ်းမကုန်ကြောင်း စစ်ဆေးပါ။
- လိုအပ်ပါက ကုမ္ပဏီ တိုကင်အသစ်ကို တောင်းဆိုပါ။
- တိုကင်ပုံစံမှန်ကန်ကြောင်း စစ်ဆေးပါ။
နောက်အဆင့်များ
- Authentication - ကုမ္ပဏီ တိုကင်ရယူပါ။
- အော်ပရေတာ - အဖွဲ့အစည်းများတွင် အော်ပရေတာများကို စီမံခန့်ခွဲပါ။
- Widget Integration - အဖွဲ့အစည်းများအတွက် ချတ်ကို ပေါင်းစည်းပါ