Free forever, no credit card.Get Started for Free →
← All posts
November 6, 2026 · 6 min read

Does BuildShip Remember Between Runs? Thread IDs, Cron Triggers, and What Actually Persists

Does BuildShip Remember Between Runs? Thread IDs, Cron Triggers, and What Actually Persists Short answer: partly, and only if you set it up that way. A BuildShip assistant can keep a conversation going across interactions when you hand it the same thread ID every time. A scheduled BuildShip workflow, on the other hand, wakes up blank on every run unless the workflow itself loads the thread ID and the state it needs from storage first. Nothing about a cron trigger carries memory forward on its o

Does BuildShip Remember Between Runs? Thread IDs, Cron Triggers, and What Actually Persists

Short answer: partly, and only if you set it up that way. A BuildShip assistant can keep a conversation going across interactions when you hand it the same thread ID every time. A scheduled BuildShip workflow, on the other hand, wakes up blank on every run unless the workflow itself loads the thread ID and the state it needs from storage first. Nothing about a cron trigger carries memory forward on its own.

That split catches people off guard because both halves feel like the same product. One is a chat feature. The other is how scheduled execution works.

Every BuildShip run starts fresh

BuildShip is a visual backend builder. You connect nodes into a workflow, and it runs as a serverless function on Cloud Run. A serverless execution has no memory of the executions before it. When a run finishes, its variables, its intermediate results, and whatever the AI node said all disappear with it. The next run starts from the workflow definition and whatever inputs the trigger supplies.

The scheduled trigger makes this explicit. BuildShip's Custom Schedule (Cron) trigger fires a workflow on a cron pattern, in a chosen timezone. The docs note that this trigger has no input or output mapping, and that "Get Data" is not supported on it. In plain terms: a cron run arrives with nothing from the past. No previous outputs, no previous thread, no list of what last night's run already did.

So if your scheduled workflow asks an AI node to triage new support tickets every morning, Monday's run has no idea what Friday's run triaged. If it enriches new leads, it will happily enrich the same leads again unless something outside the workflow tells it not to. The workflow is not forgetful in a buggy sense. It was never given a memory in the first place.

Thread IDs: the memory BuildShip does have

BuildShip's assistant nodes, for OpenAI, Claude, and Groq, work differently from the workflow around them. Each one accepts an optional Thread ID. Pass the same thread ID and the node reloads that thread's chat history and continues the conversation. The Groq assistant docs describe it directly: chat history is stored in the BuildShip Storage attached to the project, and providing a thread ID loads the previous messages; after each response, the latest messages are appended so the history is preserved for future interactions.

The OpenAI and Claude assistant nodes work the same way. A thread ID can be any unique identifier. Skip it and a new thread starts automatically, with a fresh ID returned as a node output. The docs say client applications should store that ID and reuse it for future interactions.

This is real continuity, and it is useful. A chatbot backed by a BuildShip workflow can remember the conversation it had with a visitor yesterday, as long as the visitor's thread ID is passed back in. A support assistant can pick up where a thread left off. The mechanism works.

But notice what it depends on: somebody has to store the thread ID and pass it in again. The node does not remember which thread belongs to whom. Your application, your database, or your workflow has to keep that mapping.

Where scheduled runs fall through the gap

Now put the two halves together. A scheduled workflow fires on cron, with no input. The assistant node inside it starts a new thread unless it receives a thread ID, and nothing in the trigger supplies one. So a scheduled run that calls an assistant node starts a brand-new conversation every single time, unless the workflow first reads a stored thread ID from durable storage and passes it in.

That is the step most people miss. The thread feature exists, but a cron run will not use it by itself. The workflow has to be built to fetch the thread ID at the start of the run and save it at the end. If that read-and-write step is missing, the assistant treats every run as a first meeting.

And even when the thread ID is wired up correctly, thread history is only conversation history. It records what was said in that thread. It does not record what previous runs did: which leads were already enriched, which tickets were already escalated, which decisions were already made. Those are a record of completed work, not a transcript, and that is where most "my agent keeps redoing work" complaints come from.

Three ways to give a scheduled BuildShip agent a real memory

1. Store the thread ID and read it first. If the workflow's job is a continuing conversation, keep the thread ID in a database, a sheet, or BuildShip Storage, and make the first step of every run load it. Pass it to the assistant node, and save it again at the end of the run. This gives the assistant continuity across runs, and it is the lightest fix when the conversation itself is the work.

2. Keep a record of completed work outside the workflow. For a scheduled agent that processes items, the durable fix is a system of record: a table of what was already processed, with IDs, timestamps, and outcomes. Each run reads that table before it acts, skips what is already done, and writes back what it just finished. BuildShip connects to databases like Firebase, Supabase, Postgres, and MongoDB, so the storage itself is not the hard part. The hard part is treating the table as part of the workflow and making the read-before-act step non-optional.

3. Give the agent a shared memory layer. The two fixes above work, but they are per-workflow plumbing. Every new scheduled agent needs its own thread handling and its own ledger, and none of them can see what the others learned. A hosted memory layer changes that shape. Vilix AI is a cloud-hosted memory layer your agents reach over MCP, so there is no infrastructure to run and no per-workflow database to maintain. The same memory follows the agent across BuildShip, n8n, Claude, ChatGPT, and every other tool you connect, and it stores full conversation history, not just extracted facts. It is free forever on the free plan, with a 7-day Pro trial that needs no credit card, and you can export or delete everything at any time.

The practical difference: instead of each scheduled run waking up blank and asking you to re-brief it, it starts from what every earlier run already knew, including runs from your other tools.

The bottom line

BuildShip remembers conversations when you pass the same thread ID, and nothing at all between scheduled runs unless you build that persistence yourself. The cron trigger carries no state forward, workflow variables die with the run, and thread history is a transcript, not a record of finished work.

If your scheduled agent keeps starting from zero, the fix is not a better prompt. It is a memory the run can read before it acts and write to after it acts.

Get Started for Free

Persistent memory across ChatGPT, Claude, and the AI tools you already use in Vilix AI.

Get Started for Free

Free forever, no credit card.

Keep reading
Does Base44 Remember Between Sessions? Two Different Memories, Two Different Answers

Does Base44 Remember Between Sessions? Two Different Memories, Two Different Answers Short answer: yes, in two separate places, and neither one is the memory most people mean when they ask the question. The AI chat that builds your app keeps its conversation, its plans, and the instructions you wrote for that app. The AI agents you build inside your app have their own memory, on by default, that carries preferences and facts across conversations with your app's users. Both are real. Both stop a

Does v0 Remember Between Sessions? Chat Context, Knowledge, and Where It Stops

Does v0 Remember Between Sessions? Chat Context, Knowledge, and Where It Stops Short answer: inside one chat, yes. Across chats, projects, and the rest of your tools, mostly no, unless you wrote the context down yourself in the places v0 calls Knowledge and custom instructions. That distinction matters because v0 feels continuous while you work in it. You return to a chat, the conversation is still there, the generated app is still there, and iteration picks up where it left off. It is easy to

Does Bolt Remember Between Sessions? Chat Threads, Knowledge, and Short-Term Memory, Explained

Does Bolt Remember Between Sessions? Chat Threads, Knowledge, and Short-Term Memory, Explained Short answer: the project remembers, because the project never goes away. Your code, your chat thread, your version history, and your backups are all still there when you come back tomorrow, so picking the work back up feels continuous. But Bolt does not build a learned memory of you or your decisions the way a memory product does. What carries between sessions is the work itself, plus whatever contex