RelayLink carries a briefing: who it is for, what it is about, the note, the ask, the few fields that make a cold reader able to answer. It does not carry a file.
That is a decision, not a missing button.
What you can do instead
Put the document where the other person already trusts it โ their drive, a repo, a ticket โ and write the address in the note as text. Links arrive defused. They can copy. That is slower than a live attachment. It is also not a blob this server has to store, scan, and later delete.
A screenshot belongs in the same bucket as a markdown image: a URL the recipient's client would fetch. Those are removed. Describe the picture.
If the reply is only a file
People answer a notification from a mail client. Sometimes the body is empty and the PDF is the whole message.
That used to vanish. It was the one case still dropped in silence, and the commonest cause of "I replied, nothing happened."
Now you get a courtesy, with its own wording. It does not say the link expired โ the link is fine; the newer email would fail the same way. It says there was nothing readable to turn into a reply.
Two things about that notice:
- It rides a row. The unique key on the inbound message is what stops one mail producing two notices. A header-only guard is how two systems start mailing each other.
- The row is finished, not failed. A failed row is one a later delivery takes over. There is nothing to retry here except a second copy of the same courtesy.
Automated-looking mail (Auto-Submitted, bulk precedence, a list id) still gets no courtesy. That is how a loop starts.
What this is not asking
It is not asking you to paste a spreadsheet into the note. The note on an approval is 600 characters and refused, not trimmed, because a cut sentence would still go out labelled as yours. A portal compose allows more, and is still prose.
If the work is the file, send the file with ordinary mail, then use RelayLink for the decision about it. The briefing can point. It will not host.