Changelog
What changed in NoClick: the SDK, the API and the app, newest first.
Anyone can email your assistant
Your assistant's email address used to take only your own mail. It now takes anyone's, so people and other agents can write to it. Mail from someone else never lands in your own thread with it: each sender's mail gets a conversation of its own.
Invite a friend, get $2
Every account has its own invite link, under your balance in the sidebar. When someone you invite starts using NoClick, $2 is added to your balance.
Usage shows every charge
Settings → Usage lists what your account was actually charged, in dollars, with a plain name for each charge, and drills down to what used it: which agent, app, number or automation.
Put a website on a domain you hold
From a domain's page in Resources, pick one of your websites to serve there. Each name says where it stands: registering, DNS, certificate, then live. A purchase that fails frees the names it was going to serve.
Approval rules on every connected account
Every connected account now carries its own approval rules, and they apply to everything that uses it: your agents, your coordinator, and any MCP client. Open Settings → Credentials and click the shield on a connection to reach its Tool permissions page.
A locked action runs nothing until you say so. The call waits, the exact arguments it would send are shown to you, and you approve or decline it.
- The Use without approval row sets everything at once. Read-only lets reading actions run and locks the rest, All lets every action run, and None locks everything, including actions the service adds later. Search the list to lock one action on its own.
- Requests arrive under Needs you on the Dashboard, where you can read the arguments and decide without leaving the page.
- Approving admits one call with exactly those arguments, and it has 30 minutes to run. Different arguments, a second attempt, or a change to the rules each need a fresh approval. An untouched request expires after 24 hours.
- Agents and MCP clients can add restrictions but never remove one. Unlocking happens only on the permissions page, signed in as the connection's owner.
- Operations you allowlist on a tool provider node now carry a lock in the node settings, so you can see and change what needs approval without leaving the workflow.
A coordinator for your whole account
Every account now has a coordinator: one assistant that sees the whole account rather than a single workflow. It reads your workflows and runs, hands builds and fixes to the AI builder, passes work to agents you already have, and connects accounts for you.
- It watches failed runs. When a workflow fails, the coordinator looks into it: it asks the builder to diagnose and fix, pauses a workflow that is clearly finished with, or tells you when only you can fix it. A run that failed for want of credits never wakes it, because the credits alert already covers that.
- Memories is a new card on the Dashboard. It holds what the coordinator has learned about you and your work, as entries you can read, edit, write yourself, and delete. Each one is filed as About you, Preferences, Project context, or Reference.
- Preferences live there too, rather than in a settings page. Tell the coordinator to stop triaging a workflow, or which channel to reach you on, and it keeps that as a memory.
- It reaches you where you last wrote to it, on WhatsApp or by email. It has its own inbound address on
noclick.app, so you can mail it and it answers on the same thread. - It makes images and video on request. Video generation is available on the Plus and Pro plans.
- Your agents can message it as well, so an agent that hits something it cannot fix has somewhere to send it.
Improvements and fixes4
Signing in with a phone number from the site navigation now lands you on the Dashboard instead of reloading the page you started from. The code step counts down with Resend code in 0:30 and then offers Resend code, and a send the provider refuses as too soon says how long to wait instead of showing a generic error.
Accounts with no email address, which is what a first WhatsApp message creates, now work end to end. Connection links sent to them open, organization invites and shares behave correctly, checkout and top-ups work, and names show in the navigation bar, the organization switcher, and the chat sidebar rather than appearing blank. Tools that need an email address, such as agent email updates, are no longer offered on an account that has none, and the Send Email node explains how to connect an address instead of failing with an internal error.
Workflows holding an HTTP Request, RSS, or MCP Server node that runs without a credential no longer refuse to activate with "connect an account". Those nodes support an optional credential, and readiness now treats them as ready without one. Nodes that genuinely require an account, such as an Instagram OAuth connection, are still enforced.
The WhatsApp message that tells you the builder is waiting now names what it needs, for example "2 account connections and one answer", instead of repeating the question as a label.
Sign in with your phone number
The sign-in page and the in-app sign-in panel now offer Continue with phone. Type your number, tap Text me a code, and enter the code to sign in. A number NoClick has not seen before makes an account, so the same form covers signing up. The number field has a searchable country picker, adds the calling code to digits typed without one, and formats the number as you type.
The number you message NoClick from on WhatsApp signs you in to the same account, so a chat you started on your phone and the workflows you open in the browser are one account rather than two.
- Phone is now a section in Settings for every account. Add a number, prove it with the code we text you, and WhatsApp messages and calls from it reach your account. Codes expire after ten minutes. Each row says whether the number was Verified with a code or Linked on WhatsApp.
- An account can link up to five numbers, and a number belongs to one account at a time. Unlink frees a number for another account to claim, and a number that is the only way into an account cannot be unlinked until the account has an email address.
- A chat that started on WhatsApp with no account behind it can be connected to an account you already have, from inside the chat. Ask to connect the email you sign in with, and NoClick emails that address a six digit code for you to send back. The code expires after fifteen minutes and is spent after five wrong tries, and nothing moves until it matches, so naming an address you do not hold reaches nothing. On a match, your workflows, connected accounts, and the chat itself move to the account with that email. Where no account has that address, the phone account takes the email so you can sign in with it too.
Improvements and fixes2
A node the AI builder removed could come back on the canvas and in the saved workflow, and then ride into the next prompt. Builder removals are now remembered the same way your own deletions are, so a save that arrives out of order cannot restore them.
New agents and the AI builder now run on the latest Luna model, which follows OpenAI's releases without a change on your side. Agents you have already configured are unchanged.
Keys are checked when you save them
Pasting an API key used to save whatever you typed. A key with a stray line break, a web address pasted into a token field, or a key the service does not accept all saved looking connected, and you found out at the first run. NoClick now tidies the value and asks the provider about it before storing anything.
When the provider answers, the form shows what it said about your account rather than a tick: your own boards, sites, or workbooks, or Connected as and the account name. When the provider refuses, nothing is saved, and you get its own words along with what that usually means, such as an address serving a sign-in page instead of an API, or a key that reads as truncated or revoked. When NoClick cannot reach the provider at all, the credential saves and says Saved, not verified rather than claiming to be working.
- Problems are reported under the field they belong to. A web address pasted into a key field, placeholder text left in, and a value the service's own rules reject each name the field, and clear as you edit it.
- Credential forms now show the setup instructions and the per-field help for the service. Both were already written for each service and neither was displayed.
- A credential that proved itself when you connected it is remembered as Verified, with the account it connected as, so a node's Credentials tab says more than that something is attached.
- Tableau accepts your site address as it appears in your browser. Paste the whole URL into Server URL and NoClick fills in Site Content URL from it. The Cloud Manager console address is refused when you save, because it never serves the API, and the message names what to use instead.
- The same check runs wherever a key is entered: on a node, in Settings → Credentials, during Setup, and on a link someone sent you to connect an account for their workflow.
Improvements and fixes1
Scanning a WhatsApp QR code no longer warns that the connection you just made is missing. The node's Credentials tab judged the new connection against the credential list it had loaded before the scan, so for the moment it took the refreshed list to arrive it reported the attached credential as one that no longer exists or is not accessible. Nothing was wrong with the connection, and the warning cleared on its own.
Improvements and fixes1
A link for answering the builder's questions stays valid on every step. When one link asked for two connections of the same service, the second question's connection request replaced the first one's, so going back to Step 1 of 2 reported Credential request not found. Questions for the same service now share one request, so a single sign-in answers all of them, and links sent before this repair themselves the next time they are opened.
Improvements and fixes2
API keys work again under Settings → Developer. Creating, listing, and revoking a key failed with an authorization error, because the app and the API sit on different domains and the request was not carrying your sign-in. The page also shows the error when a request fails, rather than appearing to do nothing.
Requests to NoClick's API are faster, and a request that takes longer than five seconds no longer fails with a proxy error. That includes the fallback connection your browser uses when it cannot open a websocket, which was being cut off after about ten seconds.
Setup says what has actually arrived
The Setup tab now ends with a check on the workflow itself. It reports one of six states: setup unfinished, configured but unverified, registered and waiting for a real input, a reporting deadline armed, a real input received, or nothing automatic wired at all. When an input has arrived it names the node, when it arrived, and what the run did with it, and a Refresh button rechecks without reloading the page. It also says outright that a Test Run is simulated and that a send the provider accepted is not proof it was delivered.
- A trigger registers only once the path it starts can run. A trigger whose workflow is still missing an account, an agent's instructions, or a required field no longer shows as live while nothing could have run. Fix what is missing and the trigger registers itself the next time the workflow saves.
- A WhatsApp trigger that could not register says why, for example that the saved phone link is disconnected and needs reconnecting, and the message clears once a later attempt succeeds.
- A trigger run that carried no event stops there. A push trigger you run by hand reports that it is waiting for a message and no longer hands an agent an empty turn to spend credits on. Branches that do not depend on that trigger still run.
An agent fed by a trigger does not need a Message
Message is where you write an agent's standing instructions, and it is still required when nothing feeds the agent. When a trigger is wired into the agent, the event that arrives is the turn, so Message can be left empty and the node is no longer marked incomplete for it. Running such an agent by hand, with no event and no standing instructions, fails with an error saying so rather than running on nothing.
Improvements and fixes4
The AI builder can see which accounts are already connected when you ask it to edit or autofill. The snapshot it works from used to leave out each node's attached account, along with whether the node was disabled or holding a test output, so it could ask you to connect something you had already connected.
Fields that do not apply to the account you connected are hidden. A WhatsApp trigger on a QR connection no longer shows Verify Token (Optional), which only the Cloud API uses, and the trigger's Webhook URL is read-only, since NoClick fills it in.
A WhatsApp disconnection email waits for the link to stay down. A restart at the provider flaps every connection for well under a minute, and you used to be told to re-scan a link that was about to come back, which adds a second device link to the phone. NoClick now waits out a short blip before it checks, and if the connection recovers after an email went out, a follow-up tells you it healed itself and not to re-scan.
A turn lost because its sandbox was replaced is now recorded as a failed run with the reason, instead of sitting in history looking delivered.
A missing value stops the step
A required field holding a reference like {{ $('trigger').chat_id }} used to be passed on as an empty value when the referenced output had no such key. The step reported success and nothing arrived. That field now fails the step, and the error names the field, the reference, and the keys the referenced node's output actually has, so you can fix it without opening the run.
- The error reads
Required field 'to' is empty, followed by what went wrong: the referenced node has no key by that name, and the list of keys it does have. A key that exists but holds null is reported as null, which reads differently and usually means a different fix. - A reference read during a manual run of a trigger that waits for events says there is no live event in this run, and that firing the workflow for real is how to test that path.
- Optional fields are unchanged. A reference that resolves to nothing there leaves the field at its default, as before.
- Sending a WhatsApp message to an empty recipient stops with a message naming the chat id to reference instead, rather than being accepted and never delivered.
Improvements and fixes4
Fields that take a yes or no answer are a dropdown. They used to be an open text box that accepted any wording and then failed the run on wording the step could not read. The dropdown offers Yes, No, and the field's own default, and a field holding a
{{ }}reference keeps the text box.The AI builder checks references against your real data as it writes them. When it fills a field with a reference to a key that node's output does not carry, it is told so along with the keys the output does have, both as it writes the field and before it finishes, so a workflow it hands you is less likely to fail on its first run.
Ask the builder what a step returned on a run that failed at that step, and it reports the error the run recorded instead of asking you to run the node first.
The builder can add an Alarm or Filesystem node when you ask for one. Neither was in the list of nodes it could see, so asking it to let an agent schedule its own wake-ups used to get the answer that no such node exists.
A Slack trigger tells you when it cannot hear the channel
Slack sends channel events only to apps that are members of the channel. A trigger on a channel NoClick was never invited to used to read Active and never fire. Registration now checks, and the trigger's Status field carries the verdict. When the app is not in the channel, the status turns amber and says so, with a Join #channel button next to it on a public channel. A private channel names the invite to run instead, since only a person can add an app to one.
- The node is marked incomplete on the canvas, counted by the incomplete pill at the bottom left, and named in the Setup tab. It never holds up a run you start yourself, because a manual run does not wait for Slack to deliver anything.
- Your Dashboard lists it under Needs you as not receiving events, with that same fix as the button on the row and Open trigger next to it. Open trigger now opens the workflow with the trigger selected and its settings showing.
- Ask the AI builder why a workflow is not running and it reads the same verdict, so it answers that the trigger is registered but not receiving events rather than calling it active.
- A check that cannot reach Slack changes nothing. A trigger is never called broken on a failed check.
Improvements and fixes1
A Slack message that started a run is shown as a Slack message in the run results What came in frame: the channel it was posted in, who posted it, the time, and the text with mentions, channel links, and link labels written the way you read them in Slack. A bot post's attachments and the names of shared files are part of what came in, a reply is marked as being in a thread, and a channel notice such as someone joining reads as that notice instead of an empty message.
Improvements and fixes2
A message that arrived with a photo, video, voice note, or document keeps it in the run results What came in frame. Pictures and video show in the bubble, a voice note gets a player you can listen to, and a document shows as a chip with its filename. A shared location or contact card reads as one line naming the place or the person, and a WhatsApp sender's phone number is shown in place of an opaque id.
The AI builder can read what earlier runs stored. Ask what a trigger received or what a step returned, and it lists that node's recent outputs newest first, then opens the run it needs. A trigger with nothing stored says no delivery has been recorded, and an output left behind by a manual run of a waiting trigger is marked as such.
A failing schedule pauses itself
A scheduled workflow that kept failing the same way used to mint another failed run on every tick, for as long as the schedule ran. NoClick now pauses it: when the last five runs from that schedule have all failed with an identical error, spread over at least 30 minutes, the trigger node is switched off and the schedule stops.
- You get one email naming the workflow, the paused trigger, the error, and when it was paused. Paused schedules is its own toggle in Settings → Notifications, and you get at most one of these per trigger per day.
- The paused trigger appears on your Dashboard under Needs you and on the Triggers card, named and marked as paused with the error next to it. A trigger you switched off yourself stays hidden, as before.
- Fix what the error names, then enable the trigger node again to resume the schedule. If the same failure comes back, the schedule pauses again on the first repeat.
- Running out of credits never pauses a schedule. Topping up resumes the runs on its own.
- A short provider outage does not reach the bar: the failures have to be identical and sustained for half an hour.
Improvements and fixes4
Pressing Run on an integration node that is wired as a tool provider no longer fails with an error about a missing action. The button is off, and says the node provides tools and its actions run when the agent or your MCP client calls them. Run the agent instead. Asking NoClick to run that node from an MCP client gets the same explanation back.
A step inside a loop that fails is recorded as failed. Some failures were read as successes, so the loop carried on with the failed step's output and stored it as that item's result.
A loop stops when your credits run out, including loops nested inside another loop, instead of working through the rest of the items and failing each one.
The nodes on a loop's After Loop handle run once. A loop nested inside another loop could run them a second time.
Your MCP server link has a real success signal
The connect status for a workflow that hosts an MCP server now answers two questions separately instead of showing one spinner for both. A Link ready line names how many tools the link serves right now, with a few of them by name, read straight from your workflow with no client involved. Under it, the client line reads Waiting for your agent to connect until a client calls in, then Connected with the client's name, how many tools it was served, and which ones it can call.
- The waiting line names what makes that client connect. Most clients only write the config when you run their add command and open the connection when a session starts, so the usual fix is to start or restart the client rather than to wait.
- After 45 seconds the panel offers that client's own check command, such as
claude mcp listoropencode mcp list. Those commands list the servers and connect at the same time, so running one turns the status green. - The status also sits on the node. The Connect externally header of an MCP Server node reads Connected, with the client and the tool count, for anyone who opens the workflow later, so you do not have to run the Setup finale again to check.
- When NoClick cannot read handshakes for a moment, the panel says it cannot check rather than reporting that nothing has connected. The link keeps serving either way.
- The client setup guides are re-verified. Claude's custom connectors live under Customize → Connectors, Zed connects to a remote URL without a bridge, and VS Code adds the server with
code --add-mcp.
Improvements and fixes1
When a connection really has dropped, the message on the node's Credentials tab now says how to repair that connection: re-scan the QR code for a WhatsApp credential, or add NoClick's bot back to the server for a Discord one. It used to give WhatsApp instructions whatever the connection was.
The Feed is now a Dashboard
The Feed tab in the top navigation becomes Dashboard: one page for what is happening across your workspace, with a card for each area and a full page behind every card. Needs you replaces the approvals queue and now also carries questions the AI builder parked, edits an agent proposed to its own workflow, accounts someone still has to connect, connections that stopped working, and triggers that failed to register. You answer each one where it sits, with the same fields and pickers the workflow itself would show you.
The other cards are Runs, Agents, Upcoming, Files, Credentials, Triggers, Credits, and Notifications. Press G then D to open the Dashboard, or G then I to land on Needs you.
- Runs charts the last 14 days and lists your workflows by run count, with failures called out. Click a row to open that workflow, or a single run to see its results.
- Files gathers workflow uploads, agent workspaces, and the builder's scratch folder in one place, previews images, video, audio, and datasets without leaving the page, and lets you upload or delete wherever you have write access.
- Agents shows sandboxes that are up now and each agent's latest turns, with the message that came in, the messages the agent sent, and every tool call it made.
- The section you drilled into is remembered while you visit other tabs. The back button, browser Back, or
Escleaves it.
Improvements and fixes1
The disconnection email covers every connection type NoClick can check, not just WhatsApp, and names what to reconnect. A Discord server that removed the bot gets its own email, once per connection per day at most.
Improvements and fixes4
The What came in section of a run's results shows the message the agent turn actually took in. A turn from a chat agent could show something else there: a note left behind by an earlier manual run, or a message from a different conversation. When several messages feed one turn, the section marks the one it shows as the latest of them, and Inputs consumed carries the rest.
A manual run of a trigger that waits for an incoming event now reads as one line saying nothing was delivered. The explanation used to appear as a message, as though someone had sent it.
Also ran counts only the nodes that ran. A node the run read data from without running it, such as a file upload left disconnected on the canvas, no longer appears there.
An agent turn that never comes back shows in your run history as a failed run, with an error saying the turn was lost and that sending another message retries it. Those turns used to leave no run behind at all.