فرمها چگونه کار میکنند
فرمهای ثبتنام افراد را به گروههای مخاطبان شما میافزایند. یکی را اینجا بسازید، آن را بهصورت پیوند به اشتراک بگذارید، در هر سایتی جاسازی کنید، یا از کد خودتان به آن ارسال کنید.
یک پیشنویس و یک نسخهٔ فعال
هر فرم دو نسخه از آنچه بازدیدکنندگان میبینند نگه میدارد. document پیشنویسی است که ویرایش میکنید، و publishedDocument همان است که صفحهٔ میزبانیشده، جاسازی و اندپوینت subscribe به کار میبرند. ذخیره کردن فقط پیشنویس را تغییر میدهد، و POST /forms/{id}/publish آن را در نسخهٔ فعال کپی میکند. hasUnpublishedChanges به شما میگوید که این دو با هم فرق دارند.
draft: هرگز منتشر نشده. هیچکس نمیتواند آن را ببیند یا از راه آن ثبتنام کند.live: منتشرشده و در حال پذیرفتن ثبتنام.paused: منتشرشده اما بسته. صفحه پیام بستهبودن را از متنهای فرم نشان میدهد و ثبتنامها رد میشوند.
settings فرق دارند: اینکه ثبتنامها کجا میروند، تأیید دوگانه، فرستنده، رفتار پس از ثبتنام و اینکه دربارهٔ هر ثبتنام به چه کسی خبر داده شود. اینها بهمحض ذخیره شدن اعمال میشوند، چه فرم منتشر شده باشد چه نه.
فیلدها
سند فهرستی از fields، متنهای پیرامونشان در copy و یک style است. هر فیلد ورودی یک key دارد، یعنی نامی که جوابش با آن ارسال میشود: یک حرف کوچک که پس از آن تا 39 حرف کوچک، رقم یا زیرخط میآید، در فرم یکتاست و هرگز با oe_ شروع نمیشود. هر فرم دقیقاً یک فیلد email دارد که کلیدش email و الزامی است.
- ورودیها:
email،text،textarea،number،phone،urlوdate. - گزینهایها:
select،radioوcheckboxes، هر کدام باoptions. checkboxبرای بله یا خیر، وconsentبرای کادری که وقتی الزامی است باید تیک بخورد.audiencesبه شخص اجازه میدهد فهرستها را انتخاب کند:valueهر گزینه شناسهٔ یک گروه مخاطبان در این فضای کاری است.hiddenمقداری را میبرد که بازدیدکننده هرگز نمیبیند: همانی که صفحهٔ شما ارسال میکند، وگرنهdefaultValueآن، مثلاً نام یک کارزار.heading،paragraphوdividerفقط چیدمان فرم را میسازند و چیزی ارسال نمیکنند.
روی یک فیلد متنی mapsTo را برابر firstName، lastName یا name بگذارید تا جواب، نام مخاطبی شود که ثبتنام میسازد. مخاطبی که از قبل وجود دارد نامش را نگه میدارد. هر جواب همراه با برچسبی که آن زمان داشت روی پاسخ نگه داشته میشود، پس پاسخهای قدیمی پس از تغییر فرم هم درست خوانده میشوند.
تأیید دوگانه
وقتی settings.doubleOptIn روشن است، ثبتنام بهصورت pending ذخیره میشود و پیوندی از settings.senderAddress، که نشانیای از این فضای کاری است، برای شخص ایمیل میشود. او وقتی پیوند را باز کند به گروههای مخاطبان میپیوندد. پیوند هفت روز کار میکند. کسی که پیشتر اشتراکش را در یک گروه مخاطبان لغو کرده فقط از همین راه دوباره مشترک میشود، و هرگز با فرمی که تأیید دوگانه ندارد. ثبتنام دوباره پیش از تأیید، همان ثبتنام در انتظار را بهروز میکند و ثبتنام دیگری نمیافزاید.
برای محافظت از کسانی که به آنها ایمیل میزنید، هر نشانی برای هر فرم دستبالا یک پیام تأیید در هر ده دقیقه و در کل فضای کاری پنج پیام در روز میگیرد. میتوانید ثبتنامِ در انتظار تأیید را خودتان بپذیرید، یا پیوند تازهای برایش بفرستید.
چه کسی چه چیزی را میبیند
- خواندن به
forms:readو تغییر دادن بهforms:writeنیاز دارد. پذیرفتن یک ثبتنامcontacts:writeرا هم لازم دارد، چون یک مخاطب میافزاید. - هر کاری که باعث شود فرم ایمیل بفرستد به
emails:sendهم نیاز دارد: روشن کردن تأیید دوگانه، تنظیم فرستنده یا ایمیل تأیید، انتشار یا ادامهٔ یک فرم با تأیید دوگانه، و ارسال دوبارهٔ پیام تأیید. - کلید API و مالک همهٔ فرمهای فضای کاری را میبینند. برنامهای که یک عضو وصل کرده فقط فرمهایی را میبیند که همان عضو ساخته، و فقط گروههای مخاطبانی را که همان عضو ساخته بهعلاوهٔ گروههای درونساخت.
- ساختن، بهروزرسانی، انتشار، ادامه یا تکثیر فرمی که فرستنده یا نشانیهای اعلانش بیرون از دسترسِ یک کلید یا برنامهٔ محدود باشد، با 422
capability_unsupportedپاسخ داده میشود. - کلید یا برنامهای که به برخی نشانیها محدود است فقط میتواند نشانیهایی را که در اختیار دارد بهعنوان فرستنده و نشانیهای اعلان تنظیم کند.
- حذف یک فرم، مانند دیگر تغییرهای مخرب، از برنامهٔ OAuth کد تأیید هویت میخواهد. کلید API هرگز به آن نیاز ندارد.
وبهوکهای form.submitted و form.confirmed سیستمهای شما را از هر ثبتنام باخبر میکنند. وبهوکی که به برخی نشانیها محدود است هرگز آنها را دریافت نمیکند، چون ثبتنامها به کل فضای کاری تعلق دارند.
رباتها و محدودیتها
- فیلدی به نام
oe_websiteتلهای برای رباتهاست: آن را خالی و بیرون از صفحه نگه دارید، همانطور که HTML بالا میکند. ثبتنامی که آن را پر کند پاسخی عادی میگیرد و دور ریخته میشود. - صفحهٔ میزبانیشده و جاسازی یک زمان شروع امضاشده را هم بررسی میکنند، و فرمی که سریعتر از آنکه یک شخص بتواند پرش کند برگردانده شود به همین شکل دور ریخته میشود.
- یک شبکه میتواند در ده دقیقه 40 ثبتنام بفرستد، در همهٔ فرمهایتان روی هم و صرفنظر از نتیجه. پس از آن، فراخوانندگانی که JSON میفرستند 429
form_rate_limitedمیگیرند، و یک فرم HTML ساده با?outcome=limitedبه صفحهٔ میزبانیشده میرود. - هر فضای کاری بهطور پیشفرض 100 فرم نگه میدارد.
از کد، ترمینال و عاملها
همهٔ اینها در SDK هم بهصورت openemail.forms و در CLI بهصورت openemail forms وجود دارد، و سرور MCP ابزارهای فرم دارد، پس یک عامل میتواند فرمی را بسازد، منتشر کند و زیر نظر بگیرد. در MCP، کلاینت خودش طراحی را مینویسد و آن را بهصورت document میفرستد.
ارسال به subscribeUrl از کد خودتان به هیچ اعتبارنامهای نیاز ندارد. جوابها را بهصورت JSON بفرستید، صفحهای را که فرم روی آن بود بهصورت oe_source بیفزایید، oe_started را کنار بگذارید، و oe_website را خالی بفرستید یا اصلاً نفرستید. همهٔ ثبتنامهایی که از یک شبکه میآیند سقف 40 بار در هر ده دقیقه را با هم شریکاند، پس سروری که ثبتنامهای افراد زیادی را بازارسال میکند زود به آن میرسد: افرادی را که از پیش میشناسید بهجای آن با درونبری گروه مخاطبان بیفزایید.