clickSomo
ক্লিকসোমো খুলুন

ফানেল ও ট্রিগার

ফানেল মানে একটি গ্রাফ। রান মানে একটি সারি। অপেক্ষা মানে একটি সময়।

এটিই পুরো মডেল, আর এই পণ্যের প্রতিটি কঠিন বৈশিষ্ট্য এই তিনটি বাক্য থেকেই আসে। চালু ফানেল সম্পাদনা নিরাপদ, এদের কারণে। একটি রিট্রাই দ্বিগুণ পাঠাতে পারে না, এদের কারণে। মঙ্গলবার আনসাবস্ক্রাইব করা ব্যক্তি বৃহস্পতিবার কিছুই শোনেন না, এদের কারণে।

চলার সময় আসলে কী ঘটে

একটি ফানেল প্রকাশ করলে একটি অপরিবর্তনীয় সংস্করণ তৈরি হয়। কেউ প্রবেশ করলেই একটি সারি আসে: একটি রান, এই কন্টাক্টের জন্য, সেই সংস্করণের সাথে যুক্ত, যাতে বর্তমান নোড, একটি জাগরণের সময় এবং এর নিজস্ব কনটেক্সট থাকে।

একজন ওয়ার্কার যেসব রানের জাগরণের সময় পার হয়ে গেছে সেগুলি লিজ নেয়, SKIP LOCKED দিয়ে দাবি করে, যাতে দুজন ওয়ার্কার একই রান নিতে না পারে। এটি একটি অপেক্ষা বা টার্মিনাল নোডে পৌঁছানো পর্যন্ত নোডগুলি চালায়, তারপর পরবর্তী জাগরণের সময় লিখে ছেড়ে দেয়।

একটি নোড হল রান, কন্টাক্ট এবং নোডের একটি বিশুদ্ধ ফাংশন — এবং এর প্রভাবগুলি রানের নিজস্ব অগ্রগতির সাথে একই ট্রানজেকশনে কমিট হয়। এই একটি বৈশিষ্ট্যই রিট্রাইকে নিরাপদ করে। "পাঠান" ও "অগ্রসর করা"-র মাঝের আধা সেকেন্ডে নিহত একজন ওয়ার্কার হয় দুটোই রেখে যায়, নয় কোনোটিই নয় — কখনো একটিমাত্র নয়।

আর যেহেতু ডেটাবেস নয়, অ্যাপই সময় সরবরাহ করে, এখন লেখা একটি সারি এখনই নির্ধারিত। ডেটাবেস ঘড়িকে ডিফল্ট করা একটি শিডিউলিং কলাম লেখার মুহূর্তে এখনও নির্ধারিত থাকে না, এবং যে টিক সেটি তৈরি করেছে সেটিই মিস করে — এমন একটি বাগ যা কোনো বার্তা এক ঘণ্টা দেরিতে পৌঁছানোর আগ পর্যন্ত কিছুই মনে হয় না।

ওয়ার্কারের এক টিকসম্পাদন
  • 1লিজwake_at <= now(), FOR UPDATE SKIP LOCKED। লিজ ছাড়া একটি কিউ ডিফল্টভাবে দ্বিগুণ পাঠায়।
  • 2চালানোএকটি অপেক্ষা বা টার্মিনাল না পৌঁছানো পর্যন্ত নোডগুলি ক্রমানুসারে। প্রতিটি একটি স্টেপ লেখে: এটি কী সিদ্ধান্ত নিল, কী নির্গত করল।
  • 3কমিটপ্রভাব এবং অগ্রগতি, এক ট্রানজেকশনে। এটিই পুরো কৌশল।
  • 4ঘুমায়পরবর্তী wake_at লেখা হয়। এখনও কোনো ডাউনস্ট্রিম সারি নেই, এবং থাকারও দরকার নেই।

প্রতি সংস্করণে প্রতি কন্টাক্টে একটি রান

চৌদ্দটি ট্রিগার

কী কী একটি রান শুরু করতে পারে

এর কিছু সেই কাজ যা আপনি করেন। বেশিরভাগই সেই কাজ যা আপনার গ্রাহক করে, বা করে না — এবং কোনো কাজের অনুপস্থিতিই কাজটির মতোই ভালো একটি ট্রিগার।

তারা আসে

form_submit, list_join, contact_created, tag_added এবং segment_enter। একটি সেগমেন্ট একটি জীবন্ত প্রেডিকেট, তাই "সেগমেন্টে প্রবেশ করা" আপনার প্রকাশযোগ্য প্রতিটি "হয়ে গেছে"-কে কভার করে — তিনটি অর্ডার, নব্বই দিন নীরবতা, একটি সীমার বেশি খরচ।

তারা কিছু করে

সাইট স্নিপেট থেকে page_visit, message_opened, link_clicked, booking_made এবং payment_made। একটি বার্তা খোলাও নিজেই কন্টাক্টের একটি ইভেন্ট, তাই একটি ফানেল তার পাঠানো শেষ জিনিসের প্রতিক্রিয়ার জন্য অপেক্ষা করতে পারে।

সময়, বা আপনি

অফসেটসহ date_field — একটি জন্মদিন, একটি নবায়ন, "এক বছর পেরিয়ে", সাত দিন আগে বা তিন দিন পরে। পুনরাবৃত্তিটির জন্য schedule। সেই ঘোষণার জন্য manual যা আপনি নিজের সিদ্ধান্তে পাঠান।

আপনার নিজের অ্যাপ্লিকেশন

api_event হল একটি কাস্টম ইভেন্ট যা আপনি নিজের কোড থেকে নিজের টোকেন দিয়ে পোস্ট করেন। আপনার পণ্য যা জানে, সবকিছুই ট্রিগার হতে পারে: অ্যাক্টিভেট করা, একজন সহকর্মীকে আমন্ত্রণ করা, সীমায় পৌঁছানো, বাতিল করা, এক্সপোর্ট করা। একটি মেইলিং টুলকে আপনার পণ্যের অংশে পরিণত করে এটিই।

পুনঃপ্রবেশ, একবারই সিদ্ধান্ত

একটি ফানেল হয় পুনঃপ্রবেশযোগ্য, নয় নয় — এবং ডেটাবেস তা প্রয়োগ করে: আপনি অন্যথায় বলা না পর্যন্ত প্রতি ফানেলে প্রতি কন্টাক্টে একটি রান। একই সেকেন্ডে একই ট্রিগার দুবার জ্বললেও ভুলে দুটি রান হতে পারে না।

প্রবেশের শর্তাবলি

একটি ট্রিগার জ্বলে এবং এন্ট্রি স্পেক ঠিক করে এই নির্দিষ্ট কন্টাক্ট যোগ্য কি না — দরজার সামনে একটি সেগমেন্ট প্রেডিকেট। প্রথম স্টেপে একটি কন্ডিশন নোডের চেয়ে সস্তা, এবং এটি গ্রাফকে কে ঢুকতে পারে তার বদলে কী ঘটে তা নিয়েই রাখে।

চৌদ্দটি জিনিস এটি শুরু করতে পারে। পরে ষোলোটি জিনিস ঘটতে পারে।

ষোলোটি অ্যাকশন এবং সাতটি ফ্লো নোড

একটি ফানেল কী করতে পারে, এবং কীভাবে সিদ্ধান্ত নেয়

কিছু পাঠান

send_email, send_sms, send_push, send_letter — চারটি চ্যানেল, একটি গ্রাফ — এবং notify_team, যখন যাকে জানানো দরকার তিনি আপনার সংস্থার লোক।

কন্টাক্ট পরিবর্তন করুন

add_tag, remove_tag, add_to_list, remove_from_list, set_field। চলার পথে কাউকে চিহ্নিত করাই পরবর্তী ফানেলের সেগমেন্টকে সহজ করে।

বাইরে পৌঁছান

যেকোনো কিছুতে http_request, আপনার নিজের সংযুক্ত অ্যাকাউন্টে create_payment, এবং একটি বুকিং রিসোর্সে book_slot। প্রদানকারী আপনারই থাকে; কেউ আমাদের গ্রাহক হয়ে উঠে না।

ফানেলের মধ্যে চলাচল

enter_funnel এবং exit_funnel। একটি ওয়েলকাম সিকোয়েন্স তৈরি করে চার জায়গা থেকে তাকে ডাকুন, চারটি কপি বজায় রাখার বদলে যা মার্চের মধ্যে আলাদা হয়ে যায়।

পাঠানোর সময়ে তৈরি করুন

ai_generate প্রতি কন্টাক্টে মার্জ ভেরিয়েবল পূরণ করে, আপনার কোটা অনুযায়ী মিটার করা এবং ক্রিয়েটিভ ও কন্টাক্ট-অ্যাট্রিবিউট হ্যাশ অনুযায়ী ক্যাশ করা — নয়তো প্রতিটি পাঠানোর সময় প্রতি প্রাপকের জন্য আপনাকে বিল দিতে হতো।

অপেক্ষা, শাখা, বিভাজন, সংযোগ

wait একটি সময়কাল, একটি তারিখ-সময়, একটি সপ্তাহের দিন ও সময়, অথবা অফসেটসহ একটি তারিখ ক্ষেত্র নেয়। condition হলো একটি সেগমেন্ট প্রেডিকেট, যার একটি হ্যাঁ এবং একটি না শাখা আছে। split হলো ওজনসহ A/B/n। join শাখাগুলোকে আবার একত্রিত করে।

goal — যেটি সবচেয়ে গুরুত্বপূর্ণ

একটি গোল যারা এতে পৌঁছায় তাদের জন্য রান শেষ করে। তারা বুকিং দিয়েছে, কিনেছে, উত্তর দিয়েছে: তাদের জন্য বিশেষভাবে সিকোয়েন্সের বাকি অংশ বাতিল হয়ে যায়। কেউ ফিরে আসার পরদিন "আমরা আপনাকে মিস করছি" বার্তা পায় না, আর ঠিক এটিই প্রতিরোধ করে এই নোড।

throttle এবং quiet_hours

থ্রটল একটি বিস্ফোরণের গতি নিয়ন্ত্রণ করে, যাতে কম রেট সীমার একটি মেইলবক্স সাসপেন্ড হয়ে না যায়। কোয়ায়েট আওয়ার বার্তাটিকে একটি উপযুক্ত সময় পর্যন্ত ধরে রাখে — এটি মেসেজ স্তরে প্রয়োগ হয়, গ্রাফের প্রতিটি শাখায় কপি হয় না।

চালানোর আগে যাচাই করা হয়

ভ্যালিডেটর আপনার জন্য এবং AI-এর জন্য একই বিষয়গুলো প্রত্যাখ্যান করে

প্রকাশের আগে একটি গ্রাফ যাচাই করা হয়, এবং এই যাচাই কেবল পরামর্শমূলক নয়। কোনো ব্যক্তি ফানেলটি আঁকুন বা কোনো মডেল তৈরি করুক, কোডের পথ একই — আর এ কারণেই তৈরি করা ফানেলগুলো আসলেই বিশ্বাসযোগ্য।

ঠিক একটি এন্ট্রি

দুটি এন্ট্রি নোড এমন একটি অস্পষ্টতা যা কেউ লক্ষ্য করে না, যতক্ষণ না একটি তালিকার ভুল অর্ধেক ভুল সিকোয়েন্স পেয়ে যায়।

প্রতিটি নোড পৌঁছানো-যোগ্য

একটি পরিত্যক্ত শাখা হয় ভুল, নয়তো এমন একটি বার্তা যা আপনি মনে করেন পাঠানো হচ্ছে কিন্তু আসলে হচ্ছে না। দুটোই জানা প্রয়োজন।

প্রতিটি চক্রে একটি wait থাকতে হবে

এর ভেতরে wait নেই এমন একটি লুপ হলো মাঝখানে পাঠানোর কাজসহ একটি অসীম লুপ। এই নিয়মই ফানেল আর ঘটনার (ইনসিডেন্ট) মধ্যে পার্থক্য।

প্রতিটি পাঠানোর নোডের ক্রিয়েটিভ আছে

send_email নোডে ক্রিয়েটিভ ও বিষয় ছাড়া প্রকাশ করা যায় না। সঠিক বিষয়সহ কিন্তু খালি বডির বার্তা একটি বাস্তব ব্যর্থতার রূপ; এটি এখানেই প্রত্যাখ্যাত হয়।

প্রতিটি ভেরিয়েবল পরিচিত

মার্জ ভেরিয়েবল প্রকাশের সময় যাচাই করা হয়। {{frist_name}} একটি বানান ভুল যা আপনি সম্পাদনার সময়ই দেখেন — চল্লিশ হাজার ইনবক্সে "হ্যালো ," পৌঁছানোর আগেই।

তারপর সিমুলেট করুন

একজন প্রকৃত পরিচিতিকে পুরো গ্রাফের মধ্য দিয়ে ড্রাই-রান করুন এবং নেওয়া পথ ও পাঠানো হতো এমন প্রতিটি বার্তা, তার দিনসহ, ফিরে পড়ুন। কিছুই বাইরে যায় না।

জটিল ক্ষেত্রগুলো

সাতটি বিষয় যা একটি সাধারণ ইঞ্জিন ভেঙে দেয়

এর প্রতিটির পেছনে একটি নির্ধারিত ঘড়িসহ পরীক্ষা রয়েছে, কারণ প্রতিটিই এমন বাস্তবায়ন ভেঙে দেয় যা বাস্তবতার মুখোমুখি না হওয়া পর্যন্ত সম্পূর্ণ সঠিক মনে হয়।

ইঞ্জিন কীসের বিরুদ্ধে পরীক্ষিতমিথ্যাপ্রমাণন
  • 1নিজের মধ্যে লুপ করা একটি ফানেলবৈধ, সাধারণ এবং ঠিক আছে — যতক্ষণ না চক্রের ভেতরে একটি wait থাকে, যা ভ্যালিডেটর জোর দিয়ে দাবি করে।
  • 2মাঝপথে কেউ আনসাবস্ক্রাইব করেসাপ্রেশন পাঠানোর সময় যাচাই হয়, সারিতে প্রবেশের সময় নয়। সারিতে যাচাই করলে অপেক্ষার সময়ে চলে যাওয়া মানুষদেরও মেইল চলে যায়।
  • 3ভেতরে দশ হাজার মানুষ থাকা অবস্থায় ফানেল সম্পাদনা করা হয়তারা যে সংস্করণে প্রবেশ করেছিল সেটিই শেষ পর্যন্ত অনুসরণ করে। নতুন প্রবেশকারীরা নতুনটি অনুসরণ করে।
  • 4এক সেকেন্ডে একই ট্রিগার দুবার সক্রিয় হয়একটি রান, কারণ ইউনিকনেস একটি ইনডেক্স, যাচাইয়ের পর ইনসার্ট নয়।
  • 5রান চলাকালীন একটি পরিচিতি মুছে ফেলা হয়রান শেষ হয়। এমন একটি মুছে ফেলা যা রেখে যায় কারো উদ্দেশ্যে চালু সিকোয়েন্স, তা মুছে ফেলা নয়।
  • 6একটি wait দিবালোক-সংরক্ষণ পরিবর্তন জুড়ে বিস্তৃত"সকাল নয়টায় তিন দিন" মানে ঘড়ির পরিবর্তনের দুই পাশেই সকাল নয়টা।
  • 7পাঠানো ও অগ্রগতির মাঝে একজন ওয়ার্কার বন্ধ হয়ে যায়প্রভাব ও অগ্রগতি একটি লেনদেনে ঘটে। হয় দুটোই ঘটেছে, নয় কোনোটিই নয়।

নির্ধারিত-সময় ঘড়িপ্রতিটি টেস্ট একটি সম্ভাব্য বাস্তবায়ন ভেঙে দেয়

ক্যাম্পেইন হলো অন্য অর্ধেকটি

ফানেল প্রতিক্রিয়া দেখায়। আর ক্যাম্পেইন হলো একবারের সম্প্রচার: একটি দর্শকগোষ্ঠী, একটি সময়সূচি, একটি থ্রটল এবং একটি পাঠানো। এটি সম্পূর্ণ ভিন্ন ধরনের জিনিস, এবং একে ইচ্ছাকৃতভাবে আলাদা রাখা হয়েছে — এক-নোডের ফানেল সাজিয়ে দেখানোর ভান করা হয়নি।

দুটি নিয়ম এটিকে নিরাপদ করে। একটি দর্শকগোষ্ঠী একবারই ম্যাটেরিয়ালাইজ করা হয় এবং দ্বিতীয়বার চালাতে অস্বীকার করে — পুনরায় নির্ধারণ করলে পাঠানো শুরুর পর যোগ দেওয়া সবাই নীরবে যুক্ত হয়ে যেত, আর ডিডুপ্লিকেশন ইনডেক্স নিজেই তৈরি করা ডুপ্লিকেটগুলো আটকে সেটি লুকিয়ে ফেলত। আর কাউন্টারগুলো ডেলিভারি ইভেন্ট থেকে পুনর্গণনা করা হয়, জায়গায় বাড়ানো হয় না, তাই পুনরায় পাঠানো কোনো ওয়েবহুক রিপোর্ট ফুলিয়ে তুলতে পারে না।

কোনটি ব্যবহার করবেন: যদি ঘটনাটি ঘটে কারো কোনো কাজের কারণে, তবে সেটি ফানেল। আর যদি ঘটে আপনার কোনো মঙ্গলবারের সিদ্ধান্তের কারণে, তবে সেটি ক্যাম্পেইন। অসাধারণ পরিমাণ মার্কেটিং অটোমেশন ভুল হয় দ্বিতীয়টিকে প্রথমটির আকারে ঢোকানোর চেষ্টায়।