خودکارسازیها چگونه کار میکنند
خودکارسازی با رخ دادن چیزها به افراد یکییکی نامه میفرستد: کسی به فهرستی میپیوندد، فرمی را پر میکند، در محصول شما کاری میکند یا تولدش میرسد. مسیر را یک بار شرح میدهید و هر فرد با آهنگ خودش آن را میپیماید.
یک آغازگر و درختی از گامها
هر definition یک trigger، گام entry و فهرستی از steps دارد. هر گام یک key دارد که در خودکارسازی یکتاست: یک حرف کوچک و در پی آن 2 تا 23 حرف کوچک یا رقم. هر گام گام بعدیاش را در next نام میبرد، و یک branch دو گام را، yes و no. null آن مسیر را تمام میکند. گامها یک درخت میسازند، پس به هیچ گامی از دو جا نمیرسند و چیزی به عقب برنمیگردد. یک خودکارسازی تا 50 گام جا دارد، با انشعابهایی که حداکثر 5 سطح عمق دارند.
audience_joined: مخاطبی بهaudienceIdافزوده میشود. مخاطبانی که با درونریزی افزوده شدهاند کنار گذاشته میشوند مگر اینکهincludeImportedبرابر true باشد.form_submitted: فردی با فرمformIdثبتنام میکند. با تأیید دوگانه، وقتی تأیید کند وارد میشود.event: کد شما رویدادی به نامeventNameمیفرستد. تا 5 موردfiltersروی ویژگیهایش مشخص میکنند چه کسی وارد شود.date: برای هر عضوaudienceIdروزی میرسد.fieldیکی ازbirthdayیاjoinedاست، یعنی سالگرد روزی که به آن گروه مخاطب پیوست.offsetDaysآن را تا یک سال جابهجا میکند: منفی برای روزهای قبل، مثبت برای روزهای بعد.manual: کسی خودبهخود وارد نمیشود. افراد را از برنامه یا با نقطهٔ پایانی ثبت اضافه میکنید.
| گام | چه میکند |
|---|---|
| send_email | نسخهٔ منتشرشدهٔ templateId را از from میفرستد، که نشانیای از همین فضای کاری است. props مقدارهای قالب را پر میکند، و subject جای موضوع قالب را میگیرد و فیلدهای ادغامی مثل {{firstName|there}} میپذیرد |
| wait | فرد را نگه میدارد: برای یک duration، until یعنی تا روز هفته و ساعت مشخصشدهٔ بعدی، یا تا eventی که باید انجام دهد، با یک timeout که پس از آن به هر حال جلو میرود |
| branch | یک پرسش میپرسد و فرد را به yes یا no میفرستد: email_opened یا email_clicked برای یک گام ایمیل قبلی، in_audience، یک field مخاطب، یا eventی که در withinDays انجام داده است |
| add_to_audience, remove_from_audience | تغییر میدهد که مخاطب در کدام گروههای مخاطب باشد |
| update_field | مقداری را روی مخاطب مینویسد |
| webhook | یکی از نقطههای پایانی وبهوک شما را با یک رویداد automation.webhook فراخوانی میکند |
| exit | مسیر را زودتر تمام میکند. خروج به شمار میآید، نه تمام کردن |
مقداری در props یا update_field از یکی از سه جا میآید: { "source": "static", "value": "…" }، { "source": "contact", "field": "firstName" } برای email، name، firstName، lastName یا attributes.<key>، و { "source": "event", "path": "orderId" } برای ویژگیای از رویدادی که مسیر را شروع کرد.
یک پیشنویس و یک نسخهٔ فعال
ذخیره کردن definition پیشنویس را تغییر میدهد. تا وقتی POST /automations/{id}/publish پیشنویس را بهصورت یک نسخهٔ شمارهدار ثابت نکند چیزی اجرا نمیشود، و پس از آن published همان نسخه را نشان میدهد. افرادی که از قبل درون آن هستند با همان نسخهای که با آن وارد شدند تمام میکنند، و افرادی که بعداً وارد میشوند نسخهٔ تازه را میگیرند. hasUnpublishedChanges میگوید پیشنویس جلوتر رفته است.
draft: هرگز منتشر نشده. کسی وارد نمیشود.live: منتشرشده و در حال اجرا.paused: کسی وارد نمیشود و همهٔ افراد درون آن همانجا که هستند میمانند.pausedReasonدلیلش را میگوید:manual، یا مشکلی که موتور به آن برخورده، مثلsender_refusedیاtemplate_unavailable.archived: برای همیشه کنار گذاشته شده. همهٔ افراد درون آن خارج میشوند، و سابقه میماند.
settings جدا هستند و بهمحض ذخیره اعمال میشوند: timezone، یک sendWindow که ایمیلها بیرون از آن منتظر میمانند، reentryDays پیش از آنکه همان فرد بتواند دوباره وارد شود (null یعنی یک بار)، exitOnLeave برای خارج کردن کسانی که گروه مخاطب آغازگر را ترک میکنند، و listAudienceId، گروه مخاطبی که لغو اشتراک در آن ثبت میشود.
problems مشکلهای پیشنویس را فهرست میکند، هر کدام با یک code، path فیلد، stepKey و اینکه blocking هست یا نه. پیشنویسی با مشکل بازدارنده قابل انتشار نیست.
افراد درون یک خودکارسازی
هر فردی که وارد میشود یک حضور میگیرد. تا وقتی در گامها پیش میرود active است، وقتی به پایان یک مسیر برسد completed، و وقتی زودتر خارج شود exited، همراه با یک exitReason: exit_step، unsubscribed، suppressed، left_audience، removed، archived یا failed.
- گامها حدود 15 ثانیه پس از سررسیدشان اجرا میشوند. هیچ فردی در یک دور از یک خودکارسازی دو ایمیل نمیگیرد.
- ایمیلهای خودکارسازی نامهٔ بازاریابیاند، پس هر کدام یک پیوند لغو اشتراک دارد. کسی که لغو اشتراک میکند از خودکارسازیهایی که به آن فهرست نامه میفرستند خارج میشود، و کسی که ایمیل نشانیاش برگشت خورده یا شکایت کرده در گام بعدیاش خارج میشود.
- ایمیلی که نشانیاش نمیتواند نامه بگیرد نادیده گرفته میشود، و فرد به گام بعدی میرود.
- وقتی ارسال برای همه رد شود، مثل فرستندهای که دامنهاش را از دست داده یا قالبی که از انتشار درآمده، خودکارسازی متوقف میشود و
pausedReasonدلیلش را میگوید.
رویدادهای برنامهٔ شما
POST /events ثبت میکند که یک مخاطب کاری کرده است: order.placed، trial.started، plan.upgraded. رویداد هر خودکارسازی فعالی را که آغازگرش آن را نام میبرد شروع میکند، هر کسی را که منتظرش است جلو میبرد، و به پرسش event یک انشعاب پاسخ میدهد. رویدادها 90 روز نگه داشته میشوند.
چه کسی چه کاری میتواند بکند
- خواندن به
automations:readو تغییر دادن بهautomations:writeنیاز دارد. انتشار، ادامه دادن و ارسال آزمایش بهemails:sendهم نیاز دارند، چون باعث میشوند خودکارسازی نامه بفرستد. - ارسال یک رویداد به
contacts:writeنیاز دارد، و خواندن رویدادهای یک مخاطب بهcontacts:read. - کلید API و مالک همهٔ خودکارسازیهای فضای کاری را میبینند. برنامهای که یک عضو وصل کرده آنهایی را میبیند که همان عضو ساخته است.
- حذف یک خودکارسازی از برنامهٔ OAuth کد تأیید هویت میخواهد. کلید API هرگز به آن نیاز ندارد.
- هر طرح در Free اجازهٔ 1 خودکارسازی فعال میدهد، در Starter 10، در Business 50 و در Enterprise هر تعداد. هر فضای کاری بهطور پیشفرض 100 خودکارسازی نگه میدارد.
وبهوکهای automation.entered، automation.exited و automation.paused به سامانههای شما میگویند چه کسی وارد شد، چه کسی خارج شد و یک خودکارسازی کی متوقف شد. بایگانی یک خودکارسازی کار همهٔ افراد درون آن را بدون رویداد automation.exited برای هر فرد تمام میکند.
از کد، ترمینال و عاملها
همهٔ اینها در SDK هم بهصورت openemail.automations و openemail.events، و در CLI بهصورت openemail automations و openemail events وجود دارد. سرور MCP ابزارهای خودکارسازی دارد، پس یک عامل میتواند یکی بسازد، منتشرش کند و ببیند چه کسی درون آن است.