Journey অবজেক্ট
লাইফসাইকেল, তৈরি এবং আপডেট পদ্ধতিগুলি সবই একই টপ-লেভেল আকৃতির একটি জার্নি অবজেক্ট ফেরত দেয়:
{ "info": { ... }, // read-only metadata (responses only) "params": { ... }, // journey-wide configuration (create / update) "points": [ ... ], // canvas nodes and their connections "comments": [ ... ] // canvas comments}যখন আপনি একটি জার্নি তৈরি বা আপডেট করেন, তখন আপনি title, params, points, এবং comments পাঠান। প্রতিক্রিয়াগুলি info (যাতে params থাকে) এবং এর সাথে points ও comments ফেরত দেয়।
Info
Anchor link toশুধুমাত্র পঠনযোগ্য জার্নি মেটাডেটা। প্রতিটি v3 পদ্ধতি দ্বারা ফেরত দেওয়া হয়। অনুরোধের বডির অংশ নয়।
| ফিল্ড | টাইপ | বিবরণ |
|---|---|---|
uuid | string | জার্নি আইডি। |
title | string | জার্নির নাম। |
status | JourneyStatus | বর্তমান অবস্থা। |
created_at | string | তৈরির টাইমস্ট্যাম্প (ISO 8601)। |
updated_at | string | শেষ আপডেটের টাইমস্ট্যাম্প (ISO 8601)। |
is_first_activated | bool | জার্নিটি অন্তত একবার শুরু হয়েছে কিনা। |
params | JourneyParams | জার্নি-ব্যাপী কনফিগারেশন। |
category_uuid | string | ক্যাটাগরির UUID, অথবা যদি কোনো ক্যাটাগরিতে না থাকে তবে খালি। |
pointCounts | map<string, uint32> | প্রকার অনুসারে পয়েন্টের সংখ্যা। |
campaign_type | CampaignType | ব্যবহারকারীরা কীভাবে জার্নিতে প্রবেশ করে। |
stop_reason | string | প্রযোজ্য হলে, জার্নিটি কেন থেমে গেছে। |
last_edited_by | User | যে ব্যবহারকারী শেষবার জার্নিটি সম্পাদনা করেছেন। |
dynamic_entry | bool | ডাইনামিক এন্ট্রি সক্রিয় আছে কিনা। |
JourneyParams
Anchor link toজার্নি-ব্যাপী কনফিগারেশন। তৈরি/আপডেট করার সময় পাঠানো হয় এবং info.params-এর ভিতরে ফেরত দেওয়া হয়।
| ফিল্ড | টাইপ | বিবরণ |
|---|---|---|
application_code | string | অ্যাপ্লিকেশন কোড যার সাথে জার্নিটি সম্পর্কিত। তৈরি করার সময় আবশ্যক। |
silent_hours | SilentHours | প্রতি চ্যানেলে যে ঘন্টাগুলিতে বার্তা পাঠানো বন্ধ থাকে। |
capping | EntryCapping | একজন ব্যবহারকারী কতবার জার্নিতে পুনরায় প্রবেশ করতে পারবে তার সীমা। |
conversion_window | ConversionWindow | লক্ষ্যের রূপান্তরগুলি আরোপ করার জন্য উইন্ডো। |
user_id_track_change_policy | UserIDTrackChangePolicy | জার্নির মাঝপথে কোনো ব্যবহারকারীর আইডি পরিবর্তন হলে কীভাবে তা সামলানো হবে। |
SilentHours
Anchor link toশান্ত সময়ে বার্তা পাঠানো বন্ধ রাখে। প্রতি চ্যানেল অনুযায়ী কনফিগার করা হয়: প্রতিটি চ্যানেল তার নিজস্ব SilentHoursParams নেয়:
| ফিল্ড | টাইপ | বিবরণ |
|---|---|---|
push_params | SilentHoursParams | পুশ নোটিফিকেশনের জন্য সাইলেন্ট আওয়ার্স। |
inapp_params | SilentHoursParams | ইন-অ্যাপ মেসেজের জন্য সাইলেন্ট আওয়ার্স। |
email_params | SilentHoursParams | ইমেইলের জন্য সাইলেন্ট আওয়ার্স। |
sms_params | SilentHoursParams | SMS-এর জন্য সাইলেন্ট আওয়ার্স। |
whatsapp_params | SilentHoursParams | WhatsApp-এর জন্য সাইলেন্ট আওয়ার্স। |
line_params | SilentHoursParams | LINE-এর জন্য সাইলেন্ট আওয়ার্স। |
প্রতিটি SilentHoursParams হল:
| ফিল্ড | টাইপ | বিবরণ |
|---|---|---|
enabled | bool | এই চ্যানেলে সাইলেন্ট আওয়ার্স প্রযোজ্য কিনা। |
from_time | Time | শান্ত উইন্ডোর শুরু: { "hour": 0–23, "minute": 0–59 }। |
to_time | Time | শান্ত উইন্ডোর শেষ। |
week_days | bool[] | উইন্ডোটি সপ্তাহের কোন দিনগুলিতে প্রযোজ্য তার জন্য সাতটি বুলিয়ান (সোমবার = ইনডেক্স 0)। |
behavior | enum | যখন একটি বার্তা সাইলেন্ট আওয়ার্সের মধ্যে পড়ে তখন কী করতে হবে: WaitAndSend (ধরে রাখুন, তারপর উইন্ডো শেষ হলে পাঠান), DropAndGo (বার্তাটি এড়িয়ে যান, অবিলম্বে জার্নি চালিয়ে যান), অথবা WaitAndDrop (উইন্ডো শেষ হওয়া পর্যন্ত অপেক্ষা করুন, তারপর না পাঠিয়ে চালিয়ে যান)। |
EntryCapping
Anchor link toএকই ব্যবহারকারী কতবার জার্নিতে প্রবেশ করতে পারবে তা সীমিত করে।
| ফিল্ড | টাইপ | বিবরণ |
|---|---|---|
is_enabled | bool | এন্ট্রি ক্যাপিং চালু আছে কিনা। |
period | uint64 | একজন ব্যবহারকারীর প্রবেশের মধ্যে ন্যূনতম সেকেন্ডের সংখ্যা। |
ConversionWindow
Anchor link to| ফিল্ড | টাইপ | বিবরণ |
|---|---|---|
seconds | uint64 | একটি জার্নিতে প্রবেশের কতক্ষণ পর পর্যন্ত একজন ব্যবহারকারীর লক্ষ্য পূরণ একটি রূপান্তর হিসাবে গণ্য হবে। |
Point
Anchor link toএকটি পয়েন্ট হল জার্নি ক্যানভাসের একটি নোড: একটি এন্ট্রি পয়েন্ট, একটি বার্তা, একটি ডিলে, একটি স্প্লিটার, ইত্যাদি।
| ফিল্ড | টাইপ | বিবরণ |
|---|---|---|
uuid | string | জার্নির মধ্যে পয়েন্টের ইউনিক আইডি। অবশ্যই একটি ক্যানোনিকাল RFC 4122 UUID হতে হবে: 8-4-4-4-12 গ্রুপে 32 হেক্স ডিজিট। |
title | string | পয়েন্টের প্রদর্শনের নাম। |
point_type | PointType | নোডের প্রকার। |
outputs | array of PointOutput | ডাউনস্ট্রিম পয়েন্টগুলির সাথে সংযোগ। |
position | Position | ক্যানভাসের স্থানাঙ্ক। |
point_data | object | ঠিক একটি নেস্টেড কী, যা point_type-এর সাথে মেলে (পয়েন্টের প্রকার টেবিল দেখুন)। |
PointOutput
Anchor link toএকটি পয়েন্টের আউটপুট হল তার বহির্গামী শাখা। তাদের কীগুলি ফ্রি-ফর্ম নয়। ভ্যালিডেটর প্রতিটি পয়েন্ট টাইপের জন্য একটি নির্দিষ্ট সেট কী আশা করে, এবং যদি কোনো পয়েন্টে ভুল সংখ্যক আউটপুট বা অপরিচিত কী থাকে তবে সেই জার্নিটি প্রত্যাখ্যান করে।
| ফিল্ড | টাইপ | বিবরণ |
|---|---|---|
identity.key | string | ব্রাঞ্চ কী। নীচের আউটপুট কী নিয়ম অনুসরণ করতে হবে। |
identity.order | int | ব্রাঞ্চের প্রদর্শনের ক্রম। |
info.title | string | ঐচ্ছিক ব্রাঞ্চ লেবেল। |
info.next_point_uuid | string | এই ব্রাঞ্চটি পরবর্তী যে পয়েন্টের সাথে সংযোগ করে তার UUID। |
Output keys
Anchor link toডিফল্ট (প্রথম) ব্রাঞ্চের নাম সবসময় "default"। অতিরিক্ত ব্রাঞ্চগুলির নাম "output1", "output2", … (উপসর্গ output এবং তার পরে 1-ভিত্তিক ইনডেক্স)। দুটি পয়েন্ট টাইপ এই নিয়মটি ভাঙে, যা নীচে উল্লেখ করা হয়েছে।
| পয়েন্টের প্রকার | প্রত্যাশিত আউটপুট কী |
|---|---|
এন্ট্রি পয়েন্ট (START_BY_SEGMENT, START_BY_API, EVENT), INAPP, SET_TAGS, WEBHOOK, AUDIENCE_SYNC, এবং স্প্লিটার ছাড়া মেসেজ পয়েন্ট (SEND_PUSH, SEND_EMAIL, SEND_SMS, SEND_WHATSAPP, SEND_LINE, SEND_KAKAO, SEND_TELEGRAM, SEND_DATA) | default |
GOAL_EVENT, EXIT | কোনোটিই নয় (কোনো আউটপুট নেই) |
FILTER | default, output1 |
BOOLEAN_SPLITTER | default, তারপর output1 … outputN (প্রতিটি শর্তের জন্য একটি অতিরিক্ত ব্রাঞ্চ। একটি সাধারণ হ্যাঁ/না বিভাজন হল default + output1) |
WAIT (delay) | default। ব্রাঞ্চ বিভাজন সহ একটি ডাইনামিক ডিলে output1 যোগ করে |
WAIT_EVENT | default হল ইভেন্ট-ট্রিগার-না-হওয়া ব্রাঞ্চ। output1 (অথবা, একটি কন্ডিশন স্ক্রিপ্ট সহ, প্রতিটি কন্ডিশনের জন্য একটি ব্রাঞ্চ) হল ট্রিগার করা পথ |
SEND_PUSH with a splitter | default, output1 (এবং output2 যখন বার্তা এবং ডেলিভারি উভয় স্প্লিটার চালু থাকে) |
SEND_EMAIL / SEND_SMS / SEND_LINE / SEND_WHATSAPP with a splitter | default, output1 |
SEND_WHATSAPP with a quick-reply preset | default, এবং প্রতিটি কুইক-রিপ্লাইয়ের জন্য একটি করে ব্রাঞ্চ। কী হল কুইক-রিপ্লাইয়ের মান নিজেই |
AB_SPLITTER | output0, output1, output2, … (প্রতিটি ভ্যারিয়েন্টের জন্য একটি। কোনো default ব্রাঞ্চ নেই) |
Position
Anchor link to| ফিল্ড | টাইপ | বিবরণ |
|---|---|---|
x | float | ক্যানভাসে অনুভূমিক স্থানাঙ্ক। |
y | float | ক্যানভাসে উল্লম্ব স্থানাঙ্ক। |
Point types and point_data
Anchor link topoint_data একটি ওয়ান-অফ: এটি ঠিক একটি নেস্টেড অবজেক্ট বহন করে যার কী পয়েন্টের point_type দ্বারা নির্ধারিত হয়।
point_type | point_data key | উদ্দেশ্য |
|---|---|---|
POINT_TYPE_START_BY_SEGMENT | start_by_segment | এন্ট্রি: একটি সেগমেন্টের সাথে মিলে যাওয়া ব্যবহারকারীরা। |
POINT_TYPE_EVENT | message_bus | এন্ট্রি: একটি ইভেন্ট ট্রিগার করা ব্যবহারকারীরা। |
POINT_TYPE_START_BY_API | start_by_api | এন্ট্রি: Start by API কলের মাধ্যমে ইনজেক্ট করা ব্যবহারকারীরা। |
POINT_TYPE_WAIT | delay | একটি নির্দিষ্ট বা ডাইনামিক বিরতির জন্য অপেক্ষা করুন। |
POINT_TYPE_WAIT_EVENT | wait_event | একটি ইভেন্ট ঘটা পর্যন্ত অপেক্ষা করুন। |
POINT_TYPE_SEND_PUSH | send_push | একটি পুশ নোটিফিকেশন পাঠান। |
POINT_TYPE_SEND_EMAIL | send_email | একটি ইমেল পাঠান। |
POINT_TYPE_SEND_SMS | send_sms | একটি SMS পাঠান। |
POINT_TYPE_SEND_WHATSAPP | send_whatsapp | একটি WhatsApp বার্তা পাঠান। |
POINT_TYPE_SEND_TELEGRAM | send_telegram | একটি Telegram বার্তা পাঠান। |
POINT_TYPE_SEND_KAKAO | send_kakao | একটি Kakao বার্তা পাঠান। |
POINT_TYPE_SEND_LINE | send_line | একটি LINE বার্তা পাঠান। |
POINT_TYPE_SEND_DATA | send_data | একটি সাইলেন্ট ডেটা বার্তা পাঠান। |
POINT_TYPE_INAPP | inapp | একটি ইন-অ্যাপ বার্তা দেখান। |
POINT_TYPE_BOOLEAN_SPLITTER | boolean_splitter | একটি শর্ত (সেগমেন্ট, ট্যাগ, বা ইভেন্ট) দ্বারা ব্যবহারকারীদের বিভক্ত করুন। |
POINT_TYPE_AB_SPLITTER | ab_splitter | ব্যবহারকারীদের A/B গ্রুপে বিভক্ত করুন। |
POINT_TYPE_FILTER | filter | শুধুমাত্র একটি ফিল্টারের সাথে মিলে যাওয়া ব্যবহারকারীদের চালিয়ে যাওয়ার অনুমতি দিন। |
POINT_TYPE_SET_TAGS | set_tags | ব্যবহারকারীর ট্যাগ আপডেট করুন। |
POINT_TYPE_WEBHOOK | web_hook | একটি আউটবাউন্ড HTTP অনুরোধ পাঠান। |
POINT_TYPE_GOAL_EVENT | goal_event | একটি রূপান্তর লক্ষ্য ট্র্যাক করুন। |
POINT_TYPE_AUDIENCE_SYNC | audience_sync | ব্যবহারকারীদের একটি বাহ্যিক অডিয়েন্সের সাথে সিঙ্ক করুন। |
POINT_TYPE_EXIT | terminator | জার্নি থেকে প্রস্থান করুন। |
Example point
Anchor link toএকটি “সেট ট্যাগ” পয়েন্ট যার একটি মাত্র ডাউনস্ট্রিম সংযোগ আছে:
{ "uuid": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "title": "Tag as engaged", "point_type": "POINT_TYPE_SET_TAGS", "position": { "x": 480, "y": 120 }, "outputs": [ { "identity": { "key": "default", "order": 0 }, "info": { "title": "", "next_point_uuid": "ffffffff-1111-2222-3333-444444444444" } } ], "point_data": { "set_tags": { "application_code": "XXXXX-XXXXX", "tags": [ { "name": "engaged", "value": "true" } ] } }}JourneyComment
Anchor link to| ফিল্ড | টাইপ | বিবরণ |
|---|---|---|
id | string | কমেন্ট UUID। |
message | string | কমেন্টের টেক্সট। |
position | Position | ক্যানভাসের স্থানাঙ্ক। |
index | int | প্রদর্শনের ক্রম। |
created_at | string | তৈরির টাইমস্ট্যাম্প (ISO 8601)। |
deleted | bool | কমেন্টটি মুছে ফেলা হয়েছে কিনা। |
Enums
Anchor link toJourneyStatus enum
Anchor link toSTATUS_DRAFT, STATUS_RUNNING, STATUS_FINISHED, STATUS_ARCHIVED, STATUS_PAUSED, STATUS_UNKNOWN।
CampaignType enum
Anchor link toTriggerBased: ব্যবহারকারীরা একটি ইভেন্টের উপর ভিত্তি করে প্রবেশ করে।AudienceBased: ব্যবহারকারীরা একটি সেগমেন্ট থেকে প্রবেশ করে।APIBased: ব্যবহারকারীরা Start by API কলের মাধ্যমে প্রবেশ করে।Mixed: একাধিক ধরনের এন্ট্রি।Unknown: এন্ট্রির ধরন নির্ধারিত নয়।
PointType enum
Anchor link toসম্পূর্ণ তালিকা এবং প্রতিটি point_data কী কিসের সাথে ম্যাপ করে তা জানতে উপরের পয়েন্টের প্রকার টেবিলটি দেখুন।
UserIDTrackChangePolicy enum
Anchor link toজার্নির মাঝপথে কোনো ব্যবহারকারীর ইউজার আইডি পরিবর্তন হলে কী হবে তা নিয়ন্ত্রণ করে:
DEFAULT: ডিফল্ট আচরণ।TRACK: নতুন আইডির অধীনে ব্যবহারকারীকে ট্র্যাক করতে থাকুন।DROP: আইডি পরিবর্তন হলে ব্যবহারকারীকে জার্নি থেকে সরিয়ে দিন।