La logica del tuo bot, passo dopo passo
Un flow è un elenco di passaggi. Il flow Domanda del giorno ne ha cinque: leggi il catalogo, scegli la prossima domanda, pubblicala, apri un thread, conteggiala. Aggiungi un passaggio, collega un valore, provalo e poi attivalo.
Domanda del giorno
AttivoSalvaTrigger
CambiaPianificazione, ogni giorno alle 09:00
Leggi valore di archiviazione(get-storage-value)
Leggi il catalogo delle domande da{questions}
Scegli la voce successiva(array-at)
Quella dopo la domanda di ieri
Invia messaggio(send-message)
Parametri di input
Canale:#general
Messaggio:Domanda del giorno
Crea thread(start-thread-from-message)
Apri un thread su quel messaggio
Incrementa valore di archiviazione(increment-storage-value)
Conteggia la domanda come posta in{asked}
Solo a scopo illustrativo: l'interfaccia reale può differire
Cosa producono quei cinque passaggi alle 09:00
I cinque passaggi producono un solo messaggio. Il thread sotto di esso è dove arrivano le risposte, e il contatore fa in modo che domani arrivi la domanda successiva.
Solo a scopo illustrativo: interfaccia e comportamento reali possono differire
Passaggi, non script
Ogni passaggio è un'azione del catalogo con i suoi input, e il valore prodotto da un passaggio può essere collegato a qualsiasi passaggio successivo. L'editor ti propone sempre e solo i valori compatibili. Dietro quel selettore ci sono 691 azioni e 181 tipi di parametro.
Valore fisso, variabile collegata o template
Ogni input accetta una delle tre opzioni. Un template mescola il tuo testo con variabili inserite.
Il selettore di variabili conosce i tipi
Nasconde i valori non compatibili, entra nelle proprietà degli oggetti, ti avvisa dei valori che possono essere vuoti e può aggiungere per te un passaggio di conversione.
I valori collegati compaiono come chip
I chip su queste righe sono il catalogo delle domande e il canale, così vedi da dove arriva un valore.
Ogni passaggio ha un costo
Da Gratis a Molto pesante, e il flow ti mostra il caso peggiore prima di attivarlo.
Non devi per forza partire da un flow vuoto. La dashboard include template che puoi aprire e modificare: un risponditore ai saluti, il benvenuto ai nuovi membri, un comando /warn, un comando /remind, un sistema XP, suggerimenti e un'iscrizione a eventi.
Domanda del giorno
AttivoSalvaTrigger
CambiaPianificazione, ogni giorno alle 09:00
Leggi valore di archiviazione(get-storage-value)
Leggi il catalogo delle domande da{questions}
Scegli la voce successiva(array-at)
Quella dopo la domanda di ieri
Invia messaggio(send-message)
Parametri di input
Canale:#general
Messaggio:Domanda del giorno
Crea thread(start-thread-from-message)
Apri un thread su quel messaggio
Incrementa valore di archiviazione(increment-storage-value)
Conteggia la domanda come posta in{asked}
Solo a scopo illustrativo: l'interfaccia reale può differire
Rami e cicli
Le automazioni hanno bisogno di decisioni. If, Switch, Ramo casuale e Ramo per sottocomando dividono il flow; Per ogni elemento, Per ogni voce della mappa e Ripeti scorrono liste e mappe con Break e Continue, e un blocco Try ti dà un posto dove mettere il recupero quando Discord dice di no.
Ogni ramo ha le sue variabili
Un valore impostato dentro un ramo appartiene a quel ramo.
Try, con un ramo In caso di errore
Può reagire al codice dell'errore: Permessi mancanti, Non trovato, Input non valido, Errore di archiviazione, Timeout, Interazione scaduta.
Fermati dove fermarsi è la risposta giusta
L'If di questo flow pubblica un promemoria nel canale dello staff e si ferma, invece di pubblicare una domanda vuota.
Un ciclo fuori controllo si ferma da solo, quindi un errore si blocca invece di andare avanti per tutta la mattina.
Domanda del giorno
AttivoSalvaTrigger
CambiaPianificazione, ogni giorno alle 09:00
Leggi valore di archiviazione(get-storage-value)
Leggi il catalogo delle domande da{questions}
If(if-condition)
Il catalogo è vuoto: pubblica un promemoria in #staff e fermati
Per ogni elemento(for-each)
Scorri il catalogo finché non compare una domanda non ancora usata
Invia messaggio(send-message)
Pubblica la domanda come embed in#general
Crea thread(start-thread-from-message)
Apri un thread su quel messaggio
Solo a scopo illustrativo: l'interfaccia reale può differire
I flow possono chiamare altri flow, e l'attesa è un passaggio
Scrivi un comportamento una volta sola e richiamalo da dove ti serve. E quando un flow ha bisogno di una risposta prima di continuare, l'attesa viene messa per iscritto invece di restare in memoria, così un riavvio del bot non la perde.
Chiama un altro flow
Passa valori e leggi i risultati. I flow che finirebbero per chiamarsi a vicenda in un cerchio vengono rifiutati.
Un flow chiamato fa parte dell'esecuzione del chiamante
Lo storico delle esecuzioni lo indica e rimanda al chiamante. Gli eventi personalizzati sono la variante più libera: un flow invia, un altro ascolta.
Le attese sopravvivono a un riavvio
Chiedi una conferma, chiedi una scelta, aspetta un messaggio, mostra un pop-up e aspetta l'invio. Un riavvio nel frattempo non fa perdere l'attesa.
Esecuzioni programmate
Schedule flow run prenota un'esecuzione futura dall'interno di un flow, e ci sono azioni per annullare ed elencare quelle in attesa.
Se modifichi un flow mentre una sua esecuzione è in attesa di qualcuno, quell'esecuzione si ferma e il log lo segnala. Per qualcosa che deve restare utilizzabile per mesi, un pulsante che avvia un flow è lo strumento migliore: non costa nulla finché nessuno lo clicca e non scade mai.
Revisiona un suggerimento
AttivoSalvaTrigger
CambiaPop-up inviato, Suggerisci una domanda
Invia messaggio(send-message)
Pubblica il suggerimento con un pulsante Approva in#staff
Attendi il pulsante(wait-for-interaction)
Resta in pausa finché un moderatore non clicca
Imposta valore di archiviazione(set-storage-value)
Aggiungi la domanda a{questions}
Chiama un altro flow(call-flow)
Domanda del giorno, con la nuova domanda come argomento
Solo a scopo illustrativo: l'interfaccia reale può differire
Vedilo prima di pubblicarlo
Un'esecuzione di prova simula il flow sui dati reali del tuo server. Non viene inviato, modificato o eliminato nulla. Scegli con quale utente gira, in quale canale e cosa gli passa il trigger, e il risultato mostra ogni passaggio con ciò che avrebbe fatto. Provare non costa nulla al tuo server.
Un flow viene anche controllato prima di poter diventare attivo, così un problema emerge nell'editor e non alle nove del mattino. E un ciclo fuori controllo non può mandare giù il tuo bot: si ferma da solo.
Bozza o attivo
Le bozze vengono salvate e controllate, ma non girano mai.
Salvare un flow attivo ha effetto subito
Il tuo bot carica la nuova versione appena salvi. Se non va a buon fine, continua a gestire il flow la versione già in esecuzione e puoi riprovare.
Niente si perde per sbaglio
Se qualcun altro ha salvato il flow mentre lo avevi aperto, ricevi un avviso invece di sovrascrivere il suo lavoro. I flow e i moduli eliminati si possono ripristinare per 30 giorni.
Una cosa da chiarire: solo le esecuzioni di prova ti mostrano ogni passaggio. Un'esecuzione reale registra il suo stato, i tempi e il passaggio in cui è fallita, non tutto ciò che ha attraversato.
Esecuzione di prova
Esecuzione simulata, non è stato inviato nullaLeggi valore di archiviazione
Legge il catalogo, 120 voci
Scegli la voce successiva
Domanda 42
Invia messaggio
Avrebbe pubblicato in #general
Crea thread
Avrebbe aperto un thread su quel messaggio
Incrementa valore di archiviazione
Il contatore delle domande poste passerebbe da 41 a 42
Solo a scopo illustrativo: l'interfaccia reale può differire
Domande sui flow
Un flow in attesa di qualcuno sì. Le attese come Chiedi conferma o Attendi un messaggio vengono messe per iscritto invece di restare in memoria, quindi sopravvivono a un riavvio. Un'eccezione da conoscere: se modifichi il flow mentre una sua esecuzione è in attesa, quell'esecuzione si ferma e il log lo segnala.
Scopri di più su Custom Commands V3
Vuoi il tuo server nella beta?
La V3 è un sistema grande e si evolve ancora in fretta, quindi i server entrano uno alla volta e non tutti insieme. Ogni candidatura viene letta da una persona e ricevi una risposta entro pochi giorni.
I server già nella beta decidono buona parte di ciò che costruiamo dopo. Ciò che crei resta tuo: flow e moduli restano anche quando la beta finisce.