Changelog

The desktop app

Every release of the Windows app that sends your LinkedIn invitations, newest first.

1.23.5
Oct 2026
  • After you sign in, the browser's button to return to the app now reads "Open Followthroo" instead of a long sentence
1.23.4
Oct 2026
  • An invitation the app has just sent is recorded as sent. On some profiles LinkedIn's "Pending" after Send was read as somebody else's earlier invitation, and the invitation was reported as failed
  • An invitation the page didn't confirm is never sent a second time. The app reloads the profile, and if it shows Pending the invitation counts as sent; otherwise it's reported as unconfirmed instead of being tried again
  • A person who already has an invitation pending from before is still skipped as "already pending", never counted as sent and never failed
1.23.3
Oct 2026
  • When a run finds nothing to send, the app now says why: outside your sending hours it tells you when they are and where to change them, instead of saying nothing is queued
  • Invitations waiting on LinkedIn's weekly limit (100 in any 7 days) are marked as such in the list of who's next
1.23.2
Oct 2026
  • Contact lookups save the phone number from LinkedIn's Contact info; it was being read together with the rest of the panel and thrown away
  • A profile with no phone listed is reported as having none, instead of as having one
1.23.1
Oct 2026
  • Your pairing token is stored encrypted by Windows
  • Pressing Start twice can no longer start two runs
  • The app only connects to FollowThroo over https
1.23.0
Oct 2026
  • Signing in only accepts the sign-in this app started: a sign-in link from anywhere else is refused, so nobody can sign your app in to their workspace
  • Links in the app open in your browser only if they're web links
1.22.1
Oct 2026
  • The new icon inside the app too: the panel's header and the tray icon (with its green dot while a run is going)
1.22.0
Oct 2026
  • A new app icon: the FollowThroo mark on a ticket-blue tile, on the taskbar, the Start menu and the installer
1.21.0
Oct 2026
  • The app’s window has the new FollowThroo look: cream paper, black ink and one blue, with square corners and no shadows. It updates itself the next time it starts
1.20.0
Sep 2026
  • A confirmed LinkedIn invitation is now saved on your computer before FollowThroo reports it, so an internet drop or app restart cannot lose the result or send the invitation again
  • Pending results are synced before the desktop app claims anyone new, and the Activity view clearly says when a successful action is waiting to sync
  • Connection checks only count after LinkedIn's connections page is recognisably loaded; a broken or incomplete page is tried again later instead of hiding future acceptances
1.19.0
Sep 2026
  • A new LinkedIn Campaigns tab shows every campaign's progress — how many people are done, invitations sent, already connected, awaiting acceptance, messages sent and failures — with Pause, Resume and Stop
  • Someone you're already connected with is no longer sent an invitation: the Connect step counts as done and their campaign moves straight on to its message
  • An invitation that's already pending is never sent again, and a message waits until the person accepts
  • If LinkedIn shows a security check or CAPTCHA, the run pauses and waits for you to clear it — the app never clicks through it, and nothing is charged twice
  • A closed browser or a dropped connection no longer marks a person as failed; they're simply picked up again when you resume
  • If the page that opens isn't the person you meant to contact, nothing is sent to them
  • Run logs on your computer are now deleted after 14 days
1.18.2
Sep 2026
  • A brief internet drop while fetching the next person no longer stops the whole run: the app simply tries again
  • Telling FollowThroo that an invitation or message was sent is now retried too, and if it still can't get through, the Activity list says so
  • A LinkedIn message is never sent twice: before typing, the app checks the conversation, and if the message is already there it records it as sent instead of sending it again
1.18.1
Sep 2026
  • Contact lookups now only say "found" once the email and phone are actually saved to the lead in FollowThroo. Before, a lookup could read them off LinkedIn, fail to save them, and still report success
  • If saving fails — no internet, for example — the details are kept on this computer and saved automatically at the start of the next lookup run, instead of being lost
  • The run summary shows how many lookups are still waiting to be saved, and the Activity list says why
1.18.0
Sep 2026
  • Runs in the background: closing the window leaves FollowThroo in the notification area, where its icon shows whether a run is going and offers Open, Run campaigns now, Stop and Quit
  • Starts with Windows, quietly in the notification area
  • Runs campaigns automatically every 20 minutes between 9am and 8pm — sending what's queued and checking for accepted invitations and LinkedIn replies — within the same daily limits as pressing Start. Only for workspaces with "Send invites automatically" turned on
  • All three are switches under Automatic runs in the app, and in the notification-area menu. When something needs you — LinkedIn signed out, or LinkedIn's own limit — it says so once and waits instead of retrying
  • LinkedIn messages now send on LinkedIn's current layout: the chat window LinkedIn draws separately from the page is found, "New message" and Free message windows work, and the Message button on 1st-degree profiles is recognised
  • The "unsupported command-line flag" bar no longer appears across the automation window
  • When a message can't be sent, the saved evidence now includes the chat window itself
1.17.0
Sep 2026
  • Campaign LinkedIn messages now send the way you'd do it by hand: the profile's own Message button, the chat window that opens, your message, Send. They used to go through the AI browser assistant and could sit unsent
  • The chat window has to name the person before anything is typed, so a message can never go into another conversation that was already open at the bottom of the screen
  • Multi-line messages go out whole, including on accounts set to "Press Enter to Send", and an old unsent draft in the box is cleared first
  • A message only counts as sent once it shows in the conversation. One that can't be confirmed is never retried, so it can't go twice
  • Replies on LinkedIn now come into your FollowThroo inbox. At the start of a run the app checks Messaging for answers from people FollowThroo messaged — nobody else's conversations are opened
  • Messages wait while your invitation to that person is still pending, instead of failing because you're not connected yet
  • When a message fails, a screenshot and the chat window's layout are saved beside the run log, so a LinkedIn change can be fixed from evidence
1.16.2
Sep 2026
  • Campaign invitations to 2nd-degree people who share a mutual connection were being skipped as "already connected" — the app read the mutual connection's own 1st-degree tag as the profile's. The degree now comes only from the badge beside the person's name, and a profile showing its own Connect button is never treated as already connected
  • When an invitation is skipped as already connected, the Activity log now names the text on the page that decided it
1.16.1
Sep 2026
  • Added a LinkedIn Campaigns workspace with lead counts, queued work, message readiness, live processed/sent/failed progress, and Start, Pause, Resume, and Stop controls
  • Campaign runs reuse the existing persistent Playwright Chrome profile, deterministic profile verification, pacing, structured errors, and server-side outcome sync
  • A heartbeat-backed Redis lease prevents the same LinkedIn account from running on two desktops; an expired lease and the existing stale-action recovery make interrupted campaigns resumable
  • Web-to-desktop links open and select the requested campaign while keeping hosted content isolated from the local automation bridge
  • Resuming after a crash or a closed window works straight away on the same computer, instead of reporting that the account is already running on another desktop
  • A single dropped connection no longer stops a campaign mid-run; it stops only once this computer has actually lost the run
  • Campaign cards show who is being contacted now, Sent / Failed / Remaining counts, a Completed state, and a shortcut to fix missing messages
1.15.6
Sep 2026
  • Maintenance release of the current LinkedIn automation app, published alongside the task-notification reliability update
1.15.5
Sep 2026
  • Contact info lookups now find the overlay the way connection invitations find the Connect button — through several independent signals, shadow roots included, and by looking again while LinkedIn finishes rendering instead of deciding from a single glance 0.9 seconds after the click
  • A row whose label and value shared one element used to be read as the address "Emailsomeone@example.com" and reported as a success; values are now taken from the row itself, so that lands as a real address or not at all
  • Phone, IM and Connected since are read from the labelled rows LinkedIn actually renders, rather than from class names it stopped using
  • When a lookup still can't read the overlay, the app now saves that overlay's markup and a screenshot beside its run log so the cause can be found instead of guessed at. Both stay on your machine
  • A lookup FollowThroo is going to retry now says so, instead of appearing in the Activity log as a second, separate failure
1.15.4
Sep 2026
  • Profile enrichment now reads LinkedIn's plain labeled Contact info rows (Email, IM, Connected since) even when nested markup concatenates their text
  • The current overlay parser extracts an email from its displayed text as well as a mailto link, fixing current profiles whose modal exposes no legacy Contact-info classes
1.15.3
Sep 2026
  • Profile enrichment now clicks Contact info with the same Playwright action path as invitations and reads LinkedIn's current accessible dialog overlay
  • Removed the lookup AI fallback after a confirmed Playwright click; a visible Contact info overlay is now parsed directly instead of being falsely reported as an unsafe selector failure
  • Activity now distinguishes the Playwright click, overlay wait, overlay route fallback, and extraction result
1.15.2
Sep 2026
  • Profile enrichment now recognises LinkedIn's current plain-text 1st-degree header badge beside pronouns, so verified connections no longer stop before Contact info opens
  • The desktop Activity panel now records each enrichment Playwright step: profile opened, degree evidence, Contact info route used, extraction outcome, and server report
  • Contact-info lookups use the same persistent Playwright Chrome session and guarded profile ownership checks as connection invitations
1.15.1
Sep 2026
  • Invitation limits and note allowance now come from the server for the linked account; the desktop shows the same used, remaining and 20/day safe cap as queue claiming
  • Profile enrichment recognizes current LinkedIn degree badges, accessible labels and Remove Connection evidence, and records clear skipped or selector-failure diagnostics
  • Profile enrichment is available on Grow and Scale only, with the desktop showing an upgrade state instead of claiming lower-tier lookups
1.15.0
Sep 2026
  • Fixed the desktop run failing with an unhelpful fetch failed error after profile enrichment was added; requests now identify the operation and network cause, with retries limited by whether replay is safe
  • Connection invitations and Profile enrichment are now independent lanes with separate queues and Start buttons, so one can never claim or fail the other
  • The narrow side panel is now a full-page Automation workspace. The hosted web app remains available as-is, with Web app, Hide this panel, and the left-arrow rail switching between them
  • Profile enrichment now tries deterministic selectors, LinkedIn's direct Contact info route, and a guarded AI fallback that can only open the profile owner's Contact info control
1.14.1
Sep 2026
  • Once invitations are sent for the day (or none are queued), the app now also shows and starts contact-info lookups waiting to run — the Start button reads "Look up N leads" instead of staying disabled with nothing queued
1.14.0
Sep 2026
  • Once the invite queue is empty or capped for the day, the app now also looks up email and phone for 1st-degree connections waiting on a lookup — paced 6-15 seconds apart, capped at 150 a day, and skipped whenever the invite run stopped for any reason other than running out of things to send
1.13.0
Sep 2026
  • Fixed: signing in with Google or Zoho in the FollowThroo side of the window opened Chrome, signed Chrome in, and left the app signed out. It now goes through your browser the same way the panel's own Sign in button does, and brings you back signed in
  • The Up next list shows whether each invitation carries a note, with a switch to turn it on or off, an Edit link to change what it says, and how many notes are left today
  • When LinkedIn says your free personalised notes are used up, the app leaves that invitation for tomorrow with its note and carries on with the ones that have none. It used to count it as a failure and try the same person again
  • Recolored to match the web app: navy text, the same blue, and a gradient Start button
1.12.0
Sep 2026
  • It now updates itself. A new build downloads in the background — never while invitations are sending — and a small “Restart to update” appears in the panel once it's ready. This is the first version that can do this, so anyone on an earlier build still needs to download once by hand from the LinkedIn page; every build after this one keeps itself current
1.11.0
Sep 2026
  • Checks your connections list at the start of a run to spot invitations that were accepted
  • The download on the LinkedIn page now actually serves 1.11.0. It had been built and described here but the link was still pointing at 1.10.2, before connections-list acceptance detection existed
1.10.2
Sep 2026
  • Fixed connection requests failing on profiles where LinkedIn does not put the person’s name in the usual place. The app worked out which buttons belong to the person you are visiting by starting from their name heading—and on those profiles there is no such heading, so it fell back to reading the name out of the web address and then could attribute nothing at all. It would see three buttons saying “More” (one pinned to the top of the screen, the person’s own, and one that expands their About text), correctly refuse to guess between them, and stop
  • The name is now found wherever it sits on the page, and matched against the web address even when that address runs the name together without punctuation (/in/liannemui against a heading reading “Lianne Mui”). Those two together are what let it pick the person’s own “More” menu and find Connect inside it
  • On a profile that offers Follow rather than Connect, the request now goes through the person’s own menu instead of giving up—and Follow is still never pressed in place of Connect
1.10.1
Sep 2026
  • Fixed: v1.10.0 would not open at all—it stopped on a startup error about a missing file. The installer was built from a list of files written by hand, and two new ones added in that release were never added to the list, so they were left out of the package. The list is now worked out automatically, which is what stops the next new file going missing the same way. If you downloaded v1.10.0, download again—v1.10.1 is the working build
1.10.0
Sep 2026
  • Connection requests are now sent by a fixed, predictable procedure rather than left to the assistant to work out click by click. The app already knows which Connect button is the person’s own; from there, opening it, adding the note and pressing Send is not a judgement call, so it is no longer made as one. The assistant is kept in reserve for a profile laid out in a way the procedure does not recognise—and only before anything has been clicked, so a handover can never turn into a second invitation
  • It will not stand in for Connect with something else. If it cannot find the person’s own Connect—on the card or inside their “More” menu—it stops and says so. Follow is never pressed in its place, a stranger’s Connect is never pressed, and when two Connect buttons cannot be told apart it refuses rather than guess
  • An invitation counts as sent only when the page confirms it—the button turning to “Pending” or a “sent” notice appearing. Pressing Send and hoping is not enough: if the page does not confirm, the run reports that plainly instead of recording a request that may never have gone
  • Every outcome now carries a specific reason—already connected, invitation pending, no Connect found, could not confirm the send, wrong profile—so the record shows what actually happened rather than a bare “failed”
  • Removed a set of shortcuts that could press Connect or Send by matching the word alone, sidestepping the checks that keep an invitation off the wrong person. Every click, including inside the menu and the send dialog, now goes through those checks
1.9.2
Sep 2026
  • Fixed the last thing standing between a written invitation and a sent one. The app filled in the note, went to press Send, and stopped — because the button on that dialog says “Send now”, and it would only accept a button whose wording matched to the letter. Near-misses like that are now understood, so an invitation that has been prepared actually goes out
  • The app now identifies the person’s own Connect button by where it sits on the screen — directly under their name — rather than by how LinkedIn nests the page. On real profiles the nesting gives no usable clue at all: the action row is not inside anything that also holds the name. Geometry is the one signal LinkedIn does not rewrite
  • Fixed: references to buttons from a previous look at the page were never cleared, so an instruction meant for one control could land on whatever had since taken its place. Every look now starts clean
  • Aiming at a point on the screen now requires something that is actually a control there. Previously it could settle on the block of text containing that point — which is how a click once landed on an entire profile — and a run that failed printed that whole profile into the log
1.9.0
Sep 2026
  • Fixed the reason no connection requests were going out at all. The app could see the Connect button perfectly well — it said so, every time — and then refused to press it. The check that stops it inviting the wrong person works by first establishing which button belongs to the profile you are on, and that step had quietly never once succeeded, so every button looked equally unattributable and none of them could be clicked
  • A LinkedIn profile shows several Connect buttons: the person’s own, one stuck to the top of the screen as you scroll, and one for each stranger in “People you may know” and “Others named …”. The app now works out which is which from the heading each one sits under, rather than from the page’s nesting, which LinkedIn changes constantly
  • If it genuinely cannot tell which Connect belongs to the person you asked for, it still refuses — an invitation cannot be recalled. But it now says which buttons it was choosing between and carries on looking, instead of repeating the same refusal until the run gave up on that person
  • Fixed: a connection request aimed by position on the screen could land on somebody else’s card inside “Others named …”, a section whose heading is the same name as the person you are visiting. That path is now checked the same way every other one is
  • Each invitation also starts about ten seconds sooner. The app was waiting for a signal that the profile had finished loading, and that signal depended on the same broken step, so it never arrived and every invite sat through the full wait
1.8.0
Sep 2026
  • Fixed the reason connection requests were not going out. LinkedIn moved Connect into the “…” menu on most profiles, and the app opened that menu and then stopped — it was looking for a button, and the thing in the menu is not a button. It also only looked for the word “Connect”, when what is written there is “Invite <name> to connect”
  • Worse, when it could not find Connect it sent the person a message instead — with your connection-request note as the message. That was meant for people you are already connected to, but “already connected” and “I could not find the button” looked identical to it. Now it tells them apart, and if it genuinely cannot find Connect it stops and says so rather than sending something you did not ask for
  • If someone is already a connection, a connection request is simply skipped. It no longer turns into a direct message unless the campaign step actually asked for one
  • You can see exactly who is about to be invited. The app lists them by name, job and company before you start, and the button now says “Send 14 invitations” rather than “Start sending”. The same list appears in Leads before you queue anyone
  • You can use your computer while invites go out. That was always true — the app drives a separate window and never touches your mouse or keyboard — but Chrome slows down windows you are not looking at, which would have stalled a run. Fixed, and the warning now says to leave that one window alone rather than to leave the computer
  • Fixed: someone who opted out could still be queued for a connection request. They are now excluded everywhere, and shown as opted out in the preview
  • The desktop app now has the whole of FollowThroo in it — leads, campaigns, inbox — beside the sending panel, instead of only the sending panel
  • Sign in with Google, Zoho or your password from the desktop app. Google refuses to work inside apps like this one, so sign-in opens your normal browser and hands you back
  • You no longer paste a pairing token. Once you are signed in the app picks it up by itself
1.0.0
Sep 2026
  • LinkedIn invitations now go out from a Windows app you install, instead of the Chrome extension. The extension could open the profile and fill the box, but getting it to reliably press Send was a fight we kept losing — Chrome shuts a background extension down when it looks idle, which is most of a run spent waiting between invites
  • The app opens a Chrome window and works through your queue on its own, one invite every 45–120 seconds, up to 20 a day. You press Start and walk away
  • It tells you, loudly, not to use the computer while it runs — in the app and on a red bar across the top of every page it visits. Clicking or typing in that window while it works will break the run
  • It stops early rather than pushing through. Twenty sent, LinkedIn saying you have hit the weekly limit, three failures in a row, or a sign-in prompt all end the run and say which it was
  • There is a Test run that does everything except press Send, so you can watch it work once before trusting it with real invitations
  • Pressing Start twice in one afternoon does not send forty. The day's count is remembered
  • Your LinkedIn login stays on your computer — the app keeps its own browser profile that you sign into once. We never receive your password or session