Client email intake desk that files requests into Basecamp

By General Input

Work a queue of client emails, pick the project, list, owner and due date, then file each request as a Basecamp to-do and confirm it with the client.

Integrations

  • Basecamp
  • Gmail

Type

App

Categories

  • Operations
  • Customer Support

Build me an intake desk where client emails turn into Basecamp to-dos, so requests stop living in someone's inbox. I open it, work the queue, and file each real request into the right project. Deciding which email is a genuine client request, which project it belongs to, and what the due date should be is the actual work, so this is a screen a person sits in rather than something that runs on its own.

The main screen is a Queue tab with a thread list on the left and a reading pane on the right. Build the list from Gmail List Messages, filtered by a label or a search query I choose in the app: give me a label dropdown built from Gmail List Labels plus a free text search box, and remember my choice between visits. Sort oldest first so the longest waiting request sits at the top, and show sender, subject, a snippet, and how long it has been waiting. Selecting a row loads the whole conversation with Gmail Get a Thread and renders every message in order with sender, date and body, so I can read the full back and forth before deciding anything.

Next to the email put a filing panel. A project dropdown from Basecamp List Projects. When I pick a project, call Basecamp Get a Project and read the dock it returns to find the todoset id, then fill a to-do list dropdown from Basecamp List To-Do Lists. An assignee dropdown from Basecamp List People, scoped to the selected project. A due date picker with a configurable default, such as five working days out. A to-do title prefilled from the email subject and a description prefilled with the client's request, both editable before I file.

One File button does the work. Create the item with Basecamp Create a To-Do in the selected list, with my title, the chosen assignee, the due date, and a description that carries the client's request plus a link back to the Gmail conversation (https://mail.google.com/mail/u/0/#all/THREAD_ID). Basecamp rich text fields accept only a limited HTML subset (div, h1, br, strong, em, strike, a with href, pre, ol, ul, li, blockquote) and silently strip everything else, so sanitise the email HTML down to that subset before it goes into the description. Drop styles, inline images, tables and tracking markup rather than passing them through, and keep paragraph breaks readable.

Straight after the to-do is created, send a short confirmation on the same email thread with Gmail Reply to a Message, telling the client the request is logged and when it is due. That reply needs the In-Reply-To and References headers plus the threadId so it stays inside the same conversation rather than starting a new one. Show me the reply text before it sends so I can edit it, and keep a default wording I can change in settings.

Track filed state app side, keyed on the Gmail thread id, so nothing is converted twice. Store the thread id, subject, sender, the filed at timestamp and who filed it, the Basecamp project id and name, the to-do list name, the created to-do id and its URL, the assignee, and the due date. Threads that have been filed or skipped drop out of the Queue. If a filed thread turns up again, show a banner linking to the to-do it already became instead of offering a File button. Guard the File button against double clicks so one thread can never produce two to-dos.

Add a Filed tab listing every request that has been filed, newest first, showing the email subject and sender, the Basecamp project and the to-do it became with a link that opens it in Basecamp, the assignee, the due date, and who filed it. Let me search that list by client or subject and filter it by project. In the Queue, also give me a Skip action for threads that are not real requests: it removes the thread from the queue, records it as skipped so it never returns, sends no reply to the client, and can be undone from a Skipped filter.

Handle the practical failures. If the to-do is created but the Gmail reply fails, keep the filing recorded and offer a retry for the reply alone, never recreating the to-do. Show a clear inline message when a project has no to-do lists, when the chosen label or search returns nothing, or when a Basecamp call is rate limited. Page the queue rather than loading an entire mailbox at once.

Related prompts

Explore more prompts
Win back LiveChat visitors whose chats went unansweredChase the paperwork every new client and vendor still owesFile Gmail attachments into storage with names you can findCandidate rediscovery desk for your archived Lever applicantsLaytime and demurrage claim workspace for chartering opsKajabi customer support console for member access fixesRun your application review round on Jotform submissionsRun your nutrition clients' weekly meal plans from one consoleReplace the dispatch whiteboard with a live production boardJob search command center with a self-filling pipeline board