اختصاص خودکار کاربران Zammad به سازمان‌ها بر اساس دامنه ایمیل

اختصاص خودکار کاربران Zammad به سازمان‌ها بر اساس دامنه ایمیل

8 دقیقه مطالعه · منتشر شده ۱۴۰۵/۵/۶

دانلود workflow

فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.

  1. فایل JSON را دانلود کنید.
  2. در n8n: Workflows → Import from File.
  3. Credentialهای هر node را متصل کنید.
  4. workflow را فعال کنید.

شناسه workflow: 2588 · منبع: کاتالوگ Axeto

اختصاص کاربران Zammad به سازمان‌ها بر اساس دامنه ایمیل

این گردش کار، انتساب خودکار کاربران موجود در Zammad به سازمان‌ها را بر اساس دامنه‌های ایمیل آن‌ها خودکار می‌کند. این گردش کار از ویژگی انتساب مبتنی بر دامنه Zammad برای پردازش کاربرانی که در حال حاضر هیچ سازمانی ندارند، استفاده می‌کند. گردش کار، دامنه ایمیل آن‌ها را با سازمان‌هایی که برای انتساب مبتنی بر دامنه فعال شده‌اند و دامنه‌های اشتراکی فعال دارند، مطابقت می‌دهد.

شما می‌توانید این گردش کار را در نمونه n8n خود در کاتالوگ Axeto.ai n8n پیدا کرده و وارد کنید.

نمای کلی گردش کار

گردش کار به طور منطقی به بلوک‌های عملکردی زیر تقسیم می‌شود:

1. راه‌انداز و بازیابی داده: گردش کار را به صورت دستی آغاز کرده و تمام کاربران و تمام سازمان‌ها را از Zammad بازیابی می‌کند.

2. فیلتر کردن سازمان‌ها: سازمان‌ها را فیلتر می‌کند تا فقط آن‌هایی را که انتساب مبتنی بر دامنه فعال دارند، دامنه غیر خالی دارند، اشتراکی هستند و فعال هستند، شامل شود.

3. فیلتر کردن کاربران: کاربرانی را که ایمیل دارند، در حال حاضر انتساب سازمانی ندارند و فعال هستند، فیلتر می‌کند.

4. استخراج دامنه: دامنه ایمیل را از هر کاربر فیلتر شده استخراج می‌کند.

5. تطبیق و انتساب: دامنه‌های ایمیل کاربران را با دامنه‌های سازمان مطابقت داده و سازمان کاربر را در Zammad بر این اساس به‌روزرسانی می‌کند.

تشریح گره به گره

۱. راه‌انداز و بازیابی داده

این بلوک گردش کار را به صورت دستی شروع کرده و تمام کاربران و سازمان‌ها را از طریق API از سیستم Zammad بازیابی می‌کند.

  • راه‌انداز دستی (شروع گردش کار)

* نوع: راه‌انداز دستی

* پیکربندی: بدون پارامتر؛ فقط شروع دستی.

* هدف: اجرای دستی را برای آزمایش یا اجراهای درخواستی امکان‌پذیر می‌سازد.

* خروجی: گره‌های پایین‌دستی را راه‌اندازی می‌کند.

  • دریافت تمام کاربران Zammad

* نوع: گره Zammad (resource: user, operation: getAll)

* پیکربندی: بدون فیلتر؛ تمام کاربران را برمی‌گرداند (returnAll: true).

* اعتبارنامه‌ها: از احراز هویت توکن Zammad (که به صورت خارجی پیکربندی شده است) استفاده می‌کند.

* ورودی: راه‌اندازی از گره شروع دستی.

* خروجی: لیستی از تمام کاربران، که هر شیء کاربر شامل id، email، organization_id، وضعیت active و غیره است.

* موارد لبه: خطاهای API، اعتبارنامه‌های نامعتبر، لیست خالی کاربران.

  • دریافت تمام سازمان‌های Zammad

* نوع: گره Zammad (resource: organization, operation: getAll)

* پیکربندی: بدون فیلتر؛ تمام سازمان‌ها را برمی‌گرداند (returnAll: true).

* اعتبارنامه‌ها: مشابه بالا.

* ورودی: راه‌اندازی از گره شروع دستی.

* خروجی: لیستی از تمام سازمان‌ها، که هر شیء شامل id، domain، پرچم domain_assignment، shared، active و غیره است.

* موارد لبه: خطاهای API، اعتبارنامه‌های نامعتبر، لیست خالی سازمان‌ها.

۲. فیلتر کردن سازمان‌ها

این بلوک سازمان‌های بازیابی شده را فیلتر می‌کند تا فقط آن‌هایی را که برای انتساب مبتنی بر دامنه واجد شرایط هستند، انتخاب کند.

  • فیلتر سازمان‌های واجد شرایط

* نوع: گره If

* پیکربندی: تمام شرایط زیر باید درست باشند (AND):

* domain_assignment = true

* domain خالی نباشد

* shared = true

* active = true

* domain برابر با domain باشد (این شرط اطمینان حاصل می‌کند که فیلد دامنه وجود دارد و معتبر است).

* ورودی: از گره "دریافت تمام سازمان‌های Zammad".

* خروجی: شاخه "true" سازمان‌هایی را که معیارها را برآورده می‌کنند، خروجی می‌دهد؛ شاخه "false" دور ریخته می‌شود.

* هدف: اطمینان حاصل می‌کند که فقط سازمان‌های پیکربندی شده برای انتساب مبتنی بر دامنه پردازش می‌شوند.

* موارد لبه: سازمان‌هایی که فیلد domain یا پرچم domain_assignment را ندارند، سازمان‌های غیرفعال.

۳. فیلتر کردن کاربران

این بلوک کاربران بازیابی شده را فیلتر می‌کند تا فقط آن‌هایی را که می‌توانند سازمانی به آن‌ها اختصاص داده شود، انتخاب کند.

  • فیلتر کاربران برای انتساب

* نوع: گره If

* پیکربندی: تمام شرایط زیر باید برآورده شوند (AND):

* organization_id برابر با null باشد (کاربر سازمانی اختصاص داده نشده است).

* active = true

* email خالی نباشد

* email حاوی '@' باشد

* ورودی: از گره "دریافت تمام کاربران Zammad".

* خروجی: شاخه "true" کاربران فیلتر شده را خروجی می‌دهد؛ شاخه "false" دور ریخته می‌شود.

* هدف: لیست کاربران را برای تطبیق دامنه آماده می‌کند.

* موارد لبه: کاربران بدون آدرس ایمیل، کاربران غیرفعال، کاربرانی که قبلاً سازمان‌هایی به آن‌ها اختصاص داده شده است.

۴. استخراج دامنه

این بلوک قسمت دامنه را از آدرس ایمیل هر کاربر استخراج می‌کند.

  • استخراج دامنه از ایمیل کاربر

* نوع: گره Set

* پیکربندی:

* دو فیلد را تنظیم می‌کند:

* user_id: از فیلد id کاربر کپی شده است ({{$json["id"]}}).

* domain: با تقسیم رشته email بر '@' و گرفتن قسمت دوم استخراج می‌شود ({{$json["email"].split('@')[1]}}).

* فقط این دو فیلد را برای خروجی نگه می‌دارد.

* ورودی: از گره "فیلتر کاربران برای انتساب" (شاخه true).

* خروجی: داده‌های ساده شده کاربر شامل user_id و domain.

* هدف: داده‌های کاربر را برای ادغام کارآمد پاکسازی و آماده می‌کند.

* موارد لبه: ایمیل‌های بدون '@' قبلاً فیلتر شده‌اند.

۵. تطبیق و انتساب

این بلوک دامنه‌های ایمیل کاربران را با دامنه‌های سازمان مطابقت داده و سازمان کاربر را در Zammad به‌روزرسانی می‌کند.

  • ادغام دامنه‌های کاربر با سازمان‌ها

* نوع: گره Merge

* پیکربندی:

* حالت: Combine

* فیلدهای مورد تطبیق: domain (رشته)

* ورودی‌ها:

* ورودی ۱: خروجی "استخراج دامنه از ایمیل کاربر" (کاربران با دامنه‌ها).

* ورودی ۲: خروجی گره "فیلتر سازمان‌های واجد شرایط" (سازمان‌های واجد شرایط).

* خروجی: داده‌های ترکیبی که در آن domain کاربر با domain سازمان مطابقت دارد. کاربرانی که دامنه‌های آن‌ها با هیچ سازمانی مطابقت ندارد، ردیف خروجی از این گره تولید نخواهند کرد.

* هدف: کاربران را بر اساس دامنه ایمیل به سازمان‌های مربوطه خود پیوند می‌دهد.

  • به‌روزرسانی سازمان کاربر Zammad

* نوع: گره Zammad (resource: user, operation: update)

* پیکربندی:

* ID: از فیلد user_id از داده‌های ادغام شده تنظیم شده است ({{$json["user_id"]}}).

* Organization: به فیلد id سازمان تطبیق یافته از داده‌های ادغام شده تنظیم شده است ({{$json["id"]}}).

* اعتبارنامه‌ها: همان احراز هویت توکن Zammad.

* ورودی: از گره "ادغام دامنه‌های کاربر با سازمان‌ها".

* خروجی: شیء کاربر به‌روزرسانی شده با انتساب سازمان جدید.

* موارد لبه: خطاهای API، شناسه‌های کاربری نامعتبر، مشکلات مجوز هنگام به‌روزرسانی کاربر.

بازسازی گردش کار از ابتدا

1. افزودن گره راه‌انداز دستی:

* یک گره "راه‌انداز دستی" اضافه کنید.

* خروجی آن را به گره‌های بعدی متصل کنید.

2. افزودن گره‌های Zammad برای بازیابی داده:

* یک گره Zammad اضافه کنید. منبع را روی user، عملیات را روی getAll و Return All را روی true تنظیم کنید. اعتبارنامه‌های احراز هویت توکن Zammad را پیکربندی کنید. نام آن را "دریافت تمام کاربران Zammad" بگذارید.

* یک گره Zammad دیگر اضافه کنید. منبع را روی organization، عملیات را روی getAll و Return All را روی true تنظیم کنید. از همان اعتبارنامه‌ها استفاده کنید. نام آن را "دریافت تمام سازمان‌های Zammad" بگذارید.

* خروجی راه‌انداز دستی را به هر دوی این گره‌های Zammad متصل کنید.

3. افزودن گره فیلتر کاربر:

* یک گره "If" اضافه کنید. نام آن را "فیلتر کاربران برای انتساب" بگذارید.

* خروجی "دریافت تمام کاربران Zammad" را به این گره متصل کنید.

* شرایط را پیکربندی کنید (همه باید درست باشند):

* organization_id برابر با null باشد

* active برابر با true باشد

* email خالی نباشد

* email حاوی '@' باشد

4. افزودن گره استخراج دامنه:

* یک گره "Set" اضافه کنید. نام آن را "استخراج دامنه از ایمیل کاربر" بگذارید.

* خروجی شاخه "true" از "فیلتر کاربران برای انتساب" را به این گره متصل کنید.

* گره را طوری پیکربندی کنید که فقط دو فیلد را نگه دارد:

* user_id = عبارت: {{$json["id"]}}

* domain = عبارت: {{$json["email"].split('@')[1]}}

5. افزودن گره فیلتر سازمان:

* یک گره "If" اضافه کنید. نام آن را "فیلتر سازمان‌های واجد شرایط" بگذارید.

* خروجی "دریافت تمام سازمان‌های Zammad" را به این گره متصل کنید.

* شرایط را پیکربندی کنید (همه باید درست باشند):

* domain_assignment برابر با true باشد

* domain خالی نباشد

* shared برابر با true باشد

* active برابر با true باشد

* domain برابر با domain باشد

6. افزودن گره Merge:

* یک گره "Merge" اضافه کنید. نام آن را "ادغام دامنه‌های کاربر با سازمان‌ها" بگذارید.

* حالت را روی Combine تنظیم کنید.

* فیلدهای مورد تطبیق را روی domain (رشته) تنظیم کنید.

* خروجی "استخراج دامنه از ایمیل کاربر" را به عنوان ورودی اول متصل کنید.

* خروجی شاخه "true" از "فیلتر سازمان‌های واجد شرایط" را به عنوان ورودی دوم متصل کنید.

7. افزودن گره به‌روزرسانی Zammad:

* یک گره Zammad اضافه کنید. منبع را روی user و عملیات را روی update تنظیم کنید. نام آن را "به‌روزرسانی سازمان کاربر Zammad" بگذارید.

* از همان اعتبارنامه‌های احراز هویت توکن Zammad استفاده کنید.

* گره را پیکربندی کنید:

* ID: {{$json["user_id"]}}

* در بخش Update Fields، organization را روی {{$json["id"]}} تنظیم کنید (این به شناسه سازمان از داده‌های ادغام شده اشاره دارد).

* خروجی "ادغام دامنه‌های کاربر با سازمان‌ها" را به این گره متصل کنید.

8. فعال‌سازی و آزمایش:

* گردش کار را ذخیره کنید.

* تمام گره‌ها را فعال کنید.

* گردش کار را با استفاده از گره راه‌انداز به صورت دستی اجرا کنید.

این تنظیمات به طور خودکار کاربران را بر اساس دامنه‌های ایمیل مطابق برای کاربرانی که در حال حاضر فاقد سازمان هستند، به سازمان‌ها در Zammad اختصاص می‌دهد.

Nodeهای استفاده‌شده

سوالات متداول

این گردش کار n8n چه کاری انجام می‌دهد؟

این گردش کار به طور خودکار کاربران Zammad را بر اساس دامنه ایمیل آن‌ها به سازمان‌های مناسب اختصاص می‌دهد. این کار با فیلتر کردن کاربرانی که هنوز سازمانی ندارند و مطابقت دادن دامنه ایمیل آن‌ها با سازمان‌های فعال و اشتراکی که برای انتساب مبتنی بر دامنه پیکربندی شده‌اند، انجام می‌شود.

چه پیش‌نیازهایی برای اجرای این گردش کار لازم است؟

شما به یک نمونه n8n فعال، دسترسی به API Zammad با توکن احراز هویت معتبر، و پیکربندی سازمان‌ها در Zammad با پرچم `domain_assignment` فعال و دامنه‌های اشتراکی نیاز دارید.

چگونه می‌توانم این گردش کار را در Zammad خود پیاده‌سازی کنم؟

شما می‌توانید این گردش کار را از کاتالوگ Axeto.ai n8n وارد کرده و سپس آن را با اطلاعات اتصال Zammad خود پیکربندی کنید.

workflowهای مرتبط

این workflow در کاتالوگ Axeto.ai بایگانی شده است. لایسنس اصلی متعلق به سازنده workflow است.