Skip to content

Capturing from your phone

You find a paper on your phone. ALMa isn't installed there, and by the time you're back at your desk you've forgotten it.

The Inbox fixes that: send the link to a Slack channel, and the paper is waiting in ALMa — already in your corpus, already enriched, needing only a decision.

What this is not

Capturing is not saving. A captured paper sits in the Inbox until you triage it, and it does not influence your recommendations while it waits. A link you flick at 8am and discard at noon leaves no trace.

Before you start

Capture needs the Slack plugin: the ALMa app installed in your workspace with the capture scopes, a private channel the bot has been invited to, and that channel named in Settings. That is one page, done once:

→ Slack

Using it

Post a link. That's the whole workflow.

ALMa checks every five minutes and reacts on your message so you know what happened without opening the app:

Reaction Meaning
📥 Captured — it's in your Inbox
📚 You already have this in your Library
❓ Couldn't identify a paper — ALMa replies in-thread with why
⚠️ Something failed upstream; it'll retry

A successful capture is otherwise silent. ALMa only speaks up when something needs you.

Tune the five minutes with INBOX_SWEEP_INTERVAL_MINUTES (see Configuration); 0 turns the automatic check off and leaves only the Check capture now button on the Slack plugin card.

What it recognises

  • DOIs in any form — bare, doi:10.…, https://doi.org/…
  • arXiv links and ids (arxiv.org/abs/…, arXiv:2401.12345)
  • bioRxiv links
  • OpenAlex work ids
  • A plain publisher URL, as a last resort

Type whatever you like around the link — prose is ignored. A message with no usable identifier is kept, not silently dropped, and Home tells you about it.

Triaging

Captured papers appear in the Inbox section on Home, newest first. The section disappears entirely when it's empty — it notifies, it doesn't nag.

Each card carries the normal actions:

Action What it does
Save / Like / Love Moves it into your Library (3★ / 4★ / 5★)
Dislike Records a negative preference
Not now (the ✕) Removes it from the Inbox, keeps it in your corpus, and records no opinion at all

That last one matters. "Not now" is not a judgement — it means "I looked, and there's nothing to do here." It teaches ALMa nothing. If you want ALMa to learn that a paper is wrong for you, use Dislike.

The Inbox is a buffer, not a shelf. Papers aren't meant to accumulate there.

While a paper waits

It's a full member of your corpus from the moment it arrives:

  • its abstract and citation data are filled in automatically;
  • it gets a semantic embedding, so it counts in search and in the structure Discovery reads;
  • if the same paper later arrives through your Feed, ALMa recognises it rather than showing it twice.

The one thing it does not do is affect Discovery. Your recommendations are built only from your Library, so an untriaged capture can't skew them.

Troubleshooting

Nothing happens when I post. Check the bot is actually in the channel (/invite @ALMa), that the channel name in Settings matches, and that you reinstalled the Slack app after adding scopes. Then press Check capture now — it reports what it found. The Slack page has the error-by-error table.

ALMa reacted ❓. It couldn't find a paper in the message. The in-thread reply says why. News articles, blog posts and Google Docs links have no DOI and won't resolve.

I posted the same link twice. Only one paper is created. Every message is keyed by its Slack timestamp, so re-posting — or ALMa re-checking — can't duplicate it.

Can I use email / Telegram instead? Not yet, but the capture layer is channel-agnostic by design: a new channel is a small adapter, not a new pipeline. See Building an integration.

Why not a self-DM? A Slack bot can't read the DM you have with yourself — only a user token can, and that would let ALMa read your entire Slack. A private channel keeps the permissions narrow.