Skip to content
Back to Resources
Guide

The submissions nobody picked up

Skopx Team
August 5, 2026
10 min read

It is Tuesday morning. Priya runs partnerships at a forty person company. She has two windows open.

On the left, Typeform. The "Partner interest" form has 47 responses since the start of the quarter. Each row has a submitted date, an email, a company name, a dropdown for company size, and a long free text field where people describe what they want. Some of those descriptions are two words. Some are four paragraphs about an integration they already built against your API.

On the right, Slack. The #partner-leads channel, where every one of those 47 submissions arrived as a message from the Typeform app, because someone wired that up eleven months ago and it has worked flawlessly ever since. Scroll up far enough and you find them, one after another, in reverse order, interleaved with team chatter about a conference booth.

Priya is not looking for the responses. She has the responses. She is looking for the ones that arrived, sat in the channel, and got nothing. No reply in thread, no emoji, no "I'll take this," no follow up message with the company name in it three days later. She wants a list of submissions where the trail goes cold at the moment of arrival.

Neither window can produce that list.

What Typeform shows on its own

Typeform is a good product and it is genuinely complete on its own side of the line. The Results tab gives you every submission with its answers, the timestamp, completion rate, drop off by question, average time to complete, and which device people filled it in on. You can filter responses by any answer, tag them, mark them as reviewed, and export the lot to CSV. If you want to know which question is killing your completion rate, or how many enterprise sized companies submitted in July, Typeform answers that in about fifteen seconds and answers it correctly.

Where it stops is at the edge of its own system. Typeform knows a response was created and it knows the response was delivered to Slack, because the integration reports back a success. It does not know, and has no mechanism to learn, what happened to that message after delivery. Marking a response "reviewed" inside Typeform is a manual act that describes Typeform, not the channel. In practice nobody on Priya's team marks anything reviewed, because their working surface is Slack, and the person who would do the marking is the same person who never opened Typeform in the first place. The Typeform side of the evidence is complete and it is silent about the only thing being asked.

What Slack shows on its own

Slack is also complete on its side, and Slack search is better than people give it credit for. in:#partner-leads from:@Typeform returns the notification messages. You can filter by date. You can open any one of them and see the thread underneath, the reactions on it, who posted what and when. If Priya wants to check one specific submission, Slack answers that in five seconds.

Where Slack stops is at the shape of the question. Slack search finds messages that match a query. It does not evaluate an absence across a set. There is no way to ask Slack for "messages from this app in this channel with no thread replies and no reactions" because reply count and reaction state are not searchable properties, they are attributes you see once a message is already on your screen. Slack also has no concept of what counts as a pickup. A thumbs up from someone who was clearing notifications is a reaction. A message three days later that says "spoke to the Acme folks, they're a fit" is a pickup, and it is not in a thread, and it does not mention the form at all.

So Priya can check one. She cannot get the list. To get the list by hand she scrolls, opens each of 47 messages, checks for thread replies, checks for reactions, then decides for each one whether what she found actually constitutes someone handling it. That is roughly ninety minutes and she will get it slightly wrong, because by message thirty she is skimming.

Why the gap is structural, not a missing feature

Look at what each half of the evidence actually is.

Typeform sideSlack side
The unitA response recordA message someone wrote
StructureFixed fields, one row per submissionFree text, threads, reactions, no schema
The question it answersDid this arrive, and what did it sayDid a person engage, and what did they conclude
What it cannot seeAnything after deliveryAnything about the form's own fields

The left column is a database. The right column is a conversation. "Was this picked up" is a fact that exists only in the right column, and it exists there as prose, in a thread that says "taking this one" or "already spoke to them last month" or "spam." There is no field for it because a field would require someone to fill it in, and the whole reason the trail goes cold is that nobody is filling anything in.

This is why the answer is not sitting in a Typeform report that Typeform forgot to build, and not in a Slack analytics panel that Slack has not shipped. It is genuinely not in either place. It is in the relationship between them.

It is also worth being precise about why the obvious tools do not close it. Automation platforms like Zapier and Make are excellent and would happily post the submission to Slack, add a row to a sheet, and notify an owner. But they are trigger based: they fire when something happens and push the record one step forward. They are built to move things along, not to look backward over 47 things that already happened and report which ones stalled. Nothing fired when a message got ignored, because being ignored is not an event.

BI tools have the opposite constraint. Looker's conversational analytics and Power BI Copilot are strong at natural language over data, and if you pipe Typeform responses into a warehouse they will answer questions about them well. But the evidence on the Slack side is a sentence somebody typed at 4pm. It is not modelled, it is not in the warehouse, and there is no dimension that captures "Dev said he'd already spoken to them." A BI tool cannot see it because it is not the kind of thing a BI tool connects to.

What the join actually requires

Two pieces, and only one of them is mechanical.

The key. The Typeform notification message in Slack carries the identifying fields in its text: usually the email, often the company name, sometimes a response ID or a link back to the response. That text is the join key. Match the email address in the Slack message body to the email in the Typeform response and you have paired the two halves. This part is deterministic and it either works or it does not, depending on how the notification template was configured. If your notification only posts "New response received," there is nothing to join on, and the honest answer is to fix the notification template first.

The judgement. Once paired, something has to decide what counts as picked up. A thread with one reply that says "?" is not a pickup. A reaction from the person who owns partnerships probably is. A separate message in the channel two days later naming the company, with no thread link at all, definitely is, and no matching rule will find it. That decision requires reading the surrounding conversation and forming a view, the way Priya would if she had ninety minutes. It is a reading task, not a matching task, which is exactly why it has stayed manual.

Answering it with Skopx

Skopx connects to Typeform and Slack, along with nearly 1,000 other tools and your databases, and it reads across them in one pass. Priya types this into chat:

Pull every Typeform response from the Partner interest form since July 1. For each one, find the matching notification in #partner-leads by email address, then check whether anyone engaged with it: thread replies, reactions, or any message in the channel within five days that mentions the same company. List the ones where nobody did, newest first, with the submitted date, company, and what they wrote in the free text field.

What comes back is a list of, say, nine submissions, each with the response detail, a link to the Slack message that went unanswered, and a short note on what was found or not found. Every line cites its sources, so when Priya sees one on the list that she is sure was handled, she clicks through and sees exactly which messages were considered.

If this is a question she will ask every Monday rather than once, the same sentence can become a standing console. Skopx builds internal apps from a description in chat, and the console over this one would show the unpicked submissions as a live table with the response text inline, filters for date range and company size, and a Copy to clipboard for assignment button that packages a row's details for pasting into the channel. Actions in a console are read plus one deliberate write, confirmed by the person clicking, never a background job.

What this does not do

It does not watch the channel. The console answers when you open it or when you ask in chat. There is no alert that fires when a submission goes twenty four hours without a reply, because standing surveillance of a channel is a different thing from a report you pull.

It does not store a review state. Marking something handled here would be a record we created, and internal apps do not create records. If you want handled status to persist, it belongs in Typeform's own review flag or in whatever system you actually run partnerships out of.

It does not replace either product. Typeform stays the form and the response store. Slack stays where the team works. Skopx reads both and answers the question that sits between them, and it is only as good as the notification template: if the Slack message does not carry an identifying field, there is no key, and no amount of reading fixes that.

And the judgement call remains a judgement call. Skopx will read the thread and form a view on whether someone picked it up, and it will show you what it read. Occasionally it will get one wrong, in both directions. The list is a starting point that takes ninety seconds instead of ninety minutes, not a verdict.

Team is $16 per seat per month with 2.3 million AI tokens included. Solo is $5.

Share this article

Skopx Team

The Skopx engineering and product team

Related Articles

Stay Updated

Get the latest insights on AI-powered code intelligence delivered to your inbox.