Italiano
EnglishEspañolPortuguês (Brasil)РусскийFrançaisDeutsch日本語简体中文繁體中文ItalianoPolski한국어УкраїнськаالعربيةTürkçeČeštinaไทย

Un pulsante, il tuo flusso di lavoro

Usa Stream Deck, HTTP o WebSocket per eseguire un flusso di lavoro Event Flow salvato.

Guida completa a controlli, gesti e icone di Stream Deck

Crea un flusso di lavoro richiamabile

  1. Trigger con nomeStream Deck / API
  2. Condizioni e azioniIl tuo Event Flow salvato
  3. DestinazioneFlow Actions, OBS o un'altra integrazione
  1. Apri Event Flow da SSN. Crea un flusso dedicato oppure scegli il modello Pulsante Stream Deck / API .
  2. Aggiungi Esegui da Stream Deck / API nel gruppo di trigger Stream Deck e API .
  3. Assegnagli il nome intermission. I nomi devono corrispondere esattamente e distinguono maiuscole e minuscole; usa un nome breve e descrittivo.
  4. Collega la sua uscita a Mostra testo (Show Text). Imposta il testo su Back in five minutes, e scegli la durata e il livello desiderati.
  5. Salva il flusso, poi attivalo. Un flusso non salvato esiste solo nell'editor; un flusso disattivato non può essere richiamato. Il modello iniziale è volutamente disattivato finché non termini la configurazione.
  6. Apri il tuo Overlay Flow Actions usando il link generato da SSN. Per il pubblico, aggiungi quell'URL come sorgente browser OBS. L'editor stesso non è l'overlay.

I flussi privi di questo trigger con nome non possono essere richiamati tramite l'API dei flussi di lavoro. Richiamare un flusso non inserisce chat fittizia nel dock. Gli eventi OBS esistenti e la normale chat continuano a usare i propri trigger.

Un flusso può combinare il proprio trigger con nome con dei filtri tramite nodi logici. Mantieni le automazioni non correlate in flussi separati: tutti i rami di trigger/logica del flusso selezionato vengono valutati con l'evento API. Pressioni ripetute avviano esecuzioni separate; inserisci un nodo di stato Limitatore di frequenza (Rate Limiter) dopo il trigger se vuoi un tempo di attesa.

Collega un tasto Stream Deck

  1. Configura nel plugin Configurazione con la tua sessione SSN e la password facoltativa. Usa Verifica connessione (Test Connection).
  2. Trascina Comando preimpostato (Preset Command) su un tasto.
  3. Seleziona Flussi di lavoro Event Flow → Esegui flusso di lavoro.
  4. Scegli Aggiorna flussi di lavoro, quindi seleziona il flusso e il trigger salvati. Il tasto memorizza sia l'ID del flusso sia il nome del trigger.
  5. Premi una volta e osserva l'overlay Flow Actions. Il segno di spunta del tasto significa che SSN ha accettato l'esecuzione.

Il selettore dei flussi di lavoro conserva le selezioni mancanti. Dopo aver rinominato, disattivato, eliminato o importato un flusso, aggiorna l'elenco e selezionalo di nuovo. Un flusso importato come nuovo ha un ID diverso. Usa invece il campo Value per indirizzare per nome più flussi.

Comando personalizzato: imposta Action su triggerWorkflow, lascia vuoto Target, inserisci {"trigger":"intermission"} come Value e attiva Attendi risposta (Wait for response). Il preset offre una selezione guidata e filtra in base alle funzionalità.

Azioni multiple: ogni richiesta di flusso di lavoro conferma rapidamente l'accettazione. Il passaggio successivo di Stream Deck può partire prima che terminino le azioni ritardate del flusso. Gestisci sequenza e ritardi dentro Event Flow quando l'ordine è importante.

Passa valori personalizzati

Nel campo Value del tasto o nella richiesta API:

{
  "trigger": "intermission",
  "flowId": "YOUR_SAVED_FLOW_ID",
  "data": { "name": "Back in five minutes", "minutes": 5 }
}

Imposta Mostra testo (Show Text) su {meta.workflow.data.name}. Confronta proprietà (Compare Property) può leggere meta.workflow.data.minutes. Data è un oggetto JSON facoltativo; rimane in meta.workflow.data e non può sostituire l'identità dell'evento né concedere privilegi di chat.

Ometti flowId per richiamare ogni flusso attivo con quel nome esatto di trigger. Più nodi trigger corrispondenti nello stesso flusso lo valutano comunque una sola volta. Per eseguire un solo flusso, mantieni il suo ID ottenuto dal selettore o dalla risposta di rilevamento.

L'evento usato nel flusso selezionato ha type: "api", event: "workflow_trigger", chatname: "Stream Deck / API", un campo vuoto chatmessage, e i dati riportati sopra. Una normale chat che copia quei campi non può attivare il trigger API con nome.

Esempi API

Mantieni SSN attivo e in esecuzione. Queste sono chiamate di controllo remoto di Social Stream; non usano l'API AI/MCP locale separata di SSApp. Mantieni privato il tuo vero ID di sessione.

Scopri i trigger disponibili

{"action":"getWorkflowTriggers","get":"list-1","apiid":"YOUR_SESSION"}

La callback contiene result.payload.triggers:

{"triggers":[{"flowId":"flow-123","flowName":"Intermission","trigger":"intermission"}]}

Esegui un flusso di lavoro con nome

{
  "action": "triggerWorkflow",
  "value": {"trigger":"intermission","flowId":"flow-123","data":{"name":"Back shortly"}},
  "get": "run-1",
  "apiid": "YOUR_SESSION"
}

Usa un valore univoco get per ogni richiesta. Una callback riuscita contiene result.ok: true, result.status: "accepted", e result.payload.matchedFlows. L'accettazione indica che il flusso attivo è stato trovato e pianificato. Non significa che ogni azione ritardata, webhook, chiamata OBS o riproduzione multimediale sia terminata.

WebSocket

Attiva controllo API remoto dell'estensione in SSN. Connettiti a wss://io.socialstream.ninja. Collegati con {"join":"YOUR_SESSION","out":1,"in":2}, quindi invia la richiesta riportata sopra. Il canale 1 trasporta i controlli; il canale 2 trasporta le callback. Non serve attivare il canale chat per i flussi di lavoro.

HTTP

Attiva la stessa impostazione di controllo API remoto. Sostituisci il segnaposto della sessione prima dell'uso:

POST https://io.socialstream.ninja/YOUR_SESSION
Content-Type: application/json

{"action":"triggerWorkflow","value":{"trigger":"intermission","data":{"name":"Back shortly"}}}

Per un semplice trigger con nome puoi usare anche GET https://io.socialstream.ninja/YOUR_SESSION/triggerWorkflow/null/intermission. Il quarto segmento del percorso può contenere JSON con codifica URL per valori strutturati. Codifica l'intero valore JSON con encodeURIComponent(JSON.stringify(value)). I canali di invio personalizzati usano ?channel=N.

P2P

La modalità P2P predefinita del plugin invia lo stesso payload tramite il trasporto sui canali dati VDO.Ninja già usato da SSN. L'opzione API WebSocket ospitata non è necessaria per P2P. I client P2P esistenti devono inviare questa richiesta tramite la loro connessione di controllo SSN già stabilita; non serve aprire l'API AI locale.

Errori e compatibilità

  • WORKFLOW_NOT_FOUND: nessun flusso salvato e attivo corrisponde al trigger/ID flusso.
  • INVALID_VALUE: trigger mancante/non valido, JSON malformato, ID flusso non valido o dati che non sono un oggetto.
  • CONTROL_UNAVAILABLE: SSN o il controllo remoto del conduttore è disattivato.
  • TARGET_UNAVAILABLE: Event Flow è ancora in caricamento.
  • Le risorse Social Stream meno recenti potrebbero non pubblicizzare queste azioni. Controlla getCapabilities → ssn.actions.triggerWorkflow e getWorkflowTriggers. Devono essere installati sia il nuovo trigger sia il plugin aggiornato; il solo numero di versione di SSApp non identifica le risorse Social Stream caricate da remoto.

Non riprovare automaticamente una chiamata che modifica lo stato dopo la perdita di una conferma: il flusso potrebbe essere già partito. Controlla prima il suo output. Questa API non fornisce una coda degli stati di esecuzione.

Cosa serve a ogni integrazione

Azione del flusso di lavoroDestinazione/configurazione necessariaCosa controllare
Mostra testo, contenuti multimediali, audio, svuotamento dei livelliOverlay Flow Actions connesso, stessa sessione; sorgente browser OBS per l'output destinato al pubblico.Output visibile, livello, durata e instradamento audio. Un comando riuscito non dimostra che la scena OBS sia visibile.
Controlli OBSFlow Actions connesso a OBS con indirizzo/password configurati; nomi di scene/sorgenti corrispondenti.Stato effettivo di OBS. Consulta la Guida OBS.
Fissa/metti in evidenza un messaggioDock predefinito connesso; scegli l'ID di un messaggio reale o il payload completo di un messaggio.Elenco dei messaggi fissati nel dock e overlay dei messaggi in evidenza. Il testo chat vuoto di un trigger API non costituisce di per sé una chat utile.
Chiama webhook (Call Webhook)URL, metodo e corpo JSON nell'azione.Risposta del ricevitore e campi di errore di Event Flow; la conferma di Stream Deck arriva prima dei risultati ritardati/esterni.
Invia messaggio / inoltroSorgente connessa che consente l'invio e destinazione esplicita.Chat di destinazione effettiva. Una richiesta di flusso di lavoro non autorizza ad aggirare i limiti della piattaforma.
Prodotti e supportoProdotti salvati/attivi e overlay commercio.Stato SSN selezionato/nascosto/pianificato. Consulta controlli dei prodotti.
Giveaway, biglietti, puntiSistema di giveaway/economia configurato e un attore adatto. Un evento API con nome non ha un'identità spettatore.Usa i preset giveaway del conduttore per i suoi controlli; non trattare l'evento API come un acquisto dello spettatore. Consulta giveaway e punti.
TTS, Spotify, stampa, MIDIConnessione, autorizzazioni, dispositivo o account propri di ogni integrazione.La destinazione/il dispositivo effettivo. Installare Stream Deck non configura queste integrazioni.

Guida completa a Event Flow · Ricette · Riferimento API

Gesti per timer e chat

Timer: ruota di uno scatto per ±10 secondi, come impostazione predefinita; tieni premuta la manopola mentre la ruoti per ±1 minuto (6× l'incremento configurato). Premi e rilascia senza ruotare per avviare/mettere in pausa. Tocca il display del timer per aggiornarlo; tieni premuto il display per azzerare. Tenere premuta solo la manopola fisica non azzera il timer.

Revisione chat: ruota a sinistra per la chat più vecchia, a destra per quella più recente; premi la manopola per fissare il messaggio esaminato. Tocca il display per mettere in evidenza il messaggio fissato successivo; tieni premuto il display per rimuovere il messaggio esaminato dai fissati. Mantieni aperto il dock predefinito. In modalità WebSocket attiva l'inoltro della chat sul canale 4.

Apri Aiuto e diagnostica → Guida a controlli, icone e flussi di lavoro nel plugin per la guida offline completa, tutti e cinque i tipi di azione, ogni preset/icona, il comportamento di ripristino, le impostazioni predefinite e la risoluzione dei problemi.

Riferimento della tavolozza Event Flow

La tavolozza contiene 45 trigger, 67 azioni, cinque nodi logici e quattro nodi di stato. Ogni voce ha un'etichetta testuale accanto al simbolo. Seleziona un nodo per vederne le impostazioni e i prerequisiti di integrazione; un'icona nella tavolozza non dimostra che una destinazione sia connessa.

Trigger decidono quando parte un flusso. Collega le condizioni con AND/OR quando necessario. Azioni vengono eseguite nell'ordine dei collegamenti. Nodi di stato ricordano i valori tra un evento e l'altro. Per un tempo di attesa del pulsante scegli Limitatore di frequenza (Rate Limiter) (THROTTLE), non un'azione Ritardo (Delay): Delay posticipa ogni esecuzione e non blocca le pressioni ripetute.

Trigger: Stream Deck e API (1)
  • ▶ Esegui da Stream Deck / API (Run from Stream Deck / API) — apiTrigger
Trigger: 📣 Eventi della diretta (9)
  • 👋 Nuovo follower (New Follower) — eventNewFollower
  • ⭐ Nuovo abbonato (New Subscriber) — eventNewSubscriber
  • 🔄 Riabbonamento/rinnovo (Resub/Renewal) — eventResub
  • 🎁 Abbonamento regalo (Gift Sub) — eventGiftSub
  • 💰 Donazione / mancia (Donation / Tip) — eventDonation
  • 🚀 Raid — eventRaid
  • 💎 Cheer/Bits — eventCheer
  • 📋 Altro evento... (Other Event...) — eventOther
  • ✏️ Evento personalizzato (Custom Event) — eventCustom
Trigger: OBS Studio (7)
  • Diretta OBS avviata (OBS Stream Started) — obsStreamStarted
  • Diretta OBS fermata (OBS Stream Stopped) — obsStreamStopped
  • Registrazione OBS avviata (OBS Recording Started) — obsRecordingStarted
  • Registrazione OBS fermata (OBS Recording Stopped) — obsRecordingStopped
  • Scena OBS cambiata (OBS Scene Changed) — obsSceneChanged
  • Contenuto multimediale OBS terminato (OBS Media Ended) — obsMediaEnded
  • Buffer replay OBS salvato (OBS Replay Buffer Saved) — obsReplaybufferSaved
Trigger: 💬 Messaggi chat (6)
  • 💬 Qualsiasi messaggio (Any Message) — anyMessage
  • 🔍 Il messaggio contiene (Message Contains) — messageContains
  • ▶️ Il messaggio inizia con (Message Starts With) — messageStartsWith
  • ⏹️ Il messaggio termina con (Message Ends With) — messageEndsWith
  • 🟰 Il messaggio è uguale a (Message Equals) — messageEquals
  • 🔤 Regex del messaggio (Message Regex) — messageRegex
Trigger: 📊 Proprietà dei messaggi (7)
  • 📏 Lunghezza messaggio (Message Length) — messageLength
  • 🔢 Conteggio parole (Word Count) — wordCount
  • 😀 Contiene emoji (Contains Emoji) — containsEmoji
  • 🔗 Contiene link (Contains Link) — containsLink
  • 💰 Contiene donazione (Has Donation) — hasDonation
  • ⚖️ Confronta proprietà (Compare Property) — compareProperty
  • ⚙️ Filtro delle proprietà del messaggio (Message Properties Filter) — messageProperties
Trigger: 👤 Utente e sorgente (6)
  • 📡 Dalla sorgente (From Source) — fromSource
  • 📺 Dal nome del canale (From Channel Name) — fromChannelName
  • 👤 Dall'utente (From User) — fromUser
  • 👑 Ruolo utente (User Role) — userRole
  • 🧠 L'utente è memorizzato (User Is Remembered) — userMemoryContains
  • 🎁 Riscatto punti canale (Channel Point Redemption) — channelPointRedemption
Trigger: ⏰ Temporizzazione e casualità (4)
  • 🎲 Probabilità casuale (Random Chance) — randomChance
  • ⏰ Intervallo di tempo (Time Interval) — timeInterval
  • 🎤 Quando dico... (When I say...) — voicePhrase
  • 🕐 Ora del giorno (Time of Day) — timeOfDay
Trigger: 🎹 MIDI (3)
  • 🎹 Nota MIDI attivata (MIDI Note On) — midiNoteOn
  • 🎹 Nota MIDI disattivata (MIDI Note Off) — midiNoteOff
  • 🎛️ Cambio controllo MIDI (MIDI Control Change) — midiCC
Trigger: 📦 Avanzati (2)
  • 📣 Tipo di evento (avanzato) (Event Type (Advanced)) — eventType
  • Codice personalizzato (Custom Code) — customJs
Azioni: 💬 Azioni sui messaggi (14)
  • 🚫 Blocca messaggio (Block Message) — blockMessage
  • ✅ Restituisci messaggio (Return Message) — returnMessage
  • ⚡ Continua in modo asincrono (Continue Async) — continueAsync
  • ✏️ Modifica messaggio (Modify Message) — modifyMessage
  • ⬅️ Aggiungi prefisso (Add Prefix) — addPrefix
  • ➡️ Aggiungi suffisso (Add Suffix) — addSuffix
  • 🔄 Trova e sostituisci (Find & Replace) — findReplace
  • ✂️ Rimuovi testo (Remove Text) — removeText
  • 🎨 Imposta proprietà (Set Property) — setProperty
  • 🌟 Metti messaggio in evidenza (Feature Message) — featureMessage
  • Fissa messaggio (Pin Message) — pinMessage
  • 💬 Invia messaggio (Send Message) — sendMessage
  • 📢 Inoltra chat (Relay Chat) — relay
  • 🪞 Filtro riflessione (Reflection Filter) — reflectionFilter
Azioni: 🔌 Integrazioni (6)
  • Esegui codice personalizzato (Execute Custom Code) — customJs
  • 🖨️ Stampa etichetta termica (Print Thermal Label) — printThermal
  • 🌐 Chiama webhook (Call Webhook) — webhook
  • ⬆️ Aggiungi punti (Add Points) — addPoints
  • ⬇️ Spendi punti (Spend Points) — spendPoints
  • 🎁 Giveaway / biglietti (Giveaway / Tickets) — giveawayControl
Azioni: 🎨 Contenuti multimediali ed effetti (7)
  • 🖼️ Mostra overlay multimediale (Display Media Overlay) — playTenorGiphy
  • 👤 Mostra avatar (Show Avatar) — showAvatar
  • 🛍 Prodotti e sostegno (Products & Support) — commerceControl
  • 📝 Mostra testo (Show Text) — showText
  • 🗑️ Svuota livello (Clear Layer) — clearLayer
  • 🔊 Riproduci clip audio (Play Audio Clip) — playAudioClip
  • ⏱️ Ritardo (Delay) — delay
Azioni: 🎬 OBS Studio (14)
  • 🎬 Cambia scena (Change Scene) — obsChangeScene
  • 👁️ Mostra/nascondi sorgente (Toggle Source) — obsToggleSource
  • 📝 Imposta sorgente di testo (Set Text Source) — obsSetText
  • ⏯️ Controlla sorgente multimediale (Control Media Source) — obsMediaControl
  • 🔊 Imposta volume sorgente (Set Source Volume) — obsSetVolume
  • 🔄 Aggiorna sorgente browser (Refresh Browser Source) — obsRefreshBrowser
  • 🎨 Attiva/disattiva filtro (Toggle Filter) — obsSetSourceFilter
  • 🔇 Disattiva/attiva audio (Mute/Unmute Audio) — obsMuteSource
  • 🔴 Avvia registrazione (Start Recording) — obsStartRecording
  • ⏹️ Ferma registrazione (Stop Recording) — obsStopRecording
  • 📡 Avvia diretta (Start Streaming) — obsStartStreaming
  • ⏹️ Ferma diretta (Stop Streaming) — obsStopStreaming
  • ⏺️ Controlla buffer replay (Control Replay Buffer) — obsReplayBufferControl
  • 💾 Salva buffer replay (Save Replay Buffer) — obsReplayBuffer
Azioni: 🎵 Spotify (10)
  • ⏭️ Salta brano (Skip Track) — spotifySkip
  • ⏮️ Brano precedente (Previous Track) — spotifyPrevious
  • ⏸️ Pausa (Pause) — spotifyPause
  • ▶️ Riprendi (Resume) — spotifyResume
  • ⏯️ Alterna riproduzione/pausa (Toggle Play/Pause) — spotifyToggle
  • 🔊 Imposta volume (Set Volume) — spotifyVolume
  • 📋 Aggiungi alla coda (Add to Queue) — spotifyQueue
  • 🎵 Annuncia il brano in riproduzione (Announce Now Playing) — spotifyNowPlaying
  • 🔀 Attiva/disattiva riproduzione casuale (Toggle Shuffle) — spotifyShuffle
  • 🔁 Imposta modalità di ripetizione (Set Repeat Mode) — spotifyRepeat
Azioni: 🔊 Sintesi vocale (5)
  • 🗣️ Leggi testo (Speak Text) — ttsSpeak
  • 🔇 Attiva/disattiva TTS (Toggle TTS) — ttsToggle
  • ⏭️ Salta TTS (Skip TTS) — ttsSkip
  • 🗑️ Svuota coda TTS (Clear TTS Queue) — ttsClear
  • 🔊 Imposta volume TTS (Set TTS Volume) — ttsVolume
Azioni: 🎹 MIDI (2)
  • 🎹 Invia nota (Send Note) — midiSendNote
  • 🎛️ Invia cambio controllo (Send Control Change) — midiSendCC
Azioni: 🧠 Memoria utenti (4)
  • 🧠 Ricorda utente (Remember User) — rememberUser
  • 👋 Dimentica utente (Forget User) — forgetUser
  • 🧹 Cancella tutti gli utenti (Clear All Users) — clearUserMemory
  • 🎟️ Scegli utente casuale (Pick Random User) — pickRandomUser
Azioni: 🔧 Controllo dello stato (5)
  • 🚦 Imposta stato porta (Set Gate State) — setGateState
  • 🔄 Ripristina nodo di stato (Reset State Node) — resetStateNode
  • 🔢 Imposta valore contatore (Set Counter Value) — setCounter
  • ➕ Incrementa contatore (Increment Counter) — incrementCounter
  • Controlla contatore (Check Counter) — checkCounter
Nodi logici e di stato
  • 🔀 Porta AND (AND Gate) — AND
  • 🔄 Porta OR (OR Gate) — OR
  • 🚫 Porta NOT (NOT Gate) — NOT
  • 🎲 Porta RANDOM (RANDOM Gate) — RANDOM
  • 🚫 Controlla parole vietate (Check Bad Words) — CHECK_BAD_WORDS
  • 🚦 Interruttore acceso/spento (On/Off Switch) — GATE
  • 🔢 Contatore (Counter) — COUNTER
  • ⏲️ Limitatore di frequenza (Rate Limiter) — THROTTLE
  • 🧠 Memoria utenti (User Memory) — USER_MEMORY

I filtri dei messaggi, i punti degli spettatori e le azioni sugli utenti memorizzati richiedono dati significativi su messaggi/utenti. Un pulsante del conduttore non fornisce né uno spettatore reale né una destinazione di risposta nella sorgente. Scegli controlli del conduttore o una destinazione configurata esplicitamente; non usare un flusso con nome per impersonare uno spettatore.

Per i dettagli dei collegamenti, consulta la Guida a Event Flow, guida ai nodi di stato, guida alla memoria utenti, e Guida OBS.

Individuare un errore

  1. Inizia con un semplice flusso Mostra testo (Show Text) e verificane l'output.
  2. Salva e attiva; aggiorna l'elenco dei flussi di lavoro di Stream Deck. Verifica sia il nome del trigger sia l'ID del flusso.
  3. Verifica che SSN sia attivo, che la connessione sia Online e che l'overlay di destinazione sia connesso alla stessa sessione.
  4. Controlla la callback API o la diagnostica del plugin per gli errori di ricerca/convalida. Per gli errori successivi all'accettazione, controlla la destinazione e i log di esecuzione di Event Flow.
  5. Aggiungi altre integrazioni una alla volta. Prova pressioni ripetute, un flusso disattivato e una riconnessione prima di usarlo in diretta.

Il normale pannello di test della chat dell'editor invia un evento chat. Non simula un trigger API con nome. Prova questo trigger tramite Stream Deck o l'API per verificare il percorso completo.