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

Κόμβοι Canvas

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

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

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

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

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

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

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

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

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

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

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

Ποιοι έλεγχοι ισχύουν για τα 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 και είναι πάντα δωρεάν.

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

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

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

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

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

Τι ρυθμίζετε

  • Καμπάνια εντός εφαρμογής (υποχρεωτικό) - η καμπάνια που παρέχει το περιεχόμενο, τη διάταξη και τις παραλλαγές. Ο κόμβος επαναχρησιμοποιεί την καμπάνια που έχετε ήδη φτιάξει, ώστε το μήνυμα να φαίνεται ίδιο από όπου κι αν παραδίδεται.
  • Προτεραιότητα - Επείγον / Υψηλή / Κανονική / Χαμηλή. Όταν περισσότερα μηνύματα είναι κατάλληλα την ίδια στιγμή, εμφανίζεται πρώτο αυτό με την υψηλότερη προτεραιότητα· οι ισοπαλίες λύνονται με το παλαιότερο πρώτα, ώστε ένα μήνυμα σε ουρά να μη θάβεται από νεότερα. Τα μηνύματα 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»).

Διάρκεια

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

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

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

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

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

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

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

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

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

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

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

Όρια

  • Όλοι οι κλάδοι καθυστέρησης περιορίζονται σε μέγιστο 30 ημερών. Ένας κακορυθμισμένος κόμβος εκτελείται αμέσως αντί να «κολλήσει» το 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" }
}

Κάρτα κόμβου στο 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».)

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

Οι κόμβοι Ενημέρωσης χρήστη (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)

Κόμβοι 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.
Προσαρμοσμένες κεφαλίδεςΓραμμές κλειδιού/τιμής. Το Liquid υποστηρίζεται στις τιμές. Η Content-Type προστίθεται από προεπιλογή και μπορεί να παρακαμφθεί.
Σώμα αιτήματοςJSON, Form-encoded (application/x-www-form-urlencoded) ή Κανένα. Το σώμα 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>

Χώροι ονομάτων 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.
  • Τα σύγχρονα 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.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Αναγνωριστικό παραλλαγής

Σχετικά