تعديل الملف الشخصي للوكيل

نشرح في هذا المقال خطوات تعديل الملف الشخصي للوكيل أو موظف مركز المساعدة.

طلب تعديل الملف الشخصي

يمكنك تعديل إعدادات حساب وكيل من خلال عدة نقاط اتصال:

1.النقطة account/profile/

أرسل طلب POST لنقطة account/profile/ لتعديل إعدادات الحساب الشخصية للوكيل الحالي الذي سجل دخول لمركز المساعدة، يمكنك تعديل الاسم، وكلمة المرور، والصورة الشخصية، والبريد الإلكتروني، وحالة الظهور وغيرها وفق ما يلي:

عنوان URL

support.example.com/api/agent/v1/account/profile

جسم الطلب Body

يُكتب بصيغة JSON ويتضمن المعاملات التالية:

first_name

معامل إجباري، نوعه سلسلة نصية string، يحدد الاسم الأول للوكيل.

last_name

معامل إجباري، نوعه سلسلة نصية string، يحدد اسم عائلة الوكيل

email

معامل إجباري، نوعه سلسلة نصية string، يحدد البريد الإلكتروني للوكيل.

password

معامل اختياري، نوعه سلسلة نصية string، تضبط بواسطته كلمة المرور الجديدة للوكيل إذا رغبت بتغييرها.

password_confirmation

معامل اختياري، نوعه سلسلة نصية string، يستعمل لتأكيد كلمة المرور الجديدة.

avatar

معامل اختياري، نوعه سلسلة نصية string، يُحَدِّد مسار تخزين الصورة الشخصية للوكيل على خادمك.

notify_after

معامل اختياري، نوعه عدد صحيح integer، لا يقبل القيمة الفارغة null، ويدل على المدة الزمنية بالساعات التي سترسل بها زيتون إشعارات الوكيل غير المقروءة برسالة واحدة إلى بريده الإلكتروني، ويأخذ إحدى القيم التالية حصرًا: 2 أو 4 أو 6 أو 8 أو 12 أو 24.

current_password

معامل إجباري في حالة واحدة فقط عند استخدام نقطة الاتصال لتغيير كلمة مرور الوكيل، نوع المعامل سلسلة نصية string، وهو يشير إلى كلمة المرور الحالية.

locale

معامل اختياري، نوعه سلسلة نصية string، يحدد الإعدادات المحلية لحساب الوكيل ويقبل إحدى القيمتين ar أو en.

online_status

معامل اختياري، نوعه سلسلة نصية string، يُحَدِّد حالة ظهور الوكيل ، ويقبل القيمة online أو away أو invisible أو inactive.

مثال

لتعديل الاسم الأول، ومدة استلام رسالة الإشعارات للوكيل Ahmad Ali ذي الرقم 1434 من خلال كتابة اسمه الأول كاملًا بالحروف الإنجليزية الصغيرة، وتعديل مدة استلامه للإشعارات لتصبح 12 ساعة بدلًا من 6 ساعات، فسنكتب عندها التالي:

curl --header 'Content-Type: application/json' --header 'Authorization: Bearer your_token' -X POST --data '{
"first_name": "ahmad",
"last_name": "Ali",
"email": "Ahmad@exampel.com",
"notify_after": "12"
}' 'https://support.example.com/api/agent/v1/account/profile'

لاحظ أننا نمرر دائمًا في جسم الطلب المعاملات الإجبارية الثلاثة (وهي الاسم الأول واسم العائلة والبريد الإلكتروني) مع أي معاملات أخرى نرغب بتعديلها.

2. النقطة {agents/{id/

أرسل طلب PUT لنقطة الاتصال {agents/{id/ لتعديل إعدادات حساب أي وكيل في مركز المساعدة بالاعتماد على رقمه التعريفي id مثل الاسم، والحالة نشط active أو غير نشط inactive أو محذوف deleted، والبريد الإلكتروني، والصورة الشخصية، والنماذج وصناديق البريد الخاصة بالوكيل، وفرق العمل التي ينتمي إليها، وفئات الأشخاص الذين يستطيع العمل معهم، والحقول المخصصة التي لديه صلاحيات عليها وغير ذلك.

عنوان URL

https://support.example.com/api/agent/v1/agents/{id}

معاملات المسار

معامل واحد إجباري، هو الرقم التعريفي للوكيل id، نوعه عدد صحيح integer.

جسم الطلب Body

يُكتب بصيغة JSON ويتضمن المعاملات التالية:

first_name

معامل إجباري، نوعه سلسلة نصية string، يحدد الاسم الأول للوكيل.

last_name

معامل إجباري، نوعه سلسلة نصية string، يحدد اسم عائلة الوكيل.

email

معامل إجباري، نوعه سلسلة نصية string، يُحَدِّد البريد الإلكتروني للوكيل.

status

معامل إجباري، نوعه سلسلة نصية string، يُحَدِّد حالة حساب للوكيل، إذا كان فعّالًا أم لا، ويقبل القيمة active أو inactive أو deleted.

password

معامل اختياري، نوعه سلسلة نصية string، تضبط بواسطته كلمة المرور الجديدة للوكيل إذا رغبت بتغييرها.

password_confirmation

معامل اختياري، نوعه سلسلة نصية string، يستعمل لتأكيد كلمة المرور الجديدة.

inbox_ids

معامل اختياري، نوعه مصفوفة أعداد صحيحة array، يُحَدِّد الأرقام التعريفية لصناديق البريد التي ترغب بأن يكون للوكيل صلاحية عليها، علمًا أنك تستطيع معرفة الأرقام التعريفية لصناديق البريد بإرسال طلب GET إلى نقطة الاتصال inboxes/.

team_ids

معامل اختياري، نوعه مصفوفة أعداد صحيحة array، يُحَدِّد الأرقام التعريفية لفرق العمل التي ترغب بأن ينتمي إليها الوكيل، علمًا أنك تستطيع معرفة الأرقام التعريفية لفرق العمل بإرسال طلب GET إلى نقطة الاتصال teams/.

form_ids

معامل اختياري، نوعه مصفوفة أعداد صحيحة array، يُحَدِّد الأرقام التعريفية لنماذج التواصل التي ترغب بأن يكون للوكيل صلاحية عليها، علمًا أنك تستطيع معرفة الأرقام التعريفية للنماذج بإرسال طلب GET إلى نقطة الاتصال forms/.

locale

معامل اختياري، نوعه سلسلة نصية string، يُحَدِّد الإعدادات المحلية لحساب الوكيل ويقبل إحدى القيمتين ar أو en.

custom_fields

يستخدم فقط في الحالات التي تنشئ فيها حقولًا مخصصة زيادة على الحقول التي توفرها زيتون افتراضيًا لتعريف الوكلاء فقد ترغب مثلًا بإضافة حقل لكتابة رقم هاتف الوكيل أو ربما لرفع صورة وثيقة تخصه أو غير ذلك. نوع المعامل مصفوفة array تتألف من عدة عناصر objects يمثل كل منها أحد الحقول المخصصة.

segment_ids

معامل اختياري، نوعه مصفوفة أعداد صحيحة array، يُحَدِّد الأرقام التعريفية لفئات جهات الاتصال التي ترغب بأن يكون للوكيل صلاحية عليها، علمًا أنك تستطيع معرفة الأرقام التعريفية لفئات جهات الاتصال بإرسال طلب GET إلى نقطة الاتصال segments/.

field_group_ids

معامل اختياري، نوعه مصفوفة أعداد صحيحة، تكتب ضمنه الأرقام التعريفية لمجموعة الحقول المخصصة الخاصة بتعريف الشركات وجهات الاتصال التي ترغب بأن يكون للوكيل صلاحية عليها، علمًا أنك تستطيع معرفة الأرقام التعريفية لمجموعات الحقول المخصصة وتبعيتها للموارد بإرسال طلب GET إلى نقطة الاتصال custom-fields/.

مثال

لتعديل بعض خصائص الوكيل Ahamad Ali، مثل تعديل كلمة المرور الخاصة به، وصناديق البريد التي يمكنه العمل عليها، ونمنحه صلاحية الوصول إلى مجموعة معينة من مجموعات الحقول المخصصة لتكن على سبيل المثال المجموعة رقم 2053 . فسيكون الطلب كالتالي:

curl -X PUT --header 'Content-Type: application/json' --header 'Authorization: Bearer your_token' --data '{
"first_name": "ahmad",
"last_name": "Ali",
"email": "Ahmad@exampel.com",
"status": "active",
"password": "new_password",
"password_confirmation": "new_password",
"inbox_ids": [2019, 2058],
"field_group_ids": [2053]
}' 'https://support.example.com/api/agent/v1/agents/1434'

يجب الانتباه لأن أي صناديق بريد لا تذكر أرقامها التعريفية ضمن المصفوفة inbox_ids لن يعود للوكيل صلاحية عليها حتى لو كان يملك صلاحية عليها قبل تنفيذ الأمر، والقاعدة نفسها تنطبق على فرق العمل والنماذج والحقول المخصصة وأي مصفوفات أخرى تخص إعدادات الوكيل.

كما تجدر الإشارة إلى أنك تستطيع هنا تعديل كلمة مرور الوكيل من دون معرفة كلمة مروره الحالية بعكس نقطة الاتصال السابقة account/profile/ التي تتطلب تمرير كلمة المرور الحالية عند التعديل.

3. النقطة agents/{agent_id}/permissions/

أرسل طلب PUT لنقطة الاتصال agents/{agent_id}/permissions/ لتعديل صلاحيات وكيل معين بناءً على معرف الوكيل agent_id خاصة الذي لا ينتمي لأي فريق عمل.

عنوان URL

https://support.example.com/api/agent/v1/agents/{agent_id}/permission

معاملات المسار

معامل واحد إجباري هو الرقم التعريفي للوكيل agent_id، نوع المعامل عدد صحيح integer.

جسم الطلب Body

يُكتب بصيغة JSON ويتضمن المعاملات التالية

permission

معامل إجباري، نوعه سلسلة نصية string، يشير إلى اسم الصلاحية التي تريد منحها للوكيل أو سحبها منه، ويحمل مثلًا القيم التالية:

  • knowledgebases.admin لصلاحية إدارة قاعدة المعرفة.
  • contacts.admin لصلاحية إدارة جهات الاتصال.
  • agents.admin لصلاحية إدارة الوكلاء.

value

معامل إجباري، نوعه سلسلة نصية string، يأخذ إما القيمة true لمنح الوكيل صلاحية معينة أو false لسحب الصلاحية منه.

مثال

لمنح صلاحية إدارة جهات الاتصال للوكيل رقم 1440 والذي لا ينتمي لأي فريق عمل نكتب التالي:

curl -X PUT --header 'Content-Type: application/json' --header 'Authorization: Bearer your_token' --data '{
"permission": "contacts.admin",
"value": "true"
}' 'https://support.example.com/api/agent/v1/agents/1440/permissions'