Changelog

What changed in NoClick: the SDK, the API and the app, newest first.

Live calls on your own Twilio number

The Twilio node gained two call operations, so a number you already own can carry a voice agent.

  • On Incoming Call is a trigger. Pick the Phone Number that should ring, write a Greeting, and NoClick points that number's voice webhook at your workflow. The agent wired to the trigger answers and holds the conversation live.
  • Place an Agent Call is a tool an agent calls itself. Give it a From Number, a To number, and a Goal in plain words. It returns straight away while the call runs.
  • A finished call comes back as a message in the agent's chat, with the transcript and how long the call lasted. An outbound call reports back to the agent that placed it, in the conversation it was placed from, so a workflow no longer needs an On Incoming Call node to hear about a call it made.
  • Both operations need an Account SID and Auth Token credential, because an API key cannot verify the webhooks Twilio signs. One number rings one agent, and a second workflow that tries to claim it is told which workflow holds it.

Posting to TikTok, with the account's own rules applied

Pick Direct Post Video or Direct Post Photo and the node settings now show a Post to TikTok panel: the connected creator's name, a preview of the media and caption, and the posting options TikTok currently allows on that account. Visibility is never filled in for you, comments, Duet and Stitch stay off until you turn them on, and an interaction the creator has turned off in TikTok cannot be enabled from here.

Every run re-checks those options against the account before it posts, so a visibility or an interaction the account no longer allows fails the run instead of publishing something more widely visible than you chose.

  • Commercial content has its own controls. Disclose commercial content reveals Promote your own brand and Paid partnership with another brand, at least one of which has to be chosen, and a paid partnership cannot be posted privately. The workflow will not run while those settings contradict each other, and the panel links the TikTok policies you are agreeing to. AI-generated content marks a post as AI generated.
  • The node output now carries published and publish_status alongside status, because TikTok accepts a post before it finishes processing it. If it is still processing, pass the returned publish_id to Check Video Publish Status rather than running Direct Post again, which posts a second time.
  • Video you attach to the node is uploaded to TikTok directly, so it no longer needs a public address. Hosted video and photo URLs still have to be HTTPS on a domain verified for your TikTok developer app.
  • Connecting another TikTok account now always shows TikTok's own consent screen. An already signed-in session used to be approved silently, which could reconnect the same creator when you meant to add a different one.

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
  • An Instagram On Mention trigger reports who wrote the comment. When Meta's notification carried only IDs, NoClick read the comment back to fill in the rest but did not ask for its author, so data.author came back empty and author_available was false even when the commenter's username was there to be read. Mentions in captions were unaffected, and a mention Meta supplies no author for still reports author_available as false.

Start a workflow when Instagram mentions you

Instagram has a new On Mention trigger. It runs your workflow when your connected account is @mentioned in a comment or in the caption of a public post or Reel, including on someone else's post. Both kinds are included by default, and nothing is polled: Instagram pushes each event as it happens.

The event arrives with the text, the author, and links to the media, so you can wire it straight into an HTTP Request step and send it to your own backend. It tells you which kind of mention it was, and marks an author or a media link as unavailable when Meta does not supply one, rather than leaving you to guess. Each event carries an event_id you can use to skip duplicates. Private posts and Story mentions are not covered.

  • On Mention uses the Facebook login connection, which is offered again when you connect Instagram. Mentions on other people's posts reach NoClick through the Facebook Page linked to your Instagram account, so that trigger needs the Page where On Comment and On Message still use the Login connection. An existing mention trigger on a Login connection keeps working for mentions on your own posts, and its Status field now tells you to reconnect it for mentions elsewhere.
  • Connecting Instagram through Facebook finds Pages that belong to a business portfolio. NoClick now asks for the business permissions those Pages require, so an account with full portfolio access is no longer told that no Instagram business account was found. You are asked to approve the extra permissions the next time you connect.
  • Connecting through Facebook reads your whole list of Pages. Accounts with enough Pages to span more than one page of results used to be told nothing was found when the Instagram account sat further down the list.
  • A failed Instagram connection says which of three things went wrong: Facebook granted no Pages at all, it returned a Page with no Instagram account linked, or a Page could not be read. Each message names what to change and which Pages were involved, so you can fix the grant instead of retrying the same sign-in.

Agents read the voice notes and files that arrive with a message

A voice note sent to an agent on WhatsApp, Telegram, or Discord used to arrive as a link the agent could not listen to, so the best it could do was ask the sender to type it out. Audio that arrives with a message is now transcribed, and the transcript becomes part of the turn the agent reads, so it answers what was actually said. A document that arrives the same way has its text pulled out at no cost, and photos and videos keep their link.

  • This covers WhatsApp, Telegram, Discord, attachments on an inbound email, and files you upload in the agent chat. Telegram attachments are also saved to the workflow's resources as the message arrives, so a voice note plays in the run and chat views instead of showing an ID you cannot open.
  • Files shared in a Slack message reach the agent too, up to three per message and 25 MB each. Slack keeps its file links private to the workspace, so NoClick saves a copy to the workflow's resources and gives the agent a link it can fetch.
  • The transcript appears under the audio player in the agent's chat and in the run view, so you can check what the agent heard.
  • Transcription is on by default and can be turned off per agent: Transcribe Voice Messages under Advanced in the node's settings, or Voice transcription under Capabilities in the agent chat's Settings. With it off, the agent is told that a voice message arrived and can ask the sender for text.
  • Transcription costs credits like other AI usage. Audio is transcribed up to 20 MB and 10 minutes, at most three audio files per message. Anything larger, longer, or in a format the transcriber does not accept becomes a note telling the agent to ask the sender for text instead. A Test Run transcribes nothing, because the media it stages is made up.
Improvements and fixes1
  • Opening NoClick from a Shopify store that has not finished installing now shows a Connect your Shopify store page with a Continue Shopify setup button, which opens Shopify's approval step in the same browser tab. It used to start that step inside the frame in your Shopify admin, which Shopify blocks.

Improvements and fixes3
  • A value already saved in a resource field on a tool-provider node now limits the agent to that value. An account, chat, or channel pinned on the node is enforced when the agent calls the tool, not just offered as a default it could replace. Changing it applies on the agent's next turn.

  • 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.

Agents read the event, not the envelope

A trigger wired into an agent used to hand it everything the service sent. A Slack message arrived as the whole delivery around it: verification tokens, authorization blocks, and a second copy of the text in Slack's own block format. The agent now reads a short account of what happened instead: the service and the kind of event, who it came from and where, the content itself, and the IDs it needs to reply in the right place.

  • The triggers agents are usually wired to each write their own account of an event: Slack, Discord, Telegram, WhatsApp, inbound email, Gmail, Outlook, GitHub, GitLab, Linear, Jira, Notion, Trello, Asana, ClickUp, monday, Google Calendar, Forms, Sheets and Drive, Typeform, HubSpot, Shopify, Zendesk, Intercom, Stripe, Calendly, PagerDuty, Sentry, PostHog, Datadog, Honeycomb, Mailgun, Resend, Loops, schedules, and plain webhooks. Any other trigger gets the general shaping: the delivery wrapper opened, empty and internal fields dropped, and the rest held to a readable size.
  • In the agent's chat, a turn that a trigger started is shown as the message that started it, laid out the way that app lays it out, under a caption naming the app, the node's label if you gave it one, and the trigger, for example Slack · Support channel · On app mention. Where a message view does not fit, such as a schedule tick, the account the agent read is shown with the event itself behind an Event payload toggle.
  • The thread takes its name from the event, so the history list reads as the channel or the sender the message came from. Your standing instructions stay in the Message field, rather than appearing in the chat as a message you never sent.
Improvements and fixes1
  • Facebook triggers check every delivery. Verify Token and App Secret are both required now: Meta's subscription handshake completes only when the token matches, and an event is accepted only when its signature checks out against the app secret. Fill in both on any Facebook trigger that is missing one, or it stops receiving events. Verify Token is masked like a password.

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 fixes5
  • A Discord message trigger can watch a whole category. Pick one in Channel and messages in every channel under it, and in the threads opened in those channels, start runs. Categories now read as Name (category) in the picker and are ordered the way Discord's sidebar orders them, so a category is no longer mistaken for a channel and left silent.

  • 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.

  • Connecting Instagram completes again. The connect window now reports success only once the connection is saved, an authorization that Instagram cut off from the page that opened it still lands, and cancelling and clicking Connect again starts a fresh attempt. New connections use Instagram's own sign-in, and Instagram accounts you connected through Facebook keep working as they are.

  • Create Comment Thread and Create Reply on Canva designs post your text again. Both were stopping with an error about a missing message field.

  • A new PostHog connection asks for everything the node uses: reading groups, reading and writing organization members, and writing session recordings. PostHog was dropping those permissions because NoClick declared them under a name PostHog does not read. Reconnect a PostHog credential you connected earlier to pick them up.

Reddit posts come back whole

Get Subreddit Posts reads Reddit directly now. Each post comes back with its full text and HTML, permalink, creation and edit times, score, total comment count, flair, media links, and the community's URL, description, and member count. It still needs no connected Reddit account, and it still runs on your credits.

  • Set Fetch Comments to Yes for a sample of comments and their nested replies, sized by Comments per Post (1 to 100, 10 by default). num_comments stays the total Reddit reports for the post, and comment_count counts what actually came back.
  • Time Period applies to top and controversial sorting on every read. Content Detail and Proxy Mode are gone, and steps you already saved keep running on the new reader.
  • A read that fails or comes back incomplete fails the step, instead of reporting success with nothing in it.
Improvements and fixes1
  • The Instagram and LinkedIn scraping steps fail the same way. A scrape that fails, is cut short, or returns records the node cannot read stops the run and names the reason, rather than handing an empty list to the next step.

Instagram comments and messages start runs

The Instagram node has two new triggers, On Comment and On Message. A comment someone leaves on the connected account's posts, or a direct message they send it, starts a run as it arrives. Both need the Login connection, and Instagram pushes each event to NoClick signed, so nothing is polled.

Leave the filters blank to listen across the whole account, set Media ID on On Comment to watch one post, or Sender ID on On Message to hear one sender. Comments the account wrote itself and echoes of messages it sent are skipped, so a reply your workflow posts cannot start it again. Running either step by hand reports that no event was delivered, because events reach the workflow through the trigger.

Improvements and fixes5
  • Instagram's new Get Comment operation reads one comment by its ID, with the author and the post it sits on. Reading a single comment used to mean listing every comment on the post and picking it out.

  • List Conversations in Instagram takes a Participant ID, the Instagram-scoped ID of one person, and returns the direct message conversation with them instead of the whole list.

  • Publish Photo Post waits for Instagram to finish fetching your image before it publishes. Publishing could fail with a message saying the media was not available, because a photo container is not ready the moment Instagram hands back its ID. Reels already waited this way.

  • Signing in with Instagram's Login option finishes and saves the connection, and NoClick can refresh it later. Connecting could stop with nothing saved.

  • An Instagram Login connection is treated as one everywhere it is used, including when an AI agent calls an Instagram operation as a tool. Its token could be sent to Facebook's API instead, which rejects it.

Improvements and fixes2
  • A Discord Bot Install credential whose bot is still in your server reads as connected again. Working Discord connections were being labeled Disconnected in the credential picker and flagged on the node's Credentials tab, with WhatsApp re-scan instructions under them. A Discord connection the bot really has been removed from is still reported.

  • 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.

Improvements and fixes2
  • A Discord On Channel Message or On Bot Mention trigger scoped to one channel now fires for messages posted in the threads opened in that channel. Discord delivers a thread message under the thread's own id, so a reply inside a thread the agent had started was measured against the channel id and dropped. Leaving Channel empty was the only way to hear those replies.

  • A message from a thread names the thread and the channel it sits under, and tells the agent where to read the thread's earlier messages before it answers. The thread stays its own conversation, as it did before.

Discord messages can start an agent

The Discord node has two new triggers, On Channel Message and On Bot Mention, and a message reaches your workflow within seconds of being posted. Connect Discord with the Discord Bot Install credential so NoClick's bot is in your server, then leave Channel empty to listen to the whole server or pick one channel. Ignore bot messages is on by default, so posts from other bots and webhooks do not wake the agent. Each channel and thread is its own conversation.

  • A Discord message in run results reads as a message: who wrote it, the channel and server by name, mentions as names, and attachments by filename. A slash command reads as its invocation.
  • A Test Run on a Discord-triggered agent ships a written Channel question situation, so the rehearsal looks like a real Discord message instead of a generic sample.
  • An On Slash Command trigger fires only for the server its connection was installed into. A connection made with your own bot token still covers every server that bot is in.
  • A Discord connection reads as disconnected once the bot is removed from its server, in the credential picker, in workflow validation, and to an agent asking about its own workflow, with reconnecting named as the fix.
Improvements and fixes4
  • A Microsoft work or school account in an organization that does not let people approve apps for themselves can now be connected. Under the Connect button on any Microsoft node, an admin clicks approve NoClick for your organization, and Microsoft grants the permissions once for the whole directory. Everyone else connects normally afterwards, and the Need admin approval error now points at that button.

  • 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.

  • Uninstalling NoClick from a Shopify store marks that store's connection as disconnected instead of leaving it looking healthy. Installing again from the Shopify App Store reconnects the same connection, and the permissions NoClick records are the ones Shopify actually granted.

  • The After Cursor field on Shopify's GraphQL product, order, customer, and collection queries works. Those queries also return the page information Shopify sends back, so you can page through more results than one call returns.

Improvements and fixes1
  • A Slack or WhatsApp agent that stopped reacting to messages works again. NoClick caps how many runs one channel or chat can start in a five minute window, so a reply loop with another bot cannot run away, and that counter could stop resetting. Once it did, every later message in that conversation was accepted and then dropped, with no run in Logs to show for it. The counter now rolls over as intended, and one that is already stuck clears itself on the next message.

Earlier