Du hittar en perfekt tweet att svara på, du skriver något bra, du trycker på skicka … och så inser du att du redan svarade i går. Eller ännu värre: du missar tweeten helt eftersom du var upptagen med att driva företaget.
Det är här X replies tracking hjälper. Det träffar growth marketers först, men grundare och kundnära konsulter känner av det också. Du håller dig konsekvent på X utan att behöva leva i flödet, och du stoppar pinsamma dubbelsvar innan de händer.
Det här arbetsflödet bevakar tweets enligt ett schema, svarar automatiskt och loggar varje åtgärd till Google Sheets så att du kan granska, finjustera och skala. Du får se vad det gör, vad du behöver och hur du justerar det på ett säkert sätt.
Så fungerar automationen
Hela n8n-arbetsflödet, från trigger till slutresultat:
n8n Workflow Template: X + Google Sheets: svar spårade utan dubbletter
flowchart LR
subgraph sg0["Schedule Trigger (15分ごと) Flow"]
direction LR
n0@{ icon: "mdi:swap-vertical", form: "rounded", label: "Other Error", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "No Tweet Found", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is No Tweets?", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Rate Limit Error", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is Rate Limit?", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-vertical", form: "rounded", label: "Already Replied (Skip)", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Reply Success", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is Duplicate?", pos: "b", h: 48 }
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Send Reply (HTTP)"]
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Prepare Reply"]
n11@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is Success?", pos: "b", h: 48 }
n12["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Get Latest Tweet Per Account"]
n13["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Search Tweets (HTTP)"]
n14@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger (15分ごと)", pos: "b", h: 48 }
n11 --> n10
n11 --> n4
n8 --> n6
n8 --> n7
n2 --> n1
n2 --> n0
n10 --> n9
n4 --> n3
n4 --> n2
n9 --> n8
n13 --> n12
n12 --> n11
n14 --> n13
end
subgraph sg1["Flow 2"]
direction LR
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Reply Error", pos: "b", h: 48 }
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n14 trigger
class n2,n4,n8,n11 decision
class n9,n13 api
class n10,n12 code
classDef customIcon fill:none,stroke:none
class n9,n10,n12,n13 customIcon
Problemet: svara snabbt utan att spamma folk
X belönar snabbhet och konsekvens. Men manuell interaktion blir rörig i verkligheten. Du söker på en hashtag, öppnar tio flikar, svarar på några tweets, och så blir du indragen i något annat och tappar bort dig. Nästa gång du kommer tillbaka är du inte säker på vilka inlägg du redan hanterat, och nu dubbelkollar du allt som om det vore ditt deltidsjobb. Under tiden får de bästa leads:en (de som aktivt ställer frågor) svar från någon annan först. Det svider, ärligt talat.
Friktionen byggs på. Här faller det ofta isär.
- Du läser samma flöden om och om igen eftersom det saknas en pålitlig “klar”-lista.
- Dubbelsvar händer, särskilt när flera i teamet delar samma konto.
- “Jag svarar senare” blir “jag missade det”, och tidsfönstret stängs.
- Utan logg kan du inte se vilka sökord som faktiskt startade samtal och skapade leads.
Lösningen: schemalagda autosvar med spårbarhet i Sheets
Det här n8n-arbetsflödet körs enligt ett schema och söker i X efter senaste tweets som matchar din fråga (en hashtag, ett sökord, en mention eller något som from:username). När det hittar nya inlägg förbereder det en svars-payload och skickar svaret via X API. Sedan kontrollerar det om tweeten redan har fått ett svar och registrerar vad som hände så att du inte behöver gissa senare. Om det inte finns något nytt avslutas körningen utan krångel. Om du slår i rate limits eller API:et svarar oväntat skickas flödet vidare till “notice” och “failure log”-spår så att du ser orsaken i stället för att stirra på ett tyst fel.
Arbetsflödet startar med det intervall du väljer (många team landar på cirka 15 minuter). Det hämtar senaste inlägg, behåller bara det senaste inlägget per användare för att minska brus och skickar bara svar när villkoren ser säkra ut. Till sist markeras varje utfall (levererat, hoppat över, inga uppdateringar, rate limited) så att din interaktion blir jämn och kontrollerad.
Det här får du: automation vs. resultat
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att du bevakar två hashtags och ett sökord, och att du manuellt kollar och svarar två gånger per dag. De flesta lägger cirka 20 minuter per tillfälle på att söka, öppna tweets, svara och försöka komma ihåg vad de redan rört vid, så det blir ungefär 40 minuter per dag (cirka 3 timmar per vecka). Med det här arbetsflödet ställer du in schemat en gång och lägger kanske 10 minuter per dag på att granska Google Sheet och justera svarstexten. Sökning, filtrering och skickning sker i bakgrunden.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- X (Twitter) Developer-konto för API v2-åtkomst och inloggningsuppgifter.
- Google Sheets för att logga svar och hoppa över dubbletter.
- X API v2-nycklar/tokens (skapa dem i X Developer Portal).
Kunskapsnivå: Medel. Du klarar dig fint om du kan klistra in API-uppgifter, redigera en query-sträng och testa en körning av arbetsflödet.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Ett schema triggar körningen. “Scheduled Interval Trigger” kör var X:e minut, så att ditt konto interagerar konsekvent utan att du behöver vakta flödet.
X söks via API. En HTTP-förfrågan anropar X API v2 för att hämta senaste tweets som matchar din fråga. Sedan smalnar arbetsflödet av resultatet (inklusive ett steg för “senaste inlägg per användare”) så att du inte spam-svarar samma person upprepade gånger.
Det avgör vad som händer härnäst. Om API-anropet lyckas skapar det en svars-payload och publicerar svaret. Om du blir rate limited eller inget nytt dyker upp registrerar det en status i stället för att tvinga fram ett dåligt svarsförsök.
Resultat markeras och loggas. Levererade svar, dubbletter som hoppas över, “inga uppdateringar” och fel får alla etiketter. Det är här Google Sheets kommer in: det blir ditt minne, så att du kan visa vad som hände och slippa göra om jobb.
Du kan enkelt ändra sökfrågan och svarstexten efter dina behov. Se hela implementationsguiden nedan för alternativ för anpassning.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den schemalagda intervalltriggern
Ställ in schemat som initierar workflowet och startar Twitter-frågecykeln.
- Lägg till Scheduled Interval Trigger som triggernod.
- Ställ in intervallregeln till minutes med minutesInterval satt till
30. - Säkerställ att Scheduled Interval Trigger är kopplad till Query Recent Posts API.
Steg 2: Anslut Twitter och hämta senaste inlägg
Hämta senaste tweets från övervakade konton via Twitter API och skicka datan vidare i flödet.
- Öppna Query Recent Posts API och ställ in URL till
https://api.twitter.com/2/tweets/search/recent. - Aktivera Send Query och ställ in frågeparametrar: query till
from:account_one OR from:account_two OR from:account_three OR from:account_four -is:retweet, tweet.fields tillcreated_at,author_id, expansions tillauthor_id, user.fields tillusernameoch max_results till50. - Ställ in Authentication till Predefined Credential Type och välj nodeCredentialType
twitterOAuth2Api. - Bekräfta att Query Recent Posts API är kopplad till Fetch Latest Post Per User.
Credential Required: Anslut era twitterOAuth2Api-credentials.
Steg 3: Sätt upp inläggsaggregering och skapa svar
Normalisera API-svaren, filtrera fram den senaste tweeten per användare och förbered payloaden för svaret.
- I Fetch Latest Post Per User behåll den befintliga JavaScript-koden som slår ihop API-svar, kontrollerar fel och returnerar den senaste tweeten per författare.
- I Check Success Status ställ in villkoret att jämföra value1
{{ $json.status }}är lika medsuccess. - Koppla true-utgången från Check Success Status till Compose Reply Payload.
- I Compose Reply Payload bekräfta att det fasta svarsmeddelandet är satt till
弊社の新サービスをご覧ください! https://example.comoch att fält somreplyText,replyToTweetIdochextractedUsernameläggs till i JSON.
Steg 4: Konfigurera utskick av svar och kontroll av dubbletter
Skicka svar till Twitter och hantera dubbletter med villkorslogik och set-noder.
- I Dispatch Reply API ställ in URL till
https://api.twitter.com/2/tweetsoch Method tillPOST. - Ställ in JSON Body till
{{ { "text": $json.replyText, "reply": { "in_reply_to_tweet_id": $json.replyToTweetId } } }}och aktivera Send Body med Specify Body somjson. - Ställ in Authentication till Predefined Credential Type och välj nodeCredentialType
twitterOAuth2Api. - I Check Duplicate Reply konfigurera villkoret att kontrollera att value1
{{ $json.error }}innehållerduplicate content. - Koppla true-grenen till Duplicate Reply Skipped och false-grenen till Reply Delivered.
Credential Required: Anslut era twitterOAuth2Api-credentials.
Steg 5: Konfigurera statusutdata och villkorsstyrd routning
Hantera fall utan inlägg, rate limits och andra fel med villkorsstyrda rutter och statusloggar.
- I Check Rate Limit ställ in villkoret att jämföra value1
{{ $json.errorType }}är lika medrate_limit. - Routa true-utgången till API Limit Notice och false-utgången till Check No Posts.
- I Check No Posts ställ in villkoret att jämföra value1
{{ $json.status }}är lika medno_tweets. - Routa true-utgången till No Updates Detected och false-utgången till Alternate Error Capture.
- Säkerställ att alla set-noder som används för loggning (inklusive Reply Delivered, Duplicate Reply Skipped, API Limit Notice, No Updates Detected, Alternate Error Capture och Utility: Reply Failure Log) behåller sina tilldelningsvärden för statusspårning och tidsstämplar som
{{ $now.toISO() }}.
Steg 6: Testa och aktivera ert workflow
Kör ett kontrollerat test för att bekräfta att svarsflödet och felroutningen fungerar som avsett, och aktivera sedan för produktion.
- Klicka på Execute Workflow och bekräfta att Scheduled Interval Trigger initierar körningen.
- Verifiera att Query Recent Posts API returnerar tweets och att Fetch Latest Post Per User ger ut items med
statussatt tillsuccess. - Bekräfta att Dispatch Reply API postar svar och att utdata från Reply Delivered innehåller
status,replied_to_tweet_idochreply_text. - Om ni får dubbletter eller ett no-posts-läge, validera att utdata från Duplicate Reply Skipped eller No Updates Detected är som förväntat.
- När allt är validerat, slå på Active för att aktivera schemalagda körningar.
Vanliga fallgropar
- X (Twitter) API-uppgifter kan löpa ut eller sakna rätt behörigheter. Om det slutar fungera, kontrollera först projekt-/appinställningar och token-scopes i X Developer Portal.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre ned misslyckas på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in ert varumärkesspråk tidigt, annars kommer du att redigera utdata för alltid.
Vanliga frågor
Cirka 30 minuter när din X-utvecklarapp är godkänd och ditt Google Sheet är klart.
Nej. Du kopplar in uppgifter, redigerar sökfrågan och anpassar svarstexten.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också ta hänsyn till kraven för X API-åtkomst på ditt utvecklarkonto.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och klarar n8n bra. Self-hosting ger obegränsade körningar, men kräver grundläggande serveradministration.
Ja, och det bör du. Ändra query-parametern i förfrågan “Query Recent Posts API” och justera sedan meddelandet i delen “Compose Reply Payload” så att det matchar din ton. Vanliga justeringar är att exkludera vissa termer, ignorera retweets, bara svara på frågor och lägga till en mjukare call-to-action. Om du vill ha mindre repetition kan du också byta ut den statiska svars-kompositionen mot ett steg med AI-genererat svar och ändå behålla dubblettkontrollen.
Oftast är det ett problem med API-token. Generera om dina X API-nycklar/tokens i utvecklarportalen, bekräfta att appen har v2-åtkomst och uppdatera sedan uppgifterna i n8n. Rate limiting kan också se ut som “fel” om ditt schema är för aggressivt, så dra ner intervallet om du ser limit-notiser. Kontrollera till sist att dina HTTP request headers matchar vad X förväntar sig, eftersom en minimal auth-missmatch kan blockera varje körning.
Med ett typiskt schema (var 15:e minut) klarar den utan problem dussintals matchningar per dag, men din verkliga gräns är X API:ets rate limits och din n8n-körkvot. Om du self-hostar beror körningar på din server i stället för en planbegränsning. Om du förväntar dig hög volym, snäva in sökfrågan och svara bara på tweets med högst intention.
Ofta, ja. n8n passar bättre när du behöver förgrenad logik (rate-limit-spår, hantering av “inga inlägg”, dubblettkontroller) och när du vill ha möjligheten att self-hosta för högre volym. Zapier och Make kan fungera, men du brukar betala mer när du lägger till flerstegslogik och tät polling. Den största frågan är kontroll: med X-automationer vill du ha finmaskig hantering så att du inte råkar spamma svar. Prata med en automationsexpert om du vill ha hjälp att välja.
När detta väl rullar slutar din interaktion att vara ett dagligt kaos. Arbetsflödet tar hand om de repetitiva delarna, och du får ett tydligt register i Sheets som styr vad du gör härnäst.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.