تبدیل خودکار OneDrive Word به PDF و ارسال با Gmail

تبدیل خودکار OneDrive Word به PDF و ارسال با Gmail

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

دانلود workflow

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

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

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

تبدیل خودکار OneDrive به PDF با Foxit و تحویل از طریق Gmail

این گردش کار، تبدیل اسناد Microsoft Word ذخیره شده در OneDrive به فرمت PDF را با استفاده از سرویس‌های PDF Foxit خودکار می‌کند و سپس PDF حاصل را از طریق Gmail ارسال می‌نماید. این گردش کار برای سناریوهایی که نیاز به تبدیل و توزیع خودکار اسناد دارند، ایده‌آل است.

دسته‌بندی‌ها: مدیریت فایل، اتوماسیون اسناد، یکپارچه‌سازی ابری

نودهای اصلی:

  • n8n-nodes-base.microsoftOneDriveTrigger
  • n8n-nodes-base.filter
  • n8n-nodes-base.microsoftOneDrive
  • n8n-nodes-base.set
  • n8n-nodes-base.httpRequest (برای API Foxit)
  • n8n-nodes-base.if
  • n8n-nodes-base.wait
  • n8n-nodes-base.gmail
  • n8n-nodes-base.stickyNote

---

تشریح گردش کار (Workflow Breakdown)

گردش کار برای وضوح و مدیریت بهتر به مراحل مجزا تقسیم شده است:

1. تشخیص و فیلتر ورودی: پوشه مشخصی در OneDrive را برای یافتن اسناد Word جدید نظارت می‌کند.

2. بازیابی و آماده‌سازی فایل: سند Word شناسایی شده را دانلود کرده و برای پردازش آماده می‌کند.

3. تبدیل PDF از طریق Foxit: سند را به API فاکسیت آپلود می‌کند، تبدیل را آغاز می‌کند، تکمیل را بررسی می‌کند و PDF را دانلود می‌کند.

4. ارسال ایمیل: PDF تبدیل شده را به عنوان پیوست ایمیل از طریق Gmail ارسال می‌کند.

---

۱. تشخیص و فیلتر ورودی

این بخش بر شناسایی و جداسازی اسناد Word هدف از OneDrive شما تمرکز دارد.

نودها (Nodes):

  • Microsoft OneDrive Trigger
  • Filter to Word

جزئیات:

  • Microsoft OneDrive Trigger

* نوع (Type): n8n-nodes-base.microsoftOneDriveTrigger

* هدف (Purpose): پوشه تعیین شده در OneDrive را برای آپلود فایل‌های جدید نظارت می‌کند.

* پیکربندی (Configuration):

* یک پوشه خاص را نظارت می‌کند (مثلاً ID 01IZFFBT44M7VRGRBPXJBJHXORCT5YINXH).

* بازه زمانی نظارت روی هر دقیقه تنظیم شده است.

* برای دسترسی به Microsoft OneDrive به اعتبارنامه‌های OAuth2 نیاز دارد.

* خروجی (Output): اطلاعات فایل، از جمله id فایل را به نود بعدی منتقل می‌کند.

* مشکلات احتمالی (Potential Issues): انقضای توکن احراز هویت، شناسه پوشه نامعتبر، مشکلات اتصال شبکه.

  • Filter to Word

* نوع (Type): n8n-nodes-base.filter

* هدف (Purpose): اطمینان حاصل می‌کند که فقط اسناد Microsoft Word در گردش کار ادامه یابند.

* پیکربندی (Configuration):

* موارد را بر اساس نوع MIME فیلتر می‌کند.

* شرط (Condition): {{ $json["mimeType"] }} === "application/vnd.openxmlformats-officedocument.wordprocessingml.document" (نوع MIME استاندارد .docx).

* خروجی (Output): فقط اسناد Word را به نود "Get File" منتقل می‌کند.

* مشکلات احتمالی (Potential Issues): اطلاعات نوع MIME گم شده یا تغییر یافته، خطاهای ارزیابی عبارت (expression).

---

۲. بازیابی و آماده‌سازی فایل

این مرحله شامل دانلود سند Word شناسایی شده از OneDrive و ساختاردهی داده‌های آن برای سرویس تبدیل است.

نودها (Nodes):

  • Get File
  • Set File Field

جزئیات:

  • Get File

* نوع (Type): n8n-nodes-base.microsoftOneDrive

* هدف (Purpose): محتوای سند Word را از OneDrive دانلود می‌کند.

* پیکربندی (Configuration):

* عملیات (Operation): Download

* شناسه فایل (File ID): از یک عبارت برای ارجاع به شناسه فایل از نود Trigger استفاده می‌کند (مثلاً {{ $items("Microsoft OneDrive Trigger")[0].json.id }}).

* از همان اعتبارنامه‌های OAuth2 Microsoft OneDrive استفاده می‌کند.

* خروجی (Output): داده‌های باینری فایل را ارائه می‌دهد.

* مشکلات احتمالی (Potential Issues): فایل یافت نشد (قبل از دانلود حذف شده)، خطاهای مجوز، وقفه‌های شبکه.

  • Set File Field

* نوع (Type): n8n-nodes-base.set

* هدف (Purpose): با اختصاص دادن محتوای باینری به یک فیلد خاص، داده‌های فایل را برای آپلود به API Foxit آماده می‌کند.

* پیکربندی (Configuration):

* یک فیلد جدید به نام bits ایجاد می‌کند.

* داده‌های باینری از ویژگی data نود قبلی را به فیلد bits اختصاص می‌دهد.

* گزینه "Include Other Fields" برای حفظ فراداده موجود فعال است.

* خروجی (Output): داده‌های قالب‌بندی شده شامل محتوای فایل باینری.

* مشکلات احتمالی (Potential Issues): خطاهای تبدیل داده، محتوای باینری گم شده.

---

۳. تبدیل PDF از طریق Foxit

این مرحله اصلی تبدیل است که با API خدمات PDF Foxit تعامل دارد.

نودها (Nodes):

  • Upload to Foxit
  • Convert to PDF
  • Check Task
  • Is the job done? (نود If)
  • Wait
  • Download

جزئیات:

  • Upload to Foxit

* نوع (Type): n8n-nodes-base.httpRequest

* هدف (Purpose): سند Word را به سرورهای Foxit آپلود می‌کند.

* پیکربندی (Configuration):

* متد (Method): POST

* URL: https://na1.fusion.foxit.com/pdf-services/api/documents/upload

* احراز هویت (Authentication): به اعتبارنامه‌های HTTP سفارشی پیکربندی شده برای API Foxit نیاز دارد.

* نوع محتوای بدنه (Body Content Type): multipart/form-data

* پارامتر فرم (Form Parameter): file (نوع: formBinaryData, فیلد داده ورودی: data).

* خروجی (Output): یک شناسه سند از Foxit برمی‌گرداند.

* مشکلات احتمالی (Potential Issues): خرابی احراز هویت، خطاهای آپلود فایل، محدودیت‌های اندازه payload.

  • Convert to PDF

* نوع (Type): n8n-nodes-base.httpRequest

* هدف (Purpose): فرآیند تبدیل PDF را در پلتفرم Foxit آغاز می‌کند.

* پیکربندی (Configuration):

* متد (Method): POST

* URL: https://na1.fusion.foxit.com/pdf-services/api/documents/create/pdf-from-word

* احراز هویت (Authentication): همان اعتبارنامه‌های API Foxit.

* بدنه (Body): payload JSON حاوی شناسه سند به دست آمده از مرحله "Upload to Foxit".

* خروجی (Output): یک شناسه وظیفه (task ID) برای نظارت بر کار تبدیل ارائه می‌دهد.

* مشکلات احتمالی (Potential Issues): خطاهای API، شناسه سند نامعتبر، فرمت درخواست نادرست.

  • Check Task

* نوع (Type): n8n-nodes-base.httpRequest

* هدف (Purpose): API Foxit را برای بررسی وضعیت وظیفه تبدیل در حال انجام، بررسی می‌کند (Poll).

* پیکربندی (Configuration):

* متد (Method): GET

* URL: https://na1.fusion.foxit.com/pdf-services/api/tasks/{taskId} (که در آن {taskId} به طور پویا از مرحله قبل درج می‌شود).

* احراز هویت (Authentication): همان اعتبارنامه‌های API Foxit.

* خروجی (Output): وضعیت فعلی وظیفه تبدیل را برمی‌گرداند.

* مشکلات احتمالی (Potential Issues): شناسه وظیفه نامعتبر، مشکلات شبکه، محدودیت نرخ API.

  • Is the job done?

* نوع (Type): n8n-nodes-base.if

* هدف (Purpose): تعیین می‌کند که آیا تبدیل PDF کامل شده است یا خیر.

* پیکربندی (Configuration):

* شرط (Condition): بررسی می‌کند که آیا فیلد status در پاسخ "Check Task" برابر با "COMPLETED" است یا خیر.

* خروجی (Output):

* شاخه True: به نود "Download" ادامه می‌دهد.

* شاخه False: به نود "Wait" ادامه می‌دهد.

* مشکلات احتمالی (Potential Issues): فیلد وضعیت گم شده یا بدشکل، خطاهای عبارت.

  • Wait

* نوع (Type): n8n-nodes-base.wait

* هدف (Purpose): گردش کار را برای مدت زمان مشخصی متوقف می‌کند قبل از اینکه وضعیت تبدیل را دوباره بررسی کند.

* پیکربندی (Configuration):

* زمان انتظار پیش‌فرض (قابل تنظیم).

* خروجی (Output): کنترل را به نود "Is the job done?" برای ارزیابی مجدد وضعیت وظیفه بازمی‌گرداند.

* مشکلات احتمالی (Potential Issues): timeout گردش کار اگر تبدیل زمان بسیار طولانی ببرد.

  • Download

* نوع (Type): n8n-nodes-base.httpRequest

* هدف (Purpose): فایل PDF تبدیل شده موفقیت‌آمیز را از Foxit دانلود می‌کند.

* پیکربندی (Configuration):

* متد (Method): GET

* URL: https://na1.fusion.foxit.com/pdf-services/api/documents/{resultDocumentId}/download (که در آن {resultDocumentId} به طور پویا از پاسخ تکمیل تبدیل درج می‌شود).

* احراز هویت (Authentication): همان اعتبارنامه‌های API Foxit.

* خروجی (Output): داده‌های باینری PDF تبدیل شده را ارائه می‌دهد.

* مشکلات احتمالی (Potential Issues): خرابی دانلود، شناسه سند نامعتبر، خطاهای احراز هویت.

---

۴. ارسال ایمیل

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

نودها (Nodes):

  • Email PDF

جزئیات:

  • Email PDF

* نوع (Type): n8n-nodes-base.gmail

* هدف (Purpose): فایل PDF تبدیل شده را به عنوان پیوست ایمیل ارسال می‌کند.

* پیکربندی (Configuration):

* گیرنده (Recipient): raymondcamden@gmail.com ( توجه: این را به گیرنده مورد نظر خود سفارشی کنید).

* موضوع (Subject): "New Document" (یا در صورت نیاز سفارشی کنید).

* پیام (Message): "Enjoy your shiny PDF." (یا در صورت نیاز سفارشی کنید).

* پیوست (Attachment): داده‌های باینری PDF دانلود شده از Foxit.

* به اعتبارنامه‌های OAuth2 Gmail نیاز دارد.

* مشکلات احتمالی (Potential Issues): محدودیت‌های سهمیه API Gmail، انقضای توکن OAuth، آدرس گیرنده نامعتبر، محدودیت‌های اندازه پیوست.

---

پیش‌نیازهای راه‌اندازی

برای اجرای موفقیت‌آمیز این گردش کار، موارد زیر را اطمینان حاصل کنید:

1. حساب مایکروسافت OneDrive: دسترسی به یک حساب OneDrive با پوشه‌ای مشخص برای نظارت. ممکن است نیاز به دریافت شناسه پوشه (Folder ID) خاص داشته باشید.

2. حساب Foxit PDF Services: اعتبارنامه‌ها (کلید API/رمز یا موارد مشابه) برای Foxit PDF Services. معمولاً یک دوره آزمایشی رایگان در دسترس است.

3. حساب Gmail: اعتبارنامه‌های OAuth2 برای ارسال ایمیل از طریق Gmail پیکربندی شده باشند. آدرس ایمیل گیرنده را در گره (Node) Email PDF به‌روزرسانی کنید.

---

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

برای ساختن این گردش کار از ابتدا، مراحل زیر را دنبال کنید:

1. افزودن Node Microsoft OneDrive Trigger:

* شناسه پوشه مورد نظر برای نظارت را تنظیم کنید.

* بازه زمانی نظرسنجی را پیکربندی کنید (مثلاً هر دقیقه).

* با استفاده از OAuth2 به حساب Microsoft OneDrive خود احراز هویت کنید.

2. افزودن Node Filter (با نام "Filter to Word"):

* شرط فیلتر بر اساس نوع MIME را تنظیم کنید: {{ $json["mimeType"] }} === "application/vnd.openxmlformats-officedocument.wordprocessingml.document".

3. افزودن Node Microsoft OneDrive (با نام "Get File"):

* عملیات را روی Download تنظیم کنید.

* از یک عبارت برای شناسه فایل استفاده کنید: {{ $items("Microsoft OneDrive Trigger")[0].json.id }}.

* از همان اعتبارنامه‌های OneDrive OAuth2 استفاده کنید.

4. افزودن Node Set (با نام "Set File Field"):

* یک فیلد جدید اضافه کنید: bits.

* مقدار آن را برابر با داده‌های باینری از Node قبلی قرار دهید (مثلاً {{ $json.data }}).

* مطمئن شوید که "Include Other Fields" فعال است.

5. افزودن Node HTTP Request (با نام "Upload to Foxit"):

* متد: POST

* URL: https://na1.fusion.foxit.com/pdf-services/api/documents/upload

* احراز هویت: احراز هویت سفارشی HTTP را برای Foxit API تنظیم کنید.

* نوع محتوای بدنه: multipart/form-data.

* یک پارامتر فرم به نام file، نوع formBinaryData و فیلد داده ورودی data اضافه کنید.

6. افزودن Node HTTP Request (با نام "Convert to PDF"):

* متد: POST

* URL: https://na1.fusion.foxit.com/pdf-services/api/documents/create/pdf-from-word

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

* بدنه: یک شی JSON حاوی شناسه سند از مرحله قبل (مثلاً {"documentId": "{{ $json.id }}"}).

7. افزودن Node HTTP Request (با نام "Check Task"):

* متد: GET

* URL: https://na1.fusion.foxit.com/pdf-services/api/tasks/{{ $json.id }} (مسیر JSON را بر اساس پاسخ واقعی تنظیم کنید).

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

8. افزودن Node If (با نام "Is the job done?"):

* شرط: {{ $json.status }} === "COMPLETED" (مسیر JSON را بر اساس پاسخ واقعی تنظیم کنید).

9. افزودن Node Wait:

* زمان انتظار مورد نظر را تنظیم کنید.

10. افزودن Node HTTP Request (با نام "Download"):

* متد: GET

* URL: https://na1.fusion.foxit.com/pdf-services/api/documents/{{ $json.resultDocumentId }}/download (مسیر JSON را بر اساس پاسخ واقعی تنظیم کنید).

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

11. افزودن Node Gmail (با نام "Email PDF"):

* گیرنده، موضوع و پیام ایمیل را پیکربندی کنید.

* پیوست را به داده‌های باینری PDF از نود "Download" تنظیم کنید.

* با استفاده از OAuth2 به حساب Gmail خود احراز هویت کنید.

* آدرس ایمیل گیرنده را در قسمت پیکربندی به‌روز کنید.

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

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

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

این گردش کار اسناد Microsoft Word را که در OneDrive ذخیره شده‌اند، به طور خودکار به فرمت PDF تبدیل می‌کند و سپس فایل PDF حاصل را از طریق Gmail به عنوان پیوست ایمیل ارسال می‌نماید. این فرآیند با استفاده از سرویس‌های PDF Foxit انجام می‌شود.

چه ابزارهایی برای این اتوماسیون لازم است؟

برای اجرای این گردش کار به حساب Microsoft OneDrive، حساب Gmail و دسترسی به سرویس‌های PDF Foxit نیاز دارید. همچنین پلتفرم n8n برای پیاده‌سازی و اجرای گردش کار ضروری است.

چگونه می‌توانم این گردش کار را سفارشی کنم؟

شما می‌توانید پوشه OneDrive را که گردش کار نظارت می‌کند، آدرس ایمیل گیرنده، موضوع و متن ایمیل Gmail، و تنظیمات مربوط به سرویس PDF Foxit را در رابط کاربری n8n سفارشی‌سازی کنید.

workflowهای مرتبط

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