Μετάβαση στο κύριο περιεχόμενο

Κόμβοι Canvas

Οι ροές Canvas χτίζονται από διαφορετικούς τύπους κόμβων που ορίζουν πώς προχωρούν οι χρήστες μέσα στην αυτοματοποίησή σας. Αυτός ο οδηγός καλύπτει όλους τους διαθέσιμους τύπους κόμβων και τη συμπεριφορά τους.

Κόμβοι εναύσματος​

Οι κόμβοι εναύσματος ορίζουν πώς εισέρχονται οι χρήστες σε ένα canvas.

Διαθέσιμα εναύσματα​

Τύπος εναύσματοςΠεριγραφή
ΣυμβάνΟ χρήστης εισέρχεται όταν εκτελεί ένα συγκεκριμένο συμβάν
Αλλαγή οντότηταςΟ χρήστης εισέρχεται όταν αλλάζει μια συνδεδεμένη εγγραφή οντότητας
APIΟ χρήστης εισέρχεται μέσω κλήσης API
ΧρονοπρογραμματισμόςΟι χρήστες εισέρχονται βάσει επαναλαμβανόμενου προγράμματος
Μήνυμα WhatsAppΟ χρήστης εισέρχεται όταν στέλνει μήνυμα WhatsApp
Εισερχόμενο SMSΜια γνωστή επαφή εισέρχεται όταν στέλνει SMS (φιλτράρισμα ανά λογαριασμό SMS, τύπο μηνύματος και συνθήκες Κειμένου μηνύματος / Τύπου μηνύματος)

Η Είσοδος σε τμήμα δεν είναι έναυσμα. Για εισόδους που προκαλούνται από κάτι που έκανε το άτομο, χρησιμοποιήστε έναυσμα Συμβάντος με φίλτρο· για εισόδους που προκαλούνται από το πέρασμα του χρόνου, χρησιμοποιήστε μια επαναλαμβανόμενη διαδρομή πάνω στο τμήμα.

Έλεγχος επανάληψης - το ίδιο πράγμα δύο φορές​

Ένα έναυσμα Συμβάντος μπορεί να απαιτεί το συμβάν που φτάνει να είναι επανάληψη: τουλάχιστον N εμφανίσεις αυτού του συμβάντος από το ίδιο άτομο, τις τελευταίες D ημέρες, με τις ίδιες τιμές των ιδιοτήτων που επιλέγετε - μετρώντας και το συμβάν που μόλις έφτασε. Το άτομο εισέρχεται ακριβώς στη Νιοστή εμφάνιση που ταιριάζει· εμφανίσεις με άλλες τιμές δεν το εγγράφουν ποτέ.

Το παράδειγμα για το οποίο φτιάχτηκε: κάποιος που κοίταξε το ίδιο ξενοδοχείο για τις ίδιες ημερομηνίες δύο φορές.

ΡύθμισηΤιμή
Συμβάνhotel_viewed
Επανάληψητουλάχιστον 2 φορές τις τελευταίες 2 ημέρες
με το ίδιοhotel, check_in

Μια δεύτερη ματιά στο Casa Azul για 3-5 Οκτωβρίου ξεκινά τη διαδρομή. Μια πρώτη ματιά στο Casa Azul, ή μια ματιά σε οποιοδήποτε άλλο ξενοδοχείο, όχι - η μέτρηση είναι δεσμευμένη στο hotel και το check_in του συμβάντος που φτάνει.

Βάλτε αυτόν τον έλεγχο στο έναυσμα, όχι σε βήμα Συνθήκης. Μια διαδρομή που θα έμπαινε σε κάθε hotel_viewed και θα ρωτούσε «δύο φορές;» από μέσα θα έγραφε το άτομο στην πρώτη ματιά· με την επανείσοδο αποκλεισμένη, η δεύτερη ματιά δεν θα μπορούσε ποτέ να την ξεκινήσει. Το έναυσμα κάνει την ερώτηση πριν ξοδευτεί η είσοδος.

Πώς αξιολογείται: όταν φτάνει το συμβάν, το έναυσμα μετρά τα αποθηκευμένα συμβάντα hotel_viewed του ατόμου στο παράθυρο των οποίων hotel και check_in ισούνται με του συμβάντος που φτάνει, εξαιρεί από τη μέτρηση το αναγνωριστικό του ίδιου του συμβάντος και προσθέτει ένα για το συμβάν - οπότε η απάντηση είναι ίδια είτε το συμβάν έχει φτάσει στην αποθήκη αναλυτικών είτε όχι. Στο παρασκήνιο ο έλεγχος είναι το φίλτρο συμβάντος sameProperties που περιγράφεται στους κόμβους Διακλάδωσης, με κάθε ιδιότητα να συγκρίνεται με την τιμή του συμβάντος ενεργοποίησης.

Κόμβοι μηνυμάτων​

Οι κόμβοι μηνυμάτων στέλνουν επικοινωνίες στους χρήστες μέσω διαφόρων καναλιών.

Υποστηριζόμενα κανάλια​

  • Email - Αποστολή εξατομικευμένων email
  • SMS - Αποστολή μηνυμάτων κειμένου (σε λογαριασμό Delivyr επιλέγετε εγκεκριμένο πρότυπο και συμπληρώνετε τις μεταβλητές του - δείτε Λογαριασμοί Delivyr)
  • Ειδοποιήσεις push - Αποστολή ειδοποιήσεων push σε κινητά
  • WhatsApp - Αποστολή μηνυμάτων προτύπου WhatsApp ή απαντήσεων
  • Webhook - Κλήση εξωτερικού API με σώμα που χρησιμοποιεί πρότυπα Liquid
Το in-app εμφανίζεται, δεν αποστέλλεται

Το in-app είναι κανάλι που επιλέγετε μέσα στον κόμβο Μηνύματος, μαζί με email, SMS, push, WhatsApp και Viber. Συμπεριφέρεται διαφορετικά από τα υπόλοιπα: το μήνυμα μπαίνει σε ουρά και εμφανίζεται όταν ο χρήστης ανοίξει την επόμενη φορά την εφαρμογή σας, αντί να προωθηθεί, οπότε δεν έχει δική του απόδειξη "απεστάλη" ή "παραδόθηκε" - δείτε Κόμβοι Μηνύματος εντός εφαρμογής.

Επιλέγετε το κανάλι μέσα από τον ίδιο τον κόμβο Μηνύματος - το Webhook βρίσκεται στον ίδιο επιλογέα καναλιών με το Email και το SMS, με τον δικό του δομητή αιτημάτων (μέθοδος, κεφαλίδες, σώμα, ταυτοποίηση, επαναλήψεις και προαιρετική αναμονή αντιστοίχισης απόκρισης). Χρησιμοποιήστε την Αποστολή δοκιμής για να εκτελέσετε μια δοκιμαστική κλήση και έπειτα κάντε κλικ σε οποιοδήποτε πεδίο της απόκρισης για να το αντιστοιχίσετε σε μια μεταβλητή journey - ή επικολλήστε μια δείγμα απόκρισης για να συντάξετε την αντιστοίχιση χωρίς ζωντανή κλήση. Όταν η αντιστοίχιση απόκρισης είναι ενεργή, μπορείτε επίσης να ενεργοποιήσετε μια έξοδο σφάλματος (on-error output): μια δεύτερη θύρα που ακολουθεί το journey όταν η κλήση αποτύχει ή λήξει (αφήστε την ασύνδετη για συνέχιση στην κανονική έξοδο - fail-open).

Η Αποστολή δοκιμής δημιουργεί το αίτημα για την επαφή δοκιμής που επιλέγετε. Μια πραγματική επαφή (Random user ή Select existing user) φορτώνεται από τον χώρο εργασίας σας και αποδίδεται ακριβώς όπως σε μια πραγματική αποστολή - το {{ user.id }} είναι το εσωτερικό αναγνωριστικό της επαφής και κάθε άλλο πεδίο και χαρακτηριστικό προέρχεται από το προφίλ της. Ο Custom user είναι επινοημένος, οπότε τα κενά πεδία του παίρνουν δειγματικές τιμές. Μετά τη δοκιμή, εναλλάξτε το αποτέλεσμα μεταξύ Απόκριση που λήφθηκε και Αίτημα που στάλθηκε για να δείτε την ακριβή μέθοδο, URL, κεφαλίδες και σώμα που στάλθηκαν· τα διαπιστευτήρια (κεφαλίδες Authorization, κλειδιού API και υπογραφής) αποκρύπτονται.

Ποιοι έλεγχοι ισχύουν για τα webhooks

Το κανάλι Webhook καλεί μια εξωτερική υπηρεσία και όχι τα εισερχόμενα ενός ανθρώπου, επομένως η συγκατάθεση εγγραφής δεν εφαρμόζεται στα webhooks - δεν υπάρχει opt-in για webhook, και η προτίμηση εγγραφής του κοινού δεν τα περιορίζει. Όλα τα υπόλοιπα ισχύουν από προεπιλογή:

  • Οι ώρες ησυχίας και τα όρια συχνότητας περιορίζουν τα webhooks από προεπιλογή, όπως ακριβώς και τα μηνύματα - ένα webhook που αντιπροσωπεύει μια επαφή με τον πελάτη (π.χ. πυροδοτεί ένα μήνυμα σε άλλο σύστημα) δεν πρέπει να εκτελείται μέσα στο παράθυρο ησυχίας κάποιου. Αν το webhook σας είναι καθαρή κλήση συστήματος-προς-σύστημα (συγχρονισμός CRM, εκκίνηση εργασίας backend), επιλέξτε Κλήση συστήματος - παράκαμψη ωρών ησυχίας & ορίων συχνότητας στον κόμβο για να εξαιρεθείτε και από τα δύο.
  • Οι λίστες αποκλεισμού (suppression lists) εφαρμόζονται πάντα - μια αποκλεισμένη επαφή δεν πυροδοτεί ποτέ το webhook. Το πλαίσιο επιλογής «Κλήση συστήματος» δεν το αλλάζει αυτό.
  • Χρέωση - οι επαφές για τις οποίες εκτελείται ένα webhook μετρούν ως χρεώσιμα ενεργά προφίλ, όπως και οι παραλήπτες μηνυμάτων. Δείτε Πώς μετριέται η χρήση.

Συμπεριφορά προώθησης μηνυμάτων​

Σημαντικό

Οι χρήστες προχωρούν στο επόμενο βήμα αμέσως μόλις το μήνυμα μπει στην ουρά αποστολής. Το canvas δεν περιμένει το μήνυμα να παραδοθεί στα εισερχόμενα του χρήστη.

Αυτή είναι η καθιερωμένη προσέγγιση του κλάδου. Επιτρέπει:

  • Κλιμάκωση - Επεξεργασία εκατομμυρίων χρηστών χωρίς μπλοκαρίσματα
  • Απόδοση - Η εκτέλεση του Canvas δεν επιβραδύνεται από τους χρόνους παράδοσης μηνυμάτων
  • Αξιοπιστία - Η παράδοση μηνυμάτων γίνεται από αποκλειστικούς workers με επαναλήψεις

Τι σημαίνει «το μήνυμα στάλθηκε»:

  1. Το μήνυμα εξατομικεύεται με τα δεδομένα του χρήστη
  2. Το μήνυμα προστίθεται στην ουρά αποστολής
  3. Ο χρήστης προχωρά στο επόμενο βήμα του canvas
  4. Ένας αποκλειστικός worker επεξεργάζεται την ουρά και παραδίδει τα μηνύματα

Εγγυήσεις παράδοσης μηνυμάτων:

  • Τα μηνύματα επαναλαμβάνονται έως 3 φορές με εκθετική αναμονή (exponential backoff)
  • Τα αποτυχημένα μηνύματα καταγράφονται για διερεύνηση
  • Η παρακολούθηση παράδοσης (ανοίγματα, κλικ, αναπηδήσεις) γίνεται ξεχωριστά

Οι κόμβοι μηνυμάτων επιβάλλουν τη συγκατάθεση εγγραφής κατά τη στιγμή της αποστολής, ανά κανάλι - τον ίδιο έλεγχο που εφαρμόζουν οι καμπάνιες, ώστε ένα journey και μια καμπάνια να μεταχειρίζονται την ίδια επαφή με τον ίδιο τρόπο. Η προτίμηση εγγραφής του κοινού του canvas καθορίζει πόσο αυστηρός είναι ο έλεγχος:

  • Εγγεγραμμένοι (προεπιλογή) - στέλνει μόνο σε επαφές που έχουν δώσει συγκατάθεση στο συγκεκριμένο κανάλι (subscribed ή opted_in). Οι ρητά απεγγεγραμμένες επαφές και οι επαφές χωρίς καμία καταχώρηση εγγραφής παραλείπονται.
  • Επιβεβαιωμένοι - μόνο εγγεγραμμένοι με επιβεβαίωση double-opt-in.
  • Όλοι - στέλνει ανεξαρτήτως κατάστασης εγγραφής (η ρητή παράκαμψη «αποστολή ακόμη και σε απεγγεγραμμένους» / για συναλλακτικά μηνύματα).

Ιδιαιτερότητες ανά κανάλι:

  • Το Email παραλείπει επιπλέον διευθύνσεις με οριστική αναπήδηση (hard bounce).
  • Το Push είναι επιεικές: επειδή η άδεια push χορηγείται στη συσκευή και όχι μέσω καταχώρησης opt-in, το push αποστέλλεται εκτός αν η επαφή έχει ρητά απεγγραφεί - μια επαφή χωρίς καταχώρηση εξακολουθεί να λαμβάνει push.

Μια παραλειφθείσα αποστολή δεν αφαιρεί την επαφή από το journey: παραλείπεται μόνο το μήνυμα, και η επαφή προχωρά στο επόμενο βήμα (webhook, Ενημέρωση χρήστη, διακλάδωση κ.λπ. εκτελούνται κανονικά για όλους). Η συγκατάθεση επανελέγχεται σε κάθε αποστολή, οπότε μια αλλαγή εγγραφής που έγινε νωρίτερα στο journey (π.χ. σε ένα βήμα Ενημέρωσης χρήστη) ή μέσω του κέντρου προτιμήσεων γίνεται σεβαστή στο επόμενο μήνυμα - τίποτα δεν «παγώνει» κατά την είσοδο.

Επιβάλλονται επίσης οι λίστες αποκλεισμού, σε όλα τα κανάλια: μια επαφή που είναι μέλος του τμήματος μιας ενεργής λίστας αποκλεισμού παραλείπεται (και παραμένει στο journey), εκτός αν οι ετικέτες εξαίρεσης της λίστας εξαιρούν το συγκεκριμένο canvas. Τα journeys χρησιμοποιούν την υλοποιημένη συμμετοχή της επαφής σε τμήματα, η οποία ανανεώνεται βάσει προγράμματος - έτσι ο αποκλεισμός ακολουθεί τις αλλαγές με μικρή καθυστέρηση (οι καμπάνιες τον αξιολογούν ζωντανά κατά την αποστολή).

Ομάδες εγγραφής ανά αριθμό (SMS/WhatsApp)​

Για SMS και WhatsApp, τα journeys επιβάλλουν τον ίδιο έλεγχο ομάδας εγγραφής ανά αριθμό / ανά WABA που επιβάλλουν και οι καμπάνιες. Μια λίστα εγγραφών δεσμευμένη σε συγκεκριμένο αποστολέα γίνεται η ομάδα αυτού του αποστολέα: οι ομάδες SMS είναι ανά αριθμό αποστολής, οι ομάδες WhatsApp ανά WABA. Μια επαφή που έχει εξαιρεθεί (opt-out) από την ομάδα του αριθμού αποστολής (ή του WABA) παραλείπεται για το συγκεκριμένο μήνυμα - αλλά, όπως με όλες τις παραλείψεις, προχωρά κανονικά στο επόμενο βήμα· μόνο το μήνυμα δεν αποστέλλεται.

Το ποιας ομάδας το opt-out ελέγχεται καθορίζεται από τον αποστολέα που επιλέγετε στον κόμβο μηνύματος: τον αριθμό SMS για μήνυμα SMS, το WABA για μήνυμα WhatsApp. Αν δεν επιλέξετε, χρησιμοποιείται ο προεπιλεγμένος αποστολέας (SMS) ή το προεπιλεγμένο WABA (WhatsApp) του χώρου εργασίας, και ελέγχεται η ομάδα αυτής της προεπιλογής.

Ώρες ησυχίας​

Οι κόμβοι μηνυμάτων σέβονται τις ρυθμίσεις ωρών ησυχίας του χώρου εργασίας, οι οποίες αξιολογούνται στη ζώνη ώρας της επαφής κατά τη στιγμή της αποστολής. Όταν μια επαφή φτάνει σε κόμβο μηνύματος μέσα σε παράθυρο ησυχίας (ή σε ρυθμισμένη αργία), η συμπεριφορά ακολουθεί την ανά κανάλι αυστηρότητα του οργανισμού:

  • Παράλειψη: το μήνυμα δεν αποστέλλεται και η επαφή προχωρά στο επόμενο βήμα.
  • Αναβολή: ο κόμβος μηνύματος αναβάλλεται μέχρι να κλείσει το παράθυρο, και έπειτα επανεκτελείται και στέλνει.

Αυτό αντικατοπτρίζει τις καμπάνιες (π.χ. το email μπορεί να αναβληθεί για το πρωί, ενώ το SMS να παραλειφθεί), ώστε οι ώρες ησυχίας να εφαρμόζονται με συνέπεια είτε η επαφή προσεγγίζεται από καμπάνια είτε από journey.

Αποστολή δοκιμαστικού μηνύματος​

Κάθε κόμβος μηνύματος έχει κουμπί Αποστολή δοκιμαστικού μηνύματος στο παράθυρο ρύθμισής του. Χρησιμοποιήστε το για να επαληθεύσετε την εξατομίκευση και τη συνδεσιμότητα με τον πάροχο πριν από τη δημοσίευση.

Κάλυψη ανά κανάλι:

  • Email - ανοίγει παράθυρο δοκιμαστικής αποστολής με τον ίδιο επιλογέα χρήστη (τυχαίος / υπάρχων / προσαρμοσμένος) και παράκαμψη email παραλήπτη
  • SMS - ανοίγει παράθυρο δοκιμαστικής αποστολής με τον ίδιο επιλογέα χρήστη (τυχαίος / υπάρχων / προσαρμοσμένος) και παράκαμψη αριθμού τηλεφώνου
  • WhatsApp - όπως το SMS, με τον επιπλέον όρο ότι το επιλεγμένο πρότυπο πρέπει να βρίσκεται σε κατάσταση approved

Ο επιλογέας επιλύει τις μεταβλητές Liquid με βάση τα γνωρίσματα του επιλεγμένου χρήστη και στη συνέχεια στέλνει απευθείας μέσω του παρόχου του χώρου εργασίας - παρακάμπτοντας την ουρά του canvas, τη στόχευση κοινού και τους κανόνες ωρών ησυχίας. Ο αποκλεισμός εξακολουθεί να επιβάλλεται: μια δοκιμαστική αποστολή σε αποκλεισμένη διεύθυνση ή αριθμό απορρίπτεται, ακριβώς όπως μια κανονική αποστολή. Οι δοκιμαστικές αποστολές δεν μετρούν στα στατιστικά εκτέλεσης, δεν πυροδοτούν webhooks και είναι πάντα δωρεάν.

Οι δοκιμαστικές αποδόσεις ταυτίζονται με τις κανονικές

Οι δοκιμαστικές αποστολές αποδίδονται μέσω της ίδιας διαδικασίας με τις κανονικές αποστολές - τα σύμβολα εξατομίκευσης, τα προσαρμοσμένα γνωρίσματα και τα μπλοκ περιεχομένου επιλύονται πανομοιότυπα, οπότε αυτό που λαμβάνετε σε μια δοκιμή είναι ακριβώς αυτό που θα λάβει το κοινό σας.

Πρότυπα σε βήμα μηνύματος​

  • Τα "From template" του email και "From template" του in-app συνδέουν το βήμα με ένα αποθηκευμένο πρότυπο. Η Αλλαγή προτύπου επιλέγει άλλο και το βήμα το ακολουθεί από εκεί και πέρα - τίποτα δεν αντιγράφεται στο βήμα, άρα τίποτα δεν χάνεται.
  • Τα βήματα Push και Webhook αντιγράφουν ένα πρότυπο μέσω του Start from template. Η επιλογή άλλου προτύπου πάνω σε περιεχόμενο που επεξεργαστήκατε ζητά επιβεβαίωση πριν την αντικατάσταση· περιεχόμενο που έμεινε ακριβώς όπως το άφησε το τελευταίο πρότυπο αντικαθίσταται χωρίς ερώτηση.
  • Η Αποθήκευση ως πρότυπο (email με Drag & drop ή Custom HTML, push, in-app με Drag & drop ή HTML) αποθηκεύει το τρέχον περιεχόμενο του βήματος ως νέο πρότυπο, με προεπιλεγμένο όνομα "όνομα διαδρομής - κανάλι" και προαιρετικές ετικέτες. Το βήμα κρατά το δικό του περιεχόμενο και δεν συνδέεται με το νέο πρότυπο. Απαιτείται δικαίωμα επεξεργασίας προτύπων.

Κρατήθηκε από το Joryio​

Στις Προηγμένες επιλογές παράδοσης κάθε βήμα μηνύματος επιλέγει τι γίνεται όταν το άτομο μόλις έλαβε άλλο μήνυμα: Πάντα αποστολή (η προεπιλογή, για συναλλακτικά βήματα), Μπορεί να περιμένει, μετά αποστολή, ή Μπορεί να περιμένει, παράλειψη αν ξεπεραστεί, με το μέγιστο διάστημα κρατήματος. Σε βήμα που μπορεί να περιμένει, το Joryio κρατά για λίγο ένα μήνυμα χαμηλής αξίας όταν το άτομο έλαβε άλλο μήνυμα την τελευταία ημέρα, μετά το στέλνει, ή το παραλείπει μόλις εξαντληθεί το περιθώριο αναμονής σε βήμα παράλειψης. Τρέχει μετά τους κανόνες συγκατάθεσης, ήσυχων ωρών, συνδρομής και συχνότητας, ποτέ στη θέση τους. Όταν δύο μηνύματα ενός ατόμου εκκρεμούν στο ίδιο παράθυρο, το υψηλότερης αξίας πηγαίνει πρώτο και το άλλο περιμένει, κατονομάζοντας το μήνυμα που προηγήθηκε. Ένα κρατημένο μήνυμα εμφανίζεται ως Κρατήθηκε από το Joryio - αιτία στο χρονολόγιο του παραλήπτη και ως κρατημένο στα αναλυτικά της διαδρομής, ώστε ένα ποσοστό μετατροπής να μην αραιώνει ποτέ σιωπηλά. Μια ομάδα σύγκρισης στέλνει πάντα· το αποτέλεσμά της βρίσκεται στις Ρυθμίσεις, Μοντέλα ML στην ενότητα Κρατημένα μηνύματα.

Κόμβοι Μηνύματος εντός εφαρμογής​

Τα μηνύματα εντός εφαρμογής λειτουργούν διαφορετικά από κάθε άλλο κανάλι, γι' αυτό έχουν δικό τους κόμβο. Το email, το SMS, τα push και το WhatsApp προωθούνται στο άτομο. Ένα μήνυμα εντός εφαρμογής εμφανίζεται όταν το άτομο ανοίξει την επόμενη φορά την εφαρμογή σας - επομένως αυτός ο κόμβος δεν "στέλνει" τίποτα. Τοποθετεί το μήνυμα σε ουρά για τον χρήστη και η εφαρμογή σας το εμφανίζει στην επόμενη κατάλληλη συνεδρία.

Προσθέστε τον από το πλακίδιο Μήνυμα εντός εφαρμογής στην παλέτα του δομητή.

Τι ρυθμίζετε​

  • Μήνυμα (υποχρεωτικό) - από πού προέρχεται το περιεχόμενο. Ο κόμβος ανοίγει με την ίδια επιλογή όπως ο κόμβος email:
    • Γράψτε το εδώ - συντάσσεται στον κόμβο και χρησιμοποιείται μόνο από αυτό το βήμα. Επιλέξτε επεξεργαστή: Drag & drop (οπτικά μπλοκ και εικόνες), Κλασικό - στυλ εφαρμογής (τίτλος, κείμενο, εικόνα και κουμπιά που η εφαρμογή σας αποδίδει με τις δικές της γραμματοσειρές και χρώματα, ώστε να εμφανίζεται και σε εφαρμογές που μπλοκάρουν HTML) ή HTML.
    • Χρήση καμπάνιας - επαναχρησιμοποιήστε μια καμπάνια εντός εφαρμογής που έχετε ήδη φτιάξει, μαζί με τις παραλλαγές της.
    • Από πρότυπο - συνδέστε ένα αποθηκευμένο πρότυπο εντός εφαρμογής από το Brand Studio. Το βήμα δείχνει το πρότυπο όπως είναι όταν το μήνυμα μπαίνει στην ουρά, οπότε η επεξεργασία του προτύπου ενημερώνει κάθε διαδρομή που το χρησιμοποιεί.
  • Διάταξη - modal, banner, slide-up ή πλήρης οθόνη (ένα πρότυπο φτιαγμένο για μια διάταξη τη φέρνει μαζί του).
  • Προτεραιότητα - Επείγον / Υψηλή / Κανονική / Χαμηλή. Όταν περισσότερα μηνύματα είναι κατάλληλα την ίδια στιγμή, εμφανίζεται πρώτο αυτό με την υψηλότερη προτεραιότητα· οι ισοπαλίες λύνονται με το παλαιότερο πρώτα, ώστε ένα μήνυμα σε ουρά να μη θάβεται από νεότερα. Τα μηνύματα journey και οι καμπάνιες εντός εφαρμογής κατατάσσονται μαζί.
  • Πόσο συχνά εμφανίζεται - Εμφάνιση μία φορά (προεπιλογή), Εμφάνιση έως N φορές (με προαιρετικό ελάχιστο κενό μεταξύ εμφανίσεων) ή Εμφάνιση μέχρι το κλικ ή την απόρριψη.
  • Διακοπή προσπαθειών μετά από N ημέρες - αν το άτομο δεν ανοίξει ποτέ την εφαρμογή μέσα σε αυτό το διάστημα, το μήνυμα λήγει χωρίς να εμφανιστεί. Προεπιλογή 7 ημέρες.
  • Αναμονή μέχρι την εμφάνιση (προαιρετικό) - δείτε παρακάτω.

Πότε συνεχίζει το journey;​

Από προεπιλογή το journey συνεχίζει αμέσως μόλις το μήνυμα μπει σε ουρά - η ίδια συμπεριφορά "στείλε και συνέχισε" με τα άλλα κανάλια, καθώς δεν μπορείτε να γνωρίζετε πότε κάποιος θα ανοίξει ξανά την εφαρμογή.

Επιλέξτε Αναμονή μέχρι την εμφάνιση για να κρατήσετε το άτομο σε αυτό το βήμα μέχρι να δει πραγματικά το μήνυμα. Αν δεν ανοίξει την εφαρμογή εντός του παραθύρου αναμονής (προεπιλογή 24 ώρες), το journey συνεχίζει ούτως ή άλλως - δεν κολλάει ποτέ σε μήνυμα που δεν ειδώθηκε.

Πότε να περιμένετε

Χρησιμοποιήστε την Αναμονή μέχρι την εμφάνιση όταν το επόμενο βήμα βγάζει νόημα μόνο αφού το άτομο δει το μήνυμα - π.χ. "δείξε τη συμβουλή onboarding, περίμενε, μετά στείλε email σε όσους την είδαν". Αφήστε το ανενεργό για απλές υπενθυμίσεις.

Έλεγχος συχνότητας​

Τα μηνύματα εντός εφαρμογής από journey προσμετρώνται στο ίδιο όριο συχνότητας εντός εφαρμογής με τις καμπάνιες - ένα κοινό ημερήσιο όριο ανά άτομο, συν το συνολικό όριο όλων των καναλιών. Ένα μήνυμα που μπλοκάρεται από το όριο παραλείπεται και το journey προχωρά. Οι αποκλεισμένες επαφές δεν λαμβάνουν ποτέ μηνύματα εντός εφαρμογής.

Αναφορές​

Ο κόμβος αναφέρει όπως κάθε άλλο βήμα μηνύματος, με ορολογία in-app:

  • Το Εμφανίστηκε μετρά ως παράδοση του κόμβου (στο in-app, η εμφάνιση είναι η παράδοση)
  • Το Κλικ μετρά τα πατήματα στο μήνυμα
  • Δεν υπάρχει βήμα Άνοιγμα για το in-app - η χοάνη είναι εμφάνιση → κλικ

Οι μετατροπές που αποδίδονται στο journey χρησιμοποιούν το ίδιο παράθυρο και μοντέλο απόδοσης με τα άλλα κανάλια.

Κόμβοι Καθυστέρησης​

Οι κόμβοι Καθυστέρησης παύουν προσωρινά την πρόοδο του χρήστη. Τέσσερις τύποι καθυστέρησης καλύπτουν τα συνηθισμένα μοτίβα:

Τύποι καθυστέρησης​

ΤύποςΠότε να τον χρησιμοποιήσετε
ΔιάρκειαΑναμονή για σταθερό χρονικό διάστημα από τη στιγμή που ο χρήστης φτάνει στο βήμα (π.χ. «αναμονή 7 ημερών»).
Ημερολογιακή ημερομηνίαΑναμονή μέχρι συγκεκριμένη ημερομηνία + ώρα (π.χ. «κυκλοφορία στις 2026-05-17 στις 10:00»). Οι χρήστες που εισέρχονται μετά από εκείνη τη στιγμή εξέρχονται από το journey.
Ημέρα της εβδομάδαςΑναμονή μέχρι την επόμενη εμφάνιση μιας επιλεγμένης ημέρας + ώρας (π.χ. «επόμενη Δευτέρα στις 12:00»).
Η καλύτερη ώρα του ατόμουΑναμονή μέχρι την επόμενη εμφάνιση της ώρας που το άτομο συνήθως ανοίγει μηνύματα ή συνήθως παραγγέλνει, προαιρετικά λίγα λεπτά νωρίτερα (π.χ. «η συνηθισμένη ώρα παραγγελίας του, 30 λεπτά πριν»). Δείτε Η καλύτερη ώρα του ατόμου.

Διάρκεια​

ΡύθμισηΠεριγραφή
Αναμονή γιαΑριθμός + μονάδα (Λεπτά / Ώρες / Ημέρες / Εβδομάδες).
Έπειτα αναμονή μέχρι συγκεκριμένη ώρα της ημέραςΠροαιρετικό. Μετά την ολοκλήρωση της διάρκειας, συνεχίζεται η αναμονή μέχρι την επιλεγμένη ώρα της ημέρας στην επιλεγμένη ζώνη ώρας.
Ζώνη ώραςΕταιρείας / Τοπική του χρήστη / UTC (χρησιμοποιείται από την επιλογή ώρας της ημέρας).

Ημερολογιακή ημερομηνία​

ΡύθμισηΠεριγραφή
ΗμερομηνίαΗμερομηνία-στόχος σε μορφή ISO. Επιλέξιμη από το ενσωματωμένο ημερολόγιο - κάντε κλικ σε οποιαδήποτε ημέρα· τα βέλη αλλάζουν μήνα.
ΏραΕπιλογείς ώρας + λεπτού.
Ζώνη ώραςΕταιρείας / Τοπική του χρήστη / UTC.

Ημέρα της εβδομάδας​

ΡύθμισηΠεριγραφή
Ημέρα & ώραΗμέρα της εβδομάδας + ώρα + λεπτό. Η σειρά προεπισκόπησης 7 κελιών στο πάνω μέρος του παραθύρου είναι επίσης επιλέξιμη με κλικ.
Ζώνη ώραςΕταιρείας / Τοπική του χρήστη / UTC.
Αν ο χρήστης φτάσει μετά το όριοΤο Wait (προεπιλογή) τον μεταφέρει στην εμφάνιση της επόμενης εβδομάδας. Το Advance εκτελείται αμέσως ώστε να μη χάσει μια εβδομάδα.

Η καλύτερη ώρα του ατόμου​

Ένα win-back που φτάνει στις 19:30 σε κάποιον που συνήθως παραγγέλνει στις 20:00 - αυτή η λειτουργία περιμένει την επόμενη εμφάνιση της προσωπικής ώρας αιχμής του ατόμου, στη ζώνη ώρας του, μείον έναν χρόνο προπορείας.

ΡύθμισηΠεριγραφή
Με βάσηΠότε συνήθως ανοίγουν μηνύματα (τα ανοίγματα, οι αναγνώσεις, τα πατήματα και τα κλικ τους - μετρημένα ανά κανάλι, δείτε παρακάτω) ή Πότε συνήθως παραγγέλνουν (οι παραγγελίες που έκαναν).
Για κανάλιΜόνο για ανοίγματα. Το κανάλι του επόμενου μηνύματος (αυτόματο) (προεπιλογή) διαβάζει τον καμβά: το κανάλι του επόμενου βήματος μηνύματος μετά την καθυστέρηση, όταν κάθε διαδρομή από την καθυστέρηση οδηγεί σε ένα κανάλι. Ή ονομάστε ένα - Email, SMS, WhatsApp, Push, Εντός εφαρμογής, Viber.
Χρόνος προπορείαςΛεπτά πριν από την ώρα που απελευθερώνεται το άτομο (0-1440). Το 30 σε αιχμή 20:00 απελευθερώνει στις 19:30.
Ζώνη ώραςΤοπική ώρα χρήστη (προεπιλογή - το γνώρισμα timezone του ατόμου, με επιστροφή στην ώρα εταιρείας) ή Ώρα εταιρείας.

Το τι μετρά ως «άνοιγμα» εξαρτάται από το κανάλι: στο email ανοίγματα και κλικ· στο push πατήματα· εντός εφαρμογής κλικ (η εμφάνιση δεν είναι άνοιγμα)· στο WhatsApp αποδείξεις ανάγνωσης και μετά κλικ· στο Viber «seen» και μετά κλικ. Το SMS δεν έχει άνοιγμα - μετρούν μόνο τα κλικ σε συνδέσμους, οπότε ένα άτομο χρειάζεται τρία κλικ σε συνδέσμους SMS πριν αποκτήσει δική του ώρα SMS.

Πώς επιλέγεται η ώρα για ένα κανάλι, με τη σειρά:

  1. Δικό του κανάλι - το άτομο έχει τουλάχιστον 3 συμβάντα σε αυτό το κανάλι: η ώρα με τα περισσότερα από αυτά.
  2. Ίδια συσκευή - διαφορετικά, τουλάχιστον 3 συμβάντα σε όλη την οικογένεια συσκευής του καναλιού: την οικογένεια κινητού (push, WhatsApp, Viber, SMS, εντός εφαρμογής) ή την οικογένεια γραφείου (email). Δύο κλικ SMS και πέντε πατήματα push δίνουν σε μια αναμονή SMS την ώρα του push.
  3. Οποιοδήποτε κανάλι - διαφορετικά, τουλάχιστον 3 συμβάντα σε οποιοδήποτε κανάλι.
  4. Χώρος εργασίας - διαφορετικά, η ώρα αιχμής ολόκληρου του χώρου εργασίας για αυτό το κανάλι και την οικογένεια συσκευής του (ανανεώνεται κάθε 10 λεπτά).
  5. Προεπιλογή - χώρος εργασίας χωρίς καθόλου ιστορικό: 10:00 για email, 19:00 για την οικογένεια κινητού.

Το Πότε συνήθως παραγγέλνουν, καθώς και μια αναμονή ανοιγμάτων της οποίας το κανάλι δεν προκύπτει από τον καμβά (κανένα βήμα μηνύματος παρακάτω, ή διακλαδώσεις σε διαφορετικά κανάλια), χρησιμοποιούν τη συντομότερη αλυσίδα: προσωπική (3 συμβάντα) - χώρος εργασίας - προεπιλογή (10:00 για ανοίγματα, 19:00 για παραγγελίες).

Τα άτομα χωρίς αρκετό ιστορικό χρησιμοποιούν τη συνηθισμένη ώρα του χώρου εργασίας - κανείς δεν περιμένει τυχαία. Αν η στιγμή-στόχος έχει ήδη περάσει σήμερα, ή απέχει λιγότερο από πέντε λεπτά, το άτομο περιμένει την αυριανή. Το όριο των 30 ημερών ισχύει όπως σε κάθε καθυστέρηση.

Η κάρτα Purchase Behavior στο προφίλ του ατόμου δείχνει έναν πίνακα Καλύτερη ώρα ανά κανάλι - μία γραμμή για κάθε κανάλι στο οποίο ο χώρος εργασίας έχει ιστορικό, πλέον των παραγγελιών - με την ώρα και την προέλευσή της («δικά τους ανοίγματα», «συνήθεια κινητού», «οποιοδήποτε κανάλι», «μοτίβο χώρου εργασίας», «προεπιλογή»), ώστε να βλέπετε τι θα κάνει ένα journey πριν το δημοσιεύσετε. Κάθε βήμα καθυστέρησης καταγράφει το κανάλι και το σκαλί που χρησιμοποίησε, ώστε η αναφορά του journey να μετρά προσωπικές έναντι αναμονών χώρου εργασίας.

Εξατομίκευση καθυστέρησης​

Ένας διακόπτης σε κάθε τύπο. Όταν είναι ενεργός, η καθυστέρηση διαβάζει από μια ανά χρήστη μεταβλητή αντί για σταθερή τιμή:

ΠηγήΔιαβάζει από
Μεταβλητές περιβάλλοντοςexecution.context[varName] - το εισερχόμενο περιβάλλον (context) του journey (παλαιότερη προεπιλογή).
Προσαρμοσμένο γνώρισμα χρήστηuser.attributes.<varName> και πεδία χρήστη ανωτάτου επιπέδου.
Ιδιότητα συμβάντοςΜια ιδιότητα του συμβάντος: το πιο πρόσφατο συμβάν που ταίριαξε ένας κόμβος Διαχωρισμού βάσει συμπεριφοράς, αλλιώς το συμβάν που ξεκίνησε το ταξίδι (waitDays ή properties.waitDays). Αν η ιδιότητα λείπει ή δεν είναι χρήσιμη, η καθυστέρηση δεν περιμένει - το βήμα το καταγράφει ως delayVariableMissing και καταγράφεται προειδοποίηση.

Για Ημερολογιακή ημερομηνία / Ημέρα της εβδομάδας με εξατομικευμένη μεταβλητή, μπορείτε επίσης να ρυθμίσετε μια μετατόπιση (συν ή πλην, σε ώρες / ημέρες / εβδομάδες) - π.χ. «αποστολή 3 ημέρες πριν από την ημερομηνία ανανέωσης».

Μια εξατομικευμένη ημερομηνία χωρίς δική της ζώνη ώρας (2026-10-16T09:00:00, ή σκέτη ημερομηνία όπως 2026-10-16, που σημαίνει μεσάνυχτα) διαβάζεται στην Εναλλακτική ζώνη ώρας του βήματος - Company, User local ή UTC. Μια τιμή που φέρει δική της μετατόπιση (2026-10-16T09:00:00+03:00, ή Z στο τέλος) την κρατά.

Επίλυση ζώνης ώρας​

ΛειτουργίαΕπιλύεται σε
Ώρα εταιρείαςΗ ζώνη ώρας του χώρου εργασίας, ή η ζώνη ώρας του οργανισμού από τις Ρυθμίσεις όταν ο χώρος εργασίας δεν έχει, αλλιώς UTC - η ίδια ζώνη που χρησιμοποιούν οι καμπάνιες.
Τοπική ώρα χρήστηuser.attributes.timezone (ορίζεται από το SDK). Αν λείπει, χρησιμοποιείται η ώρα εταιρείας.
UTCUTC.

Όρια​

  • Όλοι οι κλάδοι καθυστέρησης περιορίζονται σε μέγιστο 30 ημερών. Μια καθυστέρηση αποθηκεύει τις τιμές που δείχνει (7 ημέρες, την ημερομηνία, ημέρα και ώρα στην οθόνη). Μια καθυστέρηση Ημερολογιακής ημερομηνίας χωρίς ημερομηνία δεν μπορεί να ενεργοποιηθεί· κάθε άλλη ελλιπής καθυστέρηση εκτελείται αμέσως αντί να «κολλήσει» το journey, με καταγραφή δομημένης προειδοποίησης.

Παράδειγμα: Αναμονή 24 ωρών πριν από την αποστολή follow-up email.

Κόμβοι Διακλάδωσης​

Οι κόμβοι Διακλάδωσης δρομολογούν τους χρήστες σε διαφορετικές διαδρομές βάσει των γνωρισμάτων τους, του ιστορικού συμβάντων, της συμμετοχής σε τμήματα και άλλων. Ένα μπλοκ ενσωματώνει τόσο το παλαιό Decision Split (Ναι / Όχι) όσο και το Audience Path (πολλαπλές ιεραρχημένες ομάδες) - ένας διακόπτης στο παράθυρο εναλλάσσει μεταξύ των δύο.

Ο υποκείμενος nodeType του μπλοκ παραμένει condition για συμβατότητα προς τα πίσω με υπάρχοντα δεδομένα journey. Τα νέα journeys αποθηκεύονται ως branchMode: 'yesno' | 'multi'.

Δύο λειτουργίες​

Ναι / Όχι - μία ονομασμένη διαδρομή + Everyone else. Χρησιμοποιήστε την όταν το ερώτημα είναι δυαδικό («αγόρασε αυτός ο χρήστης, ναι/όχι»).

Πολλαπλή - έως 10 ονομασμένες, ιεραρχημένες ομάδες + Everyone else (11 διαδρομές δρομολόγησης συνολικά). Χρησιμοποιήστε την όταν χρειάζεστε περισσότερες από δύο διαδρομές («πελάτες VIP, συχνοί επισκέπτες, αγοραστές μίας φοράς, όλοι οι υπόλοιποι»). Αναβαθμίστε μια διακλάδωση Ναι/Όχι σε Πολλαπλή μέσω της Προσθήκης νέας ομάδας στη ράγα του παραθύρου. Απλοποιήστε ξανά μέσω της ενέργειας Απλοποίηση σε Ναι / Όχι (ορατή όταν απομένουν ακριβώς μία ονομασμένη ομάδα + Everyone else).

Ιεραρχημένη επίλυση προτεραιότητας​

Στην Πολλαπλή λειτουργία, οι ομάδες αξιολογούνται με τη σειρά. Κερδίζει η πρώτη ομάδα που ταιριάζει. Οι χρήστες που δεν ταιριάζουν με καμία ονομασμένη ομάδα δρομολογούνται στο Everyone else. Μπορείτε να σύρετε τις γραμμές στη ράγα για να αλλάξετε την κατάταξη.

«Έξοδος από το canvas» ανά ομάδα​

Κάθε ονομασμένη ομάδα (και το Everyone else) μπορεί να επισημανθεί ως Έξοδος από το canvas αντί για δρομολόγηση - οι χρήστες που φτάνουν σε αυτήν την ομάδα ολοκληρώνουν το journey στο βήμα της διακλάδωσης με exitReason: 'branch_exit:<group name>'. Χρήσιμο για το «αν πληρούται η συνθήκη, δεν χρειάζεται να σταλεί τίποτα - έξοδος από τη ροή».

Γραμμές φίλτρων​

Κάθε διαδρομή / ομάδα ρυθμίζεται με μία ή περισσότερες ομάδες φίλτρων. Τα φίλτρα μέσα σε μια ομάδα συνδέονται με εσωτερικό σύνδεσμο AND / OR· οι ίδιες οι ομάδες συνδέονται με έναν εξωτερικό groupOperator (συνήθως OR).

Το παράθυρο της Διακλάδωσης χρησιμοποιεί το ίδιο στοιχείο <FilterRow> που χρησιμοποιούν ο επεξεργαστής τμημάτων και ο επιλογέας κοινού καμπάνιας, οπότε υποστηρίζει κάθε τύπο φίλτρου που υποστηρίζουν εκείνες οι επιφάνειες:

ΤύποςΤι ελέγχειΤελεστές
attributeuser.attributes[field]equals, not_equals, gt, gte, lt, lte, contains, not_contains, exists, not_exists, in, not_in
default_attributeΠεδία χρήστη ανωτάτου επιπέδου (email, phone, externalId, firstName, lastName, country, βαθμολογίες ML, παράγωγα e-commerce)Ίδιοι με το attribute
event / behavioralΙστορικό συμβάντων με προαιρετικό χρονικό παράθυροperformed_event, not_performed_event, performed_event_in_last, not_performed_event_in_last, event_count_gte, event_count_lte
segmentΣυμμετοχή σε τμήμα (αναδρομικά - τα τμήματα μπορούν να αναφέρονται σε άλλα τμήματα, με όριο βάθους 5)in, not_in
canvas_executionΕνεργές / ολοκληρωμένες / τερματισμένες εκτελέσεις canvasin_canvas, not_in_canvas, in_any_canvas, not_in_any_canvas, completed_canvas, exited_canvas
channel_subscriptionuser.subscriptions[channel].statussubscribed_to_channel, not_subscribed_to_channel, opted_in_to_channel
list_membershipΚαταχώρηση εγγραφής σε επιλεγμένη λίσταmember_of_list, not_member_of_list
bounce_statusΕγκυρότητα email / κατάσταση οριστικής ή προσωρινής αναπήδησηςemail_valid, email_bounced, email_hard_bounced
ecommerceΤμήμα RFM, πλήθος παραγγελιών, δαπάνη, κατάσταση καλαθιούrfm_segment_equals, rfm_segment_in, has_purchased, never_purchased, total_orders_*, total_spent_*, average_order_value_*, days_since_last_order_*, has_active_cart, no_active_cart, cart_value_*, cart_abandoned
entityuser.entityRecords[entity]exists, not_exists
appuser.appIdshas_app, not_has_app

Και οι έντεκα τύποι μοιράζονται έναν κοινό αξιολογητή (FilterEvaluator) που χρησιμοποιείται τόσο από τον worker Διακλάδωσης του canvas όσο και από τον αξιολογητή καμπανιών εντός εφαρμογής - νέοι τύποι που προστίθενται εκεί ενεργοποιούνται αυτόματα παντού.

Επιλογές χρονικού παραθύρου (φίλτρα συμβάντων)​

  • withinMinutes - Λεπτά (π.χ. 30)
  • withinHours - Ώρες (π.χ. 1, 24)
  • withinDays - Ημέρες (π.χ. 7, 30)
  • eventTimeWindow - Δευτερόλεπτα (χρησιμοποιείται από τον αξιολογητή εντός εφαρμογής)

Υποστηρίζονται και συνθήκες ιδιοτήτων - για παράδειγμα, «εκτέλεσε Order Completed τις τελευταίες 30 ημέρες με αξία ≥ 100»:

{
"type": "event",
"eventName": "Order Completed",
"operator": "performed_event_in_last",
"withinDays": 30,
"eventProperties": { "value": "100" }
}

Οι τιμές του συμβάντος ενεργοποίησης​

Μέσα σε μια διαδρομή, μια συνθήκη ιδιότητας συμβάντος μπορεί να συγκρίνει με την τιμή που έφερε το συμβάν ενεργοποίησης αντί για μια σταθερή τιμή. Δίπλα στο πεδίο τιμής επιλέξτε Χρήση της τιμής του συμβάντος ενεργοποίησης· η γραμμή τότε διαβάζεται «hotel είναι το hotel του συμβάντος ενεργοποίησης». Στο καλώδιο η τιμή είναι το πρότυπο {{ trigger.properties.hotel }} (γίνεται δεκτή και η σύντομη μορφή {{ trigger.hotel }}), που επιλύεται από το συμβάν ενεργοποίησης της εκτέλεσης ακριβώς πριν την αξιολόγηση της συνθήκης.

Μια αναφορά που το έναυσμα δεν μπορεί να απαντήσει - η ιδιότητα λείπει, ή η διαδρομή ξεκίνησε μέσω API και δεν έχει συμβάν - κάνει τη συνθήκη ψευδή, και ο χρόνος εκτέλεσης καταγράφει το όνομα της ιδιότητας μία φορά. Ποτέ δεν αντιμετωπίζεται ως κενή.

Τα τμήματα δεν έχουν έναυσμα, οπότε η επιλογή εμφανίζεται μόνο σε συνθήκες διαδρομής.

Μέτρηση του ίδιου πράγματος​

Οι τελεστές μέτρησης (performed_count_gte, performed_count_lte) δέχονται με τις ίδιες τιμές των - μία έως πέντε ιδιότητες συμβάντος. Η μέτρηση γίνεται τότε ανά διαφορετικό συνδυασμό αυτών των τιμών, και η συνθήκη ισχύει όταν οποιοσδήποτε συνδυασμός φτάσει τον αριθμό.

{
"type": "event",
"eventName": "hotel_viewed",
"operator": "performed_count_gte",
"value": 2,
"withinDays": 2,
"sameProperties": ["hotel", "check_in"],
"propertyConditions": [
{ "property": "hotel", "operator": "equals", "value": "{{ trigger.properties.hotel }}" },
{ "property": "check_in", "operator": "equals", "value": "{{ trigger.properties.check_in }}" }
]
}

Με λόγια: «εκτέλεσε hotel_viewed τουλάχιστον 2 φορές τις τελευταίες 2 ημέρες με το ίδιο hotel και check_in, όπου hotel είναι το hotel του συμβάντος ενεργοποίησης και check_in το check_in του συμβάντος ενεργοποίησης». Χωρίς τις δύο συνθήκες ιδιοτήτων είναι «είδε οποιοδήποτε ένα ξενοδοχείο δύο φορές για τις ίδιες ημερομηνίες» - η μορφή του τμήματος. Για διαδρομή που πρέπει να ξεκινά στη δεύτερη ματιά, χρησιμοποιήστε τον έλεγχο επανάληψης στο έναυσμα και όχι αυτή τη συνθήκη στη μέση της διαδρομής.

Στο ClickHouse η ομαδοποιημένη μορφή είναι GROUP BY στις εξαγόμενες ιδιότητες με HAVING count(DISTINCT event_id) >= N LIMIT 1· τα ονόματα ιδιοτήτων περνούν ως παράμετροι του ερωτήματος, οπότε λειτουργεί κάθε όνομα που καταγράφεται (κενά, παύλες, οποιοδήποτε αλφάβητο· ένα όνομα με τελεία διαβάζει πρώτα το ακριβές κλειδί και μετά την ένθετη διαδρομή), και ένα κενό όνομα αποτυγχάνει τη συνθήκη (ψευδής).

Κάρτα κόμβου στο canvas​

Η κάρτα του κόμβου προσαρμόζεται στη λειτουργία:

  • Ναι / Όχι - δύο θύρες εξόδου στο κάτω μέρος (πράσινη = ναι, κόκκινη = όχι).
  • Πολλαπλή - μία θύρα εξόδου ανά ομάδα στη δεξιά πλευρά της κάρτας, με το όνομα της ομάδας στη γραμμή. Η κάρτα μεγαλώνει κατακόρυφα καθώς προστίθενται ομάδες.

Οι ετικέτες των ακμών ταιριάζουν ακριβώς με το όνομα της ομάδας (ο worker διαβάζει τις ακμές βάσει ονόματος κατά τη δρομολόγηση). Αν μετονομάσετε μια ομάδα, η συνδεδεμένη ακμή παραμένει συνδεδεμένη επειδή το κλειδί είναι το handle id του React Flow· μετονομασία → αποθήκευση → καμία διακοπή.

Παράδειγμα: Ροή εγκαταλελειμμένου καλαθιού​

  1. Έναυσμα: Συμβάν = "Product Added"
  2. Καθυστέρηση: Αναμονή 1 ώρας
  3. Διακλάδωση (Ναι / Όχι): not_performed_event_in_last "Order Completed" την τελευταία 1 ώρα
    • Ναι: Αποστολή email επαναφοράς
    • Όχι (Everyone else): Έξοδος από τη ροή

Παράδειγμα: Δρομολόγηση RFM πολλαπλών διαδρομών​

  1. Διακλάδωση (Πολλαπλή) με 3 ονομασμένες ομάδες + Everyone else:
    • Πελάτες VIP (ecommerce.rfm_segment_equals: champions) → Αποστολή αποκλειστικής προσφοράς
    • Συχνοί επισκέπτες (event performed Page Viewed in last 7 days, event_count_gte: 10) → Αποστολή επανενεργοποίησης
    • Σε κίνδυνο (ecommerce.days_since_last_order_gte: 60) → Αποστολή μηνύματος επανάκτησης
    • Everyone else → Έξοδος από το canvas

Κόμβοι Διαχωρισμού βάσει συμπεριφοράς​

Ένας Διαχωρισμός βάσει συμπεριφοράς (Behavior Split) δρομολογεί τους χρήστες βάσει του τι κάνουν μέσα σε ένα χρονικό παράθυρο. Ενώ η Διακλάδωση διαβάζει την κατάσταση τη στιγμή της αξιολόγησης, ο Διαχωρισμός βάσει συμπεριφοράς «σταθμεύει» τον χρήστη και παρατηρεί το μέλλον - το πρώτο συμβάν που ταιριάζει (ή η λήξη του παραθύρου) αποφασίζει ποια διαδρομή θα ακολουθήσει.

Ενσωματώνει τα παλαιά μπλοκ Action Path (ένα συμβάν + μία συνθήκη) και Audience Path με κλειδί συμβάντος. Μία έννοια, δύο καταστάσεις.

Δύο λειτουργίες​

ΛειτουργίαΠότε να τη χρησιμοποιήσετε
Έκανε / Δεν έκανεΜία ονομασμένη διαδρομή «έκανε» + η σιωπηρή εναλλακτική «Κανένα συμβάν στο παράθυρο». Ισοδύναμο του παλαιού Action Path ενός συμβάντος.
ΠολλαπλήΈως 10 ονομασμένες, ιεραρχημένες ομάδες + «Κανένα συμβάν στο παράθυρο». Αναβάθμιση σε πολλαπλή μέσω Προσθήκης νέας ομάδας· επιστροφή μέσω Απλοποίησης σε Έκανε / Δεν έκανε όταν απομένει μόνο μία ονομασμένη ομάδα.

Παράθυρο αναμονής​

ΡύθμισηΣυμπεριφορά
Αναμονή έως N μονάδεςΣταθερή προθεσμία (λεπτά / ώρες / ημέρες / εβδομάδες).
ΕξατομίκευσηΤο παράθυρο αντλείται από {{canvas.x}} (μεταβλητή περιβάλλοντος) ή {{user.x}} (γνώρισμα χρήστη). Η τιμή πρέπει να επιλύεται σε αριθμό που ερμηνεύεται στην επιλεγμένη μονάδα.

Το παράθυρο είναι σε επίπεδο μπλοκ - κάθε ομάδα στον ίδιο Διαχωρισμό βάσει συμπεριφοράς μοιράζεται την ίδια προθεσμία. Τα ανά ομάδα παράθυρα καθιστούσαν τις ρυθμίσεις πολλαπλών διαδρομών ασυνάρτητες και σπάνια χρησιμοποιούνταν στην πράξη, οπότε αφαιρέθηκαν κατά τον επανασχεδιασμό του κόμβου.

Λειτουργία προώθησης​

ΛειτουργίαΣυμπεριφορά
As soon as an event fires (προεπιλογή)Κερδίζει το πρώτο συμβάν που ταιριάζει με οποιαδήποτε γραμμή εναύσματος. Ο χρήστης δρομολογείται αμέσως. Η κατάταξη εξακολουθεί να μετρά ως κριτήριο ισοπαλίας για ταυτόχρονες αντιστοιχίσεις μέσα στο ίδιο «τικ» συμβάντος.
At end of windowΤο μπλοκ περιμένει ολόκληρο το παράθυρο. Αν ένας χρήστης ταιριάξει με πολλές ομάδες κατά τη διάρκεια του παραθύρου, κερδίζει η ομάδα με την υψηλότερη κατάταξη. Επιλέξτε το όταν η κατάταξη μετρά περισσότερο από την ταχύτητα.

Επιλογέας εναυσμάτων​

Η λίστα εναυσμάτων κάθε ομάδας βρίσκεται σε μια κάρτα με μια επιλογή είδους εναύσματος στην κορυφή κάθε γραμμής. Νέα είδη προστίθενται στον ίδιο επιλογέα χωρίς αναδιαμόρφωση της αποθηκευμένης ρύθμισης.

ΕίδοςΚατάσταση εκτέλεσης
Εκτέλεση προσαρμοσμένου συμβάντοςΠλήρως συνδεδεμένο. Επιλέξτε οποιοδήποτε συμβάν από το μητρώο συμβάντων σας. Τα φίλτρα ιδιοτήτων (με λογική AND) στενεύουν την αντιστοίχιση.
Υποβολή παραγγελίας / Έναρξη συνεδρίας / Πραγματοποίηση αγοράς (Legacy)Προκαθορισμένα συμβάντα με φιλικές ετικέτες. Συνδεδεμένα - επιλύονται σε κανονικά ονόματα συμβάντων (place_order, start_session, make_purchase_legacy).
Εκτέλεση συμβάντος μετατροπήςΑποθηκεύεται αλλά δεν είναι ακόμη συνδεδεμένο - εκκρεμεί το runtime hook των συμβάντων μετατροπής.
Προσθήκη διεύθυνσης emailΑποθηκεύεται αλλά δεν είναι ακόμη συνδεδεμένο - εκκρεμεί η ροή συμβάντων ορισμού γνωρισμάτων.
Αλλαγή τιμής προσαρμοσμένου γνωρίσματοςΑποθηκεύεται αλλά δεν είναι ακόμη συνδεδεμένο - εκκρεμεί η ροή συμβάντων αλλαγής γνωρισμάτων.

Τα μη συνδεδεμένα είδη εμφανίζουν μια πορτοκαλί ένδειξη στη γραμμή, ώστε οι δημιουργοί να μην εκπλαγούν κατά την εκτέλεση.

Μέσα σε μια ομάδα, οι γραμμές εναυσμάτων συνδέονται με OR - αρκεί να ταιριάξει οποιαδήποτε από αυτές για να δρομολογηθεί ο χρήστης. Μέσα σε ένα μεμονωμένο έναυσμα, τα πολλαπλά φίλτρα ιδιοτήτων συνδέονται με AND.

«Έξοδος από το canvas» ανά ομάδα​

Ένα πλαίσιο επιλογής ανά ομάδα τερματίζει το journey όταν επιλεγεί η συγκεκριμένη διαδρομή, αντί για δρομολόγηση σε συνδεδεμένο κόμβο. Η εκτέλεση κλείνει με exitReason = "behavior_split_exit:<group_name>".

Κάρτα κόμβου στο canvas​

Η κάρτα του Διαχωρισμού βάσει συμπεριφοράς έχει μοβ κεφαλίδα ("BEHAVIOR SPLIT") και ένδειξη ρολογιού με την ετικέτα του παραθύρου («3 ημέρες», «{{canvas.evaluation_window}} ώρες»).

  • Λειτουργία Έκανε / Δεν έκανε - δύο κάτω θύρες με σταθερά ids did (μοβ) και timed_out (γκρι). Η μετονομασία της διαδρομής στο παράθυρο δεν ορφανεύει τις ακμές.
  • Πολλαπλή λειτουργία - στοιβαγμένες γραμμές, μία ανά ονομασμένη ομάδα + η γκρι γραμμή «Κανένα συμβάν στο παράθυρο». Κάθε γραμμή έχει τη δική της θύρα εξόδου στη δεξιά πλευρά της κάρτας, με id = group-name-slug (η γραμμή λήξης χρόνου χρησιμοποιεί το timed_out).

Όταν η λίστα εναυσμάτων μιας ομάδας είναι κενή, η γραμμή εμφανίζει ένα μικρό προειδοποιητικό chip - η ομάδα αυτή δεν μπορεί ποτέ να ταιριάξει, οπότε το μπλοκ δεν θα λειτουργήσει σωστά μέχρι είτε να προσθέσετε ένα έναυσμα είτε να ορίσετε Exit canvas.

Δουλεμένα παραδείγματα​

Παράδειγμα 1 - Εγκατάλειψη καλαθιού: Λειτουργία Έκανε / Δεν έκανε. Έναυσμα = purchase_completed. Παράθυρο = 24 ώρες. Προώθηση = As soon as an event fires. Συνδέστε την ακμή timed_out σε ένα email υπενθύμισης· συνδέστε την ακμή did σε ένα ευχαριστήριο μήνυμα. Οι χρήστες που αγοράζουν εξέρχονται καθαρά· όσοι δεν αγοράζουν λαμβάνουν υπενθύμιση μετά από μία ημέρα.

Παράδειγμα 2 - Επανενεργοποίηση πολλαπλών καναλιών: Πολλαπλή λειτουργία. Τρεις ιεραρχημένες ομάδες: 1. Made Purchase (συμβάν=purchase_completed), 2. Visited Pricing (συμβάν=page_view + φίλτρο ιδιότητας page=/pricing), 3. Opened Email (συμβάν=email_opened). Προώθηση = At end of window. Παράθυρο = 7 ημέρες. Συνδέστε κάθε ομάδα σε διαφορετική αλληλουχία follow-up· η ακμή Κανένα συμβάν στο παράθυρο πηγαίνει σε μια πιο μακροπρόθεσμη διαδρομή καλλιέργειας. Η κατάταξη μετρά: ένας χρήστης που ΚΑΙ αγόρασε ΚΑΙ επισκέφθηκε τη σελίδα τιμολόγησης ακολουθεί τη διαδρομή Made Purchase.

Κόμβοι Πειράματος​

Για δοκιμές A/B/n, κλείδωμα νικητή, βελτιστοποίηση multi-armed bandit ή εξατομίκευση ανά χρήστη μέσω ML, χρησιμοποιήστε τον κόμβο Πειράματος. Δείτε τον ειδικό οδηγό του κόμβου Πειράματος για πλήρη κάλυψη.

Ο αυτόνομος κόμβος A/B Split έχει αφαιρεθεί - ο κόμβος Πειράματος σε λειτουργία τύπου διαδρομής "Standard" καλύπτει την ίδια περίπτωση χρήσης με μεγαλύτερη ευελιξία (ομάδες ελέγχου, ομάδες καθυστέρησης, προαιρετική επιλογή νικητή).

Κόμβοι Απόφασης AI​

Ο κόμβος Απόφασης AI (AI-Decision) δρομολογεί κάθε χρήστη στη διαδρομή που το AI προβλέπει ως καλύτερη για το συγκεκριμένο άτομο - η ανά χρήστη απόφαση «καταλληλότητας προσφοράς» μέσα σε ένα journey. Ενώ ο κόμβος Πειράματος βρίσκει τη συνολικά νικήτρια διαδρομή, η Απόφαση AI επιλέγει διαφορετική διαδρομή ανά χρήστη με βάση τα γνωρίσματα και τη συμπεριφορά του.

Ρύθμιση:

  • Διαδρομές - οι επιλογές μεταξύ των οποίων επιλέγει το AI (κάθε διαδρομή συνεχίζει στον δικό της κλάδο).
  • Στόχος - Αλληλεπίδραση (ανοίγματα/κλικ), Μετατροπή (συγκεκριμένο συμβάν) ή Έσοδα (αξία αγοράς). Καθορίζει προς τι βελτιστοποιεί το μοντέλο.
  • Συμβάν μετατροπής - εμφανίζεται όταν ο στόχος είναι Μετατροπή· το συμβάν που μετρά ως επιτυχία (λειτουργεί και ένα προσαρμοσμένο συμβάν όπως το signup).

Πώς αποφασίζει (ανά χρήστη): το ανά χρήστη μοντέλο επιλέγει την καλύτερη διαδρομή (εκμετάλλευση)· ένα μικρό ποσοστό εξερευνά αβέβαιες διαδρομές για να συνεχίσει η μάθηση (έξυπνα, όχι τυχαία)· πριν το μοντέλο μάθει τις διαδρομές, οι χρήστες δρομολογούνται δίκαια (ψυχρή εκκίνηση). Τα αποτελέσματα αποδίδονται πίσω στο μοντέλο, το οποίο επανεκπαιδεύεται καθημερινά.

Τι μετρά ως «νίκη», και από τι μαθαίνει. Η επιτυχία ακολουθεί τον στόχο σας - η Αλληλεπίδραση μετρά ανοίγματα και κλικ, η Μετατροπή μετρά το συμβάν μετατροπής σας, τα Έσοδα μετρούν αγορές. Η νίκη πιστώνεται στη διαδρομή στην οποία δρομολογήθηκε το άτομο, ώστε το AI να μαθαίνει ποιο μήνυμα/προσφορά οδηγεί πραγματικά στο αποτέλεσμα - όχι απλώς ποιο ανοίγεται. (Για στόχο Μετατροπής ή Εσόδων, ένα άνοιγμα ή κλικ δεν είναι «νίκη» από μόνο του· θα βελτιστοποιούσε το λάθος πράγμα - ένα μήνυμα-«δόλωμα» μπορεί να κερδίζει σε ανοίγματα αλλά να χάνει σε πωλήσεις. Τα ανοίγματα/κλικ βοηθούν ωστόσο ως είσοδοι, παρακάτω.) Για να επιλέξει διαδρομή ανά άτομο, το AI εξετάζει την πρόσφατη συμπεριφορά και το προφίλ του, όλα μαθημένα από τα υπάρχοντα δεδομένα σας - τίποτα δεν χρειάζεται επισήμανση:

  • Αλληλεπίδραση - πόσο ανοίγει και κάνει κλικ (email, push, εντός εφαρμογής), πόσο πρόσφατα ήταν ενεργός, πόσο συχνά επισκέπτεται (συνεδρίες, προβολές σελίδων), απαντήσεις WhatsApp, και ποιες ώρες της ημέρας/εβδομάδας είναι συνήθως ενεργός.
  • Αξία - τι έχει αγοράσει: παραγγελίες, συνολική και μέση δαπάνη, και RFM (recency / frequency / monetary).
  • Προφίλ - χώρα, πόσο καιρό είναι πελάτης, και ποια κανάλια μπορούν να τον προσεγγίσουν (email / τηλέφωνο).

Αυτο-προθερμαίνεται. Επειδή οι χρήστες εισέρχονται σε ένα journey συνεχώς στον χρόνο, ένας κόμβος Απόφασης AI μαθαίνει όσο τρέχει το journey - οι πρώτοι εισερχόμενοι δρομολογούνται δίκαια όσο συλλέγονται δεδομένα, ενώ οι επόμενοι λαμβάνουν αυτόματα εξατομικευμένη δρομολόγηση. Καμία ρύθμιση πέρα από τον ορισμό των διαδρομών και του στόχου. (Τα όρια συχνότητας και οι ώρες ησυχίας δεν ορίζονται σε αυτόν τον κόμβο - εφαρμόζονται στους κόμβους μηνυμάτων/αποστολής και σε επίπεδο χώρου εργασίας, αφού ένας κόμβος απόφασης απλώς δρομολογεί.)

Εφάπαξ προγραμματισμένες αποστολές - «Προθέρμανση πριν από την πλήρη αποστολή». Ένα journey προγραμματισμένο να τρέξει μία φορά για σταθερό κοινό δεν μπορεί να αυτο-προθερμανθεί - όλοι θα εισέρχονταν την ίδια στιγμή, πριν το AI δει έστω και ένα αποτέλεσμα. Για αυτήν την περίπτωση ο κόμβος Απόφασης AI έχει διακόπτη Προθέρμανση πριν από την πλήρη αποστολή: το journey στέλνει πρώτα σε ένα μικρό δείγμα του κοινού, κρατά τους υπόλοιπους, και απελευθερώνει αυτόματα το υπόλοιπο με εξατομικευμένη δρομολόγηση μόλις το μοντέλο μάθει τις διαδρομές (ή μετά από μέγιστο χρόνο κράτησης που ορίζετε). Τα συνεχώς πυροδοτούμενα journeys δεν το χρειάζονται - προθερμαίνονται ήδη μόνα τους.

Πώς μοιράζεται η πίστωση (multi-touch). Όταν ένας χρήστης περάσει από περισσότερους κόμβους Απόφασης AI σε ένα journey και μετά μετατραπεί, η πίστωση μοιράζεται μεταξύ αυτών των αποφάσεων, αντί να δοθεί εξ ολοκλήρου στην τελευταία - γιατί σε ένα journey πολλών βημάτων και οι προηγούμενες επιλογές δρομολόγησης βοήθησαν να φτάσει εκεί. Οι πρόσφατες αποφάσεις παίρνουν το μεγαλύτερο μερίδιο και οι παλαιότερες φθίνουν σταδιακά (μοντέλο «χρονικής απόσβεσης»). Ένα journey με μία μόνο απόφαση πιστώνει απλώς εξ ολοκλήρου τη μοναδική απόφαση. (Αυτό διαφέρει από μια καμπάνια βελτιστοποιημένη με AI, η οποία είναι εφάπαξ αποστολή και άρα πιστώνει τη μοναδική πιο πρόσφατη απόφασή της - «last-touch».)

Κόμβοι Επόμενου καλύτερου μηνύματος​

Ο κόμβος Επόμενο καλύτερο μήνυμα απαντά στο «ποιο μήνυμα» για κάθε άτομο: βαθμολογεί τα αποθηκευμένα πρότυπα του χώρου εργασίας στα κανάλια που επιτρέπετε και καταγράφει αυτό που θα έστελνε. Κυκλοφορεί πρώτα σε λειτουργία σκιάς: ο κόμβος δεν στέλνει τίποτα και η διαδρομή συνεχίζει από τη μοναδική της έξοδο ακριβώς όπως πριν, ενώ κάθε πέρασμα καταγράφει την επιλογή δίπλα σε αυτό που έστειλε πράγματι η διαδρομή. Αυτή η σύγκριση κρίνει αν ο κόμβος θα προχωρήσει σε αποστολή υπό ομάδα ελέγχου· διαβάστε τη στις Ρυθμίσεις, Μοντέλα ML.

Ρύθμιση:

  • Κανάλια προς εξέταση - email, in-app, push. Τα πρότυπα σε αυτά τα κανάλια αποτελούν τη δεξαμενή για κάθε άτομο· ένα κανάλι που οι κανόνες συχνότητας θα κρατούσαν για ένα άτομο εξαιρείται για αυτό.
  • Μόνο πρότυπα με αυτές τις ετικέτες - περιορίστε τη δεξαμενή σε πρότυπα που φέρουν μία από τις ετικέτες (κενό σημαίνει κάθε πρότυπο).
  • Στόχος και Συμβάν μετατροπής - με τι θα μετρηθεί αργότερα η καταγεγραμμένη επιλογή, όπως στον κόμβο Απόφασης AI.

Πώς βαθμολογεί (ανά άτομο): το κοινό μοντέλο από τις Ρυθμίσεις, Μοντέλα ML αξιολογεί κάθε πρότυπο από τη συμπεριφορά του ατόμου και τις ετικέτες περιεχομένου του προτύπου (ώστε ένα ολοκαίνουργιο πρότυπο να παίρνει πραγματική βαθμολογία), το προτιμώμενο κανάλι του ατόμου κρατά τη βαθμολογία του ενώ τα υπόλοιπα κανάλια μειώνονται, και η υψηλότερη βαθμολογία κερδίζει. Πριν εκπαιδευτεί κοινό μοντέλο, κάθε πρότυπο βαθμολογείται το ίδιο και η επιλογή είναι δίκαιη κλήρωση, όπως λέει η καταγραφή.

Λειτουργία αποστολής. Αλλάξτε τη λειτουργία του κόμβου σε Αποστολή όταν η σύγκριση σκιάς φαίνεται σωστή. Ένα μερίδιο ομάδας ελέγχου που επιλέγετε (20% από προεπιλογή) κρατά τη σημερινή συμπεριφορά και βγαίνει από την έξοδο Ομάδα ελέγχου, την οποία συνδέετε στο δικό σας μήνυμα· όλοι οι άλλοι λαμβάνουν την επιλογή από τον ίδιο τον κόμβο (πρότυπο email ή push, με τους ίδιους κανόνες συγκατάθεσης, ήσυχων ωρών και συχνότητας όπως κάθε κόμβος μηνύματος) και βγαίνουν από την έξοδο Εστάλη. Τα δύο σκέλη συγκρίνονται στις Ρυθμίσεις, Μοντέλα ML με πιθανό εύρος το καθένα και ετυμηγορία «χωρίς απώλεια μετατροπών», που είναι το κριτήριο για να μείνει ο κόμβος σε λειτουργία αποστολής. Τα πρότυπα in-app βαθμολογούνται αλλά δεν στέλνονται από τον κόμβο.

Κόμβοι Ενημέρωσης χρήστη​

Οι κόμβοι Ενημέρωσης χρήστη (Update User) έχουν δύο είδη γραμμών - επιλέξτε ανά γραμμή:

Ενημέρωση γνωρίσματος​

Ορισμός / αύξηση / μείωση / προσθήκη / αφαίρεση τιμής σε γνώρισμα χρήστη. Τα γνωρίσματα προέρχονται από το μητρώο του χώρου εργασίας σας (πληκτρολογήστε για φιλτράρισμα, χωρίς ελεύθερο κείμενο - ορίστε νέα γνωρίσματα πρώτα στις Ρυθμίσεις → Γνωρίσματα). Οι διαθέσιμες πράξεις φιλτράρονται αυτόματα κατά τον τύπο του γνωρίσματος: μόνο inc / dec για αριθμούς, append / remove για πίνακες κ.ο.κ.

Καταγραφή συμβάντος​

Καταγράψτε ένα συμβάν για τον χρήστη μέσα από το canvas. Χρήσιμο για τη σήμανση οροσήμων του journey («completed_onboarding», «abandoned_checkout») στα οποία μπορούν να «ακούν» άλλα canvases / τμήματα. Το πεδίο ονόματος συμβάντος συμπληρώνεται αυτόματα από τα καταγεγραμμένα συμβάντα του χώρου εργασίας σας, αλλά δέχεται και ελεύθερο κείμενο για νέα ονόματα συμβάντων.

Σε έναν κόμβο Ενημέρωσης χρήστη μπορούν να προστεθούν πολλές γραμμές - εφαρμόζονται με τη σειρά. Σύρετε τη λαβή για αναδιάταξη.

Περιπτώσεις χρήσης​

  • Ετικέτα σε χρήστες που ολοκλήρωσαν μια ροή (engagement_tag = 'onboarded')
  • Ενημέρωση βαθμολογιών (engagement_score += 10)
  • Καταγραφή συμβάντων journey για μεταγενέστερη στόχευση (Καταγραφή συμβάντος: onboarding_completed)
  • Ορισμός σημαιών για μελλοντική στόχευση (feature_eligibility = true)

Προσαρμοσμένο JSON​

Εκτός από τις γραμμές παραπάνω, ένας κόμβος Update User έχει και δεύτερη λειτουργία: αλλάξτε το Πεδία σε Προσαρμοσμένο JSON στο πάνω μέρος του κόμβου. Οι κόμβοι που δημιουργήθηκαν πριν από αυτή τη λειτουργία μένουν σε λειτουργία Πεδία.

Στη λειτουργία Προσαρμοσμένο JSON γράφετε ένα αντικείμενο JSON με την ίδια μορφή με τα πεδία attributes, subscriptions και events του σώματος του API POST /users. Τυπική χρήση: μια σελίδα προορισμού στον δικό σας ιστότοπο στέλνει ένα συμβάν μέσω του API, το συμβάν ξεκινά αυτή τη διαδρομή και αυτό το βήμα βάζει το άτομο σε μια λίστα, ορίζει χαρακτηριστικά και καταγράφει ένα επόμενο συμβάν.

{
"attributes": { "firstName": "Dana" },
"subscriptions": [
{ "listId": "<list id>", "channel": "email", "status": "subscribed" }
],
"events": [
{ "name": "Free Gift Requested", "properties": { "source": "landing-page" } }
]
}
ΚλειδίΤι κάνει
attributesΟρίζει κάθε χαρακτηριστικό στο άτομο, όπως η συγχώνευση χαρακτηριστικών του API.
subscriptionsΠροσθέτει ή αφαιρεί το άτομο από λίστες συνδρομών. Το listId είναι υποχρεωτικό· το channel είναι email (προεπιλογή), sms, whatsapp, push ή viber· το status είναι subscribed (προεπιλογή) ή unsubscribed.
eventsΚαταγράφει συμβάντα για το άτομο. Το name είναι υποχρεωτικό· τα properties και timestamp (ημερομηνία ISO ή χιλιοστά epoch) είναι προαιρετικά. Τα συμβάντα καταγράφονται όπως οι γραμμές Track an event.

Χρησιμοποιήστε το Εισαγωγή παραδείγματος για να ξεκινήσετε από το παραπάνω παράδειγμα και τον επιλογέα λίστας για να εισαγάγετε μία από τις λίστες σας.

Ενημερώνει πάντα το άτομο που μπήκε στο βήμα. Τα αναγνωριστικά δεν μπορούν να οριστούν ή να αλλάξουν: τα email, phone, externalId, userId, anonymousId, _id, id, aliases και τα υπόλοιπα κλειδιά ταυτότητας απορρίπτονται, τόσο ως κλειδιά ανώτατου επιπέδου όσο και ως ονόματα χαρακτηριστικών, με οποιαδήποτε πεζά/κεφαλαία και με ή χωρίς _ ή -. Απορρίπτονται επίσης χαρακτηριστικά που διαχειρίζεται η πλατφόρμα, όπως το lastEventName, ακριβώς όπως στο API. Στο ανώτατο επίπεδο επιτρέπονται μόνο τα attributes, subscriptions και events.

Μια κατάργηση εγγραφής διατηρείται. Αν το άτομο έχει καταργήσει την εγγραφή του από μια λίστα σε αυτό το κανάλι, ένα στοιχείο subscribed για αυτήν παραλείπεται και αναφέρεται ("opt-out kept") - μια διαδρομή δεν εγγράφει ποτέ ξανά κάποιον. Ένα ρητό "status": "unsubscribed" εφαρμόζεται πάντα. Κάθε λίστα πρέπει να ανήκει σε αυτόν τον χώρο εργασίας· οποιοδήποτε άλλο αναγνωριστικό λίστας παραλείπεται.

Οι λίστες με διπλή επιβεβαίωση αντιμετωπίζονται όπως μέσω του API: το άτομο καταγράφεται ως εγγεγραμμένο (πηγή journey) και αυτό το βήμα δεν στέλνει μήνυμα επιβεβαίωσης.

Τα όρια είναι αυτά του API: έως 100 συνδρομές και 25 συμβάντα, και τα όρια μεγέθους του API για τιμές χαρακτηριστικών και ιδιότητες συμβάντων. Το ίδιο το JSON μπορεί να έχει έως 50.000 χαρακτήρες, 10 επίπεδα ένθεσης και 5.000 τιμές· κάθε εξατομικευμένη τιμή μπορεί να αποδοθεί σε έως 50.000 χαρακτήρες (500.000 συνολικά).

Liquid στο Προσαρμοσμένο JSON​

Χρησιμοποιήστε Liquid μέσα σε τιμές κειμένου - το συμβάν ενεργοποίησης, το προφίλ του ατόμου και οι μεταβλητές της διαδρομής είναι διαθέσιμα, όπως σε κάθε άλλο εξατομικευμένο πεδίο:

{
"attributes": {
"firstName": "{{ event.properties.first_name }}",
"giftSource": "{{ event.properties.source | default: 'landing-page' }}"
},
"subscriptions": [
{ "listId": "{{ event.properties.list_id }}", "channel": "email" }
],
"events": [
{ "name": "Free Gift Requested", "properties": { "plan": "{{ user.plan }}" } }
]
}

Το JSON πρέπει να είναι έγκυρο όπως είναι γραμμένο: το Liquid μπαίνει μόνο μέσα σε τιμές σε εισαγωγικά, ποτέ σε κλειδιά και ποτέ ως γυμνή τιμή. Κάθε τιμή αποδίδεται χωριστά και μένει τιμή κειμένου, οπότε δεδομένα από το συμβάν δεν μπορούν ποτέ να αλλάξουν τη δομή του JSON ή να φτάσουν σε αναγνωριστικό. Επειδή μια αποδοσμένη τιμή είναι πάντα κείμενο, γράψτε αριθμούς και true / false όπως είναι.

Πότε ελέγχεται​

  • Κατά την αποθήκευση: μη έγκυρο JSON, άγνωστα κλειδιά, αναγνωριστικά και τα όρια απορρίπτονται με μήνυμα που ονομάζει το βήμα. Ένα κενό Προσαρμοσμένο JSON μπορεί να αποθηκευτεί ως πρόχειρο.
  • Κατά την ενεργοποίηση: ένα κενό Προσαρμοσμένο JSON και κάθε αναγνωριστικό λίστας που δεν είναι λίστα αυτού του χώρου εργασίας.
  • Κατά την εκτέλεση: οι τιμές με Liquid ελέγχονται μετά την απόδοση. Αν κάτι είναι λάθος, το βήμα δεν αλλάζει τίποτα, ο λόγος καταγράφεται στην εκτέλεση της διαδρομής του ατόμου και το άτομο συνεχίζει στο επόμενο βήμα.
  • Η καρτέλα Test αποδίδει το JSON σε ένα δείγμα ατόμου χωρίς να γράφει τίποτα.

Κόμβοι Issue coupon​

Ένας κόμβος Issue coupon δίνει στο άτομο έναν κωδικό από ένα πρόγραμμα κουπονιών - που δημιουργείται εκείνη τη στιγμή στο συνδεδεμένο κατάστημα - και τον κρατά σε αυτό. Κάθε μεταγενέστερο μήνυμα της διαδρομής που χρησιμοποιεί {{ coupons.<slug>.code }} δείχνει τον ίδιο κωδικό, σε κάθε κανάλι.

  • Program - επιλέξτε ένα ενεργό πρόγραμμα. Ο κόμβος δεν κάνει τίποτε άλλο: βάλτε τον κωδικό στα μηνύματα που ακολουθούν.
  • Δύο έξοδοι: Issued (το άτομο έχει κωδικό) και Could not issue (το κατάστημα δεν μπόρεσε να δημιουργήσει κωδικό ή το πρόγραμμα είναι σε παύση). Στείλτε τη δεύτερη έξοδο σε μήνυμα χωρίς κουπόνι ή τερματίστε εκεί τη διαδρομή.
  • Μια επανάληψη του κόμβου δεν δημιουργεί ποτέ δεύτερο κωδικό, και με ενεργή τη ρύθμιση "επαναχρησιμοποίηση του ανοιχτού κωδικού του ατόμου", ένα άτομο που ξαναμπαίνει στη διαδρομή ενώ ο κωδικός του είναι ακόμη ανοιχτός παίρνει ξανά τον ίδιο κωδικό.

Κόμβοι Webhook​

Οι κόμβοι Webhook πραγματοποιούν κλήσεις HTTP προς εξωτερικές υπηρεσίες.

Ρύθμιση​

ΡύθμισηΠεριγραφή
Μέθοδος + URLGET / POST / PUT / PATCH / DELETE + URL τελικού σημείου. Το Liquid υποστηρίζεται στο URL.
ΤαυτοποίησηΚαμία / Bearer / Basic / Κλειδί API / Υπογεγραμμένη (HMAC). Οι επιλογές Bearer / Basic / Κλειδί API μεταγλωττίζονται στη σωστή κεφαλίδα κατά την αποθήκευση (π.χ. Authorization: Bearer <token>). Η Υπογεγραμμένη (HMAC) προσθέτει κεφαλίδα X-Joryio-Signature - ένα SHA-256 HMAC του σώματος του αιτήματος - ώστε ο παραλήπτης να μπορεί να επαληθεύσει ότι η κλήση προήλθε πραγματικά από το Joryio. Η Υπογεγραμμένη (HMAC) χρησιμοποιεί το μυστικό υπογραφής που εισάγετε. Τα μυστικά κρυπτογραφούνται κατά την αποθήκευση και εμφανίζονται ως κρυφό πεδίο: αφήστε το για να κρατήσετε το μυστικό, καθαρίστε το για να το αφαιρέσετε ή πληκτρολογήστε νέα τιμή για αντικατάσταση. Ένα αποθηκευμένο μυστικό διατηρείται μόνο για τη διεύθυνση για την οποία αποθηκεύτηκε: αν αλλάξετε το σχήμα, τον host ή τη θύρα του URL, εισαγάγετε ξανά το μυστικό πριν την αποθήκευση. Ένα μυστικό χρειάζεται κυριολεκτική διεύθυνση: χωρίς Liquid, όνομα χρήστη ή κωδικό στο σχήμα, τον host ή τη θύρα (Liquid στη διαδρομή ή στο query επιτρέπεται). Κατά την αποστολή το μυστικό επισυνάπτεται μόνο αν το αποδοσμένο URL δείχνει ακόμη σε αυτή τη διεύθυνση· αλλιώς το αίτημα φεύγει χωρίς αυτό και η προβολή εκτέλεσης το αναφέρει. Προσαρμοσμένες κεφαλίδες που μοιάζουν με διαπιστευτήρια (Authorization, ή κεφαλίδα με όνομα όπως token, secret ή API key) κρύβονται με τον ίδιο τρόπο. Στο Journey Runs, το βήμα webhook ενός ατόμου δείχνει τον κωδικό HTTP, επιτυχία ή αποτυχία, τη διάρκεια και τα πεδία απάντησης που αποθηκεύτηκαν σε μεταβλητές διαδρομής. Μια αποτυχημένη κλήση δείχνει επίσης ένα μπλοκ Απάντηση κάτω από την κατάσταση (δείτε τη Συμπεριφορά Webhook παρακάτω)· το σώμα μιας επιτυχημένης απάντησης δεν αποθηκεύεται ποτέ.
Προσαρμοσμένες κεφαλίδεςΓραμμές κλειδιού/τιμής. Το Liquid υποστηρίζεται στις τιμές. Η Content-Type προστίθεται όταν το αίτημα έχει σώμα και μπορεί να παρακαμφθεί· μια Content-Type που ορίζετε εσείς αποστέλλεται πάντα.
Σώμα αιτήματοςJSON, Form-encoded (application/x-www-form-urlencoded) ή Κανένα (χωρίς σώμα και χωρίς Content-Type - για GET/DELETE). Το σώμα JSON επικυρώνεται ενσωματωμένα καθώς πληκτρολογείτε· ένα σώμα που είναι μόνο μια ετικέτα Liquid (π.χ. {{ user.id }}) εμφανίζει "Δεν είναι εγγυημένο ότι θα είναι JSON μετά την απόδοση".
Χειρισμός απόκρισηςΠροαιρετικό: εξαγωγή μιας τιμής από το σώμα της απόκρισης (μια διαδρομή $.a.b, π.χ. $.user.crm_id) σε μια μεταβλητή journey (π.χ. crm_id), ώστε ένα επόμενο βήμα να διακλαδωθεί βάσει αυτής ή να τη χρησιμοποιήσει σε πρότυπο. Για να την αποθηκεύσετε μόνιμα στον χρήστη, προσθέστε ένα βήμα Ενημέρωσης χρήστη που διαβάζει τη μεταβλητή.
Επαναλήψεις & χρονικό όριοΑνά κόμβο μέγιστες προσπάθειες επανάληψης και χρονικό όριο αιτήματος. (Η αναμονή παραμένει εκθετική και οι επαναλήψεις εκτελούνται σε 5xx + σφάλματα δικτύου - δείτε τη Συμπεριφορά Webhook παρακάτω.)
Κλήση συστήματος - παράκαμψη ωρών ησυχίας & ορίων συχνότηταςΑνενεργή από προεπιλογή: τα webhooks περιμένουν να λήξουν τα παράθυρα ησυχίας και σέβονται τα όρια συχνότητας όπως κάθε μήνυμα. Ενεργοποιήστε την μόνο για καθαρές κλήσεις συστήματος-προς-σύστημα που δεν πρέπει να καθυστερούν από τις ώρες ησυχίας ενός ατόμου. Οι λίστες αποκλεισμού ισχύουν ούτως ή άλλως, και οι παραλήπτες των webhooks είναι χρεώσιμα ενεργά προφίλ ανεξαρτήτως αυτής της ρύθμισης.

Το σώμα αποστέλλεται αυτούσιο​

Το σώμα που ρυθμίζετε αποστέλλεται ως έχει στον παραλήπτη. Δεν υπάρχει «φάκελος» του Joryio που να τυλίγει το σώμα.

Αν θέλετε μεταδεδομένα canvas / εκτέλεσης / χρήστη στο αίτημα, προσθέστε τα μόνοι σας με Liquid:

{
"event": "user_signup",
"user_id": "{{ user.id }}",
"email": "{{ user.email }}",
"canvas_id": "{{ canvas.id }}",
"execution_id": "{{ execution.id }}",
"node_id": "{{ node.id }}"
}

Το Joryio επισυνάπτει επίσης αυτόματα τρεις κεφαλίδες μεταδεδομένων (ώστε ένας παραλήπτης να μπορεί να τις αξιοποιήσει χωρίς να αλλάξει το σχήμα του σώματός σας):

X-Joryio-Canvas-Id: <canvas id>
X-Joryio-Execution-Id: <execution id>
X-Joryio-Node-Id: <node id>

Το σώμα αποστέλλεται byte προς byte, ακριβώς όπως αποδόθηκε: ένα σώμα που αποδίδεται κενό δεν αποστέλλεται καθόλου (ποτέ ως κενό ""), και κείμενο που δεν είναι JSON - για παράδειγμα ένα σκέτο id από {{ user.id }} - αποστέλλεται ως έχει, χωρίς εισαγωγικά. Η υπογραφή HMAC καλύπτει ακριβώς αυτά τα bytes. Το Send test δείχνει το αίτημα που στάλθηκε και προειδοποιεί όταν ένα σώμα JSON δεν είναι έγκυρο JSON μετά την απόδοση· η πραγματική αποστολή δεν αλλάζει ποτέ.

Χώροι ονομάτων Liquid​

Διαθέσιμοι στο URL, στις τιμές κεφαλίδων και στο κείμενο του σώματος JSON:

Χώρος ονομάτωνΠεριεχόμενο
user.*Πεδία χρήστη ανωτάτου επιπέδου (user.id, user.email, user.phone) και όλα τα προσαρμοσμένα γνωρίσματα (user.firstName, user.plan, …).
event.* / trigger.*Το ωφέλιμο φορτίο του συμβάντος-εναύσματος που ξεκίνησε τη συγκεκριμένη εκτέλεση.
canvas.*canvas.id, canvas.name.
execution.*execution.id, execution.startedAt.
node.*node.id, node.type, node.label.

Τα παλαιά επίπεδα κλειδιά ({{ canvasId }}, {{ executionId }}) εξακολουθούν να επιλύονται.

Συμπεριφορά Webhook​

Ένας κόμβος webhook εκτελείται σε μία από δύο λειτουργίες, ανάλογα με το αν ο Χειρισμός απόκρισης είναι ενεργός:

Ασύγχρονη (προεπιλογή - χωρίς αντιστοίχιση απόκρισης)

Το canvas προχωρά αμέσως μόλις το webhook μπει στην ουρά, χωρίς να περιμένει την απόκριση HTTP. Ιδανικό για κλήσεις «fire-and-forget» (ειδοποίηση CRM, εκκίνηση downstream εργασίας).

Σύγχρονη (Χειρισμός απόκρισης ενεργός)

Όταν αντιστοιχίζετε ένα πεδίο απόκρισης σε μεταβλητή journey, ο κόμβος εκτελείται σύγχρονα: το journey παύει στον κόμβο webhook μέχρι να φτάσει η απόκριση (ή ένα χρονικό όριο 15 δευτερολέπτων), ώστε η μεταβλητή να είναι έτοιμη για το αμέσως επόμενο βήμα. Είναι fail-open - σε λήξη χρόνου ή σφάλμα, το journey συνεχίζει ούτως ή άλλως (η μεταβλητή μένει χωρίς τιμή· αν έχετε συνδέσει έξοδο σφάλματος, η αποτυχία δρομολογείται εκεί). Η εκτέλεση σταθμεύει (δεν δεσμεύει worker), οπότε αυτό κλιμακώνεται σε μεγάλα κοινά.

Και στις δύο λειτουργίες:

  • Οι αποτυχίες webhook δεν σταματούν ποτέ τη ροή του canvas (fail-open).
  • Τα ασύγχρονα webhooks επαναλαμβάνονται σε 5xx + σφάλματα δικτύου με εκθετική αναμονή, έως το όριο προσπαθειών του κόμβου. Οι αποκρίσεις 4xx αποτυγχάνουν αμέσως και δεν επαναλαμβάνονται· οι αποκρίσεις 429 σέβονται την κεφαλίδα Retry-After.
  • Οι αποτυχημένες απαντήσεις διατηρούνται για αποσφαλμάτωση. Όταν μια κλήση αποτύχει με απάντηση εκτός 2xx, το Joryio αποθηκεύει τον κωδικό κατάστασης, τον τύπο περιεχομένου και τα πρώτα 2 KB του σώματος της απάντησης, με τις τιμές που μοιάζουν με μυστικά (διακριτικά Bearer / Basic, JWT, πεδία token / secret / password / api_key / authorization, μεγάλες συμβολοσειρές hex ή base64) αποκρυμμένες πριν από την αποθήκευση. Κάθε διαπιστευτήριο που έστειλε το ίδιο το αίτημα (διακριτικό, κωδικός, κλειδί API ή υπογραφή) αφαιρείται επίσης όπου κι αν το επαναλαμβάνει η απάντηση, και σε μορφή base64, URL-encoded, JSON-escaped και hex. Οι κεφαλίδες του αιτήματος δεν αποθηκεύονται ποτέ. Σε λήξη χρόνου ή σφάλμα δικτύου αποθηκεύεται μόνο το μήνυμα σφάλματος. Ανοίξτε το μπλοκ Απάντηση στο βήμα webhook στα Journey Runs (ή στο συμβάν αποτυχίας στο χρονολόγιο παραλήπτη μιας καμπάνιας webhook) για να τη διαβάσετε. Το σώμα εμφανίζεται μόνο σε όσους έχουν πρόσβαση σε προσωπικά δεδομένα (δικαίωμα pii:view), επειδή μια απάντηση μπορεί να περιέχει δεδομένα επαφής· οι υπόλοιποι βλέπουν την κατάσταση και το σφάλμα με μια σημείωση ότι η απάντηση είναι κρυφή. Οι αποθηκευμένες απαντήσεις διαγράφονται αυτόματα μετά από 30 ημέρες. Το σώμα μιας επιτυχημένης (2xx) απάντησης δεν αποθηκεύεται ποτέ. Το προσωπικό του Joryio μπορεί, κατόπιν αιτήματος, να απενεργοποιήσει την αποθήκευση σωμάτων απάντησης για τον οργανισμό σας· η κατάσταση, η διάρκεια και το σφάλμα εξακολουθούν να καταγράφονται.
  • Μόνο μια απόκριση 2xx μετράει ως παράδοση. Ένα 3xx ή 4xx (για παράδειγμα 401 ή 404) είναι αποτυχία: εμφανίζεται ως αποτυχημένο στην εκτέλεση της διαδρομής και στο outbox, και ένα σύγχρονο webhook ακολουθεί την έξοδο σφάλματος, ποτέ τη διαδρομή επιτυχίας.
  • Τα σύγχρονα webhooks αποτυγχάνουν γρήγορα (χωρίς βρόχο επαναλήψεων) ώστε το σταθμευμένο journey να συνεχίζει· ένα τελικό σημείο πιο αργό από 15s λήγει και συνεχίζει fail-open. Ένα δίχτυ ασφαλείας επαναφέρει κάθε journey του οποίου η απόκριση χάθηκε, ώστε μια επαφή να μην μπορεί ποτέ να μείνει σταθμευμένη για πάντα.
  • Ένας διακόπτης κυκλώματος (circuit breaker) ανά host ενεργοποιείται μετά από επαναλαμβανόμενες αποτυχίες υγείας (λήξεις χρόνου / δίκτυο / 5xx) προς τον ίδιο host και βραχυκυκλώνει τις επόμενες κλήσεις προς αυτόν για σύντομο διάστημα - έτσι, κατά τη διάρκεια διακοπής ενός τελικού σημείου, οι σύγχρονες κλήσεις συνεχίζουν fail-open ακαριαία αντί να περιμένει η καθεμία ολόκληρο το χρονικό όριο, και ένας «νεκρός» host δεν βομβαρδίζεται. Επανέρχεται αυτόματα μόλις ο host αποκριθεί ξανά. (Τα 4xx/429 δεν τον ενεργοποιούν - σημαίνουν ότι ο host είναι ζωντανός.)

Κόμβοι Συνδέσμου (Connector)​

Οι κόμβοι Συνδέσμου συγχρονίζουν χρήστες με κοινά εξωτερικών διαφημιστικών πλατφορμών κατά την εκτέλεση του canvas.

Ρύθμιση​

ΡύθμισηΠεριγραφή
ΕνσωμάτωσηΕπιλέξτε μια συνδεδεμένη ενσωμάτωση συγχρονισμού κοινού
ΕνέργειαΠροσθήκη στο κοινό, Αφαίρεση από το κοινό ή Συγχρονισμός κοινού
ΚοινόΤο κοινό-στόχος στην εξωτερική πλατφόρμα

Υποστηριζόμενες πλατφόρμες​

  • Meta Ads (Custom Audiences)
  • Google Ads (Customer Match)
  • TikTok Ads (Custom Audiences)
  • LinkedIn Ads (Matched Audiences)
  • Criteo Ads (Contact Lists)

Συμπεριφορά Συνδέσμου​

Ασύγχρονη επεξεργασία

Οι ενέργειες Συνδέσμου μπαίνουν σε ουρά και επεξεργάζονται ασύγχρονα. Το canvas προχωρά αμέσως μόλις η ενέργεια μπει στην ουρά. Οι αποτυχημένες ενέργειες επαναλαμβάνονται έως 3 φορές με εκθετική αναμονή.

Τα δεδομένα χρήστη (email, τηλέφωνο, εξωτερικό ID) κατακερματίζονται (hash) όπως απαιτεί κάθε πλατφόρμα πριν από την αποστολή.

Κόμβοι Εξόδου​

Οι κόμβοι Εξόδου τερματίζουν τη ροή του canvas για έναν χρήστη.

Λόγοι εξόδου​

ΛόγοςΠεριγραφή
Επίτευξη στόχουΟ χρήστης ολοκλήρωσε την επιθυμητή ενέργεια
ΑπεγγραφήΟ χρήστης εξαιρέθηκε (opt-out)
Δεν πληροί πλέον τα κριτήριαΟ χρήστης δεν ικανοποιεί πλέον τις προϋποθέσεις
Χειροκίνητη έξοδοςΡητός τερματισμός της ροής

Σειρά επεξεργασίας​

Όταν πολλοί χρήστες εισέρχονται ταυτόχρονα σε ένα canvas:

  1. Οι χρήστες επεξεργάζονται παράλληλα από τους workers του canvas
  2. Η διαδρομή κάθε χρήστη είναι ανεξάρτητη
  3. Η αποστολή μηνυμάτων κατανέμεται σε ουρές ανά κανάλι
  4. Σενάρια μεγάλου όγκου (1M+ χρήστες) διαχειρίζονται αποδοτικά

Μεταβλητές προτύπων e-commerce​

Κατά την αποστολή μηνυμάτων από το Canvas, τα δεδομένα e-commerce είναι αυτόματα διαθέσιμα για εξατομίκευση.

Δεδομένα καλαθιού​

ΜεταβλητήΠεριγραφή
{{ cart.items }}Πίνακας ειδών του καλαθιού
{{ cart.itemCount }}Συνολικός αριθμός ειδών
{{ cart.value }}Συνολική αξία καλαθιού
{{ cart.subtotal }}Υποσύνολο ειδών, πριν από αποστολή και φόρους (το cart.value είναι το σύνολο που έστειλε το κατάστημα, που μπορεί να περιλαμβάνει αποστολή)
{{ cart.currency }}Κωδικός νομίσματος (USD, EUR κ.λπ.)
{{ cart.checkoutUrl }}URL για συνέχιση της ολοκλήρωσης αγοράς
{{ cart.abandoned }}Αν το καλάθι είναι εγκαταλελειμμένο

Παράδειγμα: Email εγκαταλελειμμένου καλαθιού​

<h2>You left items in your cart!</h2>

{% for item in cart.items %}
<div style="margin: 10px 0;">
<img src="{{ item.imageUrl }}" width="80" />
<strong>{{ item.name }}</strong>
<span>${{ item.price }} x {{ item.quantity }}</span>
</div>
{% endfor %}

<p><strong>Total: ${{ cart.value }}</strong></p>

<a href="{{ cart.checkoutUrl }}" style="background: #007bff; color: white; padding: 12px 24px;">
Complete Your Purchase
</a>

Πεδία ειδών καλαθιού​

Κάθε είδος στο cart.items έχει:

ΠεδίοΠεριγραφή
productIdΑναγνωριστικό προϊόντος
nameΌνομα προϊόντος
priceΤιμή μονάδας
quantityΠοσότητα στο καλάθι
totalτιμή × ποσότητα
imageUrlURL εικόνας προϊόντος
skuSKU προϊόντος
variantIdΑναγνωριστικό παραλλαγής

Σχετικά​

Κόμβοι AI Agent​

Ένας κόμβος AI Agent τρέχει έναν από τους πράκτορες AI σας για το άτομο στη διαδρομή και αποθηκεύει την απάντηση σε μεταβλητή διαδρομής (δείτε Έξοδος πράκτορα).

  • Ένας πράκτορας Γράψε έχει δύο κλάδους: Επιτυχία και Σφάλμα.
  • Ένας πράκτορας Ταξινόμησε έχει έναν κλάδο ανά ετικέτα, συν Αβέβαιο για απάντηση στην οποία ο πράκτορας δεν είναι σίγουρος, συν Σφάλμα.

Το Σφάλμα είναι επίτηδες ένας κλάδος. Ο λόγος αποτυχίας μιας εκτέλεσης (timeout, όριο ρυθμού, λάθος ρυθμισμένο κλειδί, εξαντλημένος προϋπολογισμός, σφάλμα παρόχου) γράφεται στα agent.<variable>_outcome και agent.<variable>_error, ώστε ένας κόμβος Διακλάδωσης μετά τον πράκτορα να δρομολογεί βάσει αυτού όταν το χρειάζεται η διαδρομή. Ένας ασύνδετος κλάδος περνά στο προεπιλεγμένο επόμενο βήμα με την εφεδρική τιμή του πράκτορα, ώστε η διαδρομή να μην κολλά ποτέ σε αποτυχία πράκτορα. Ο κόμβος δείχνει τι κοστίζει μια εκτέλεση, περίπου X ανά 1.000 εκτελέσεις, δίπλα στον επιλογέα πράκτορα.