Auto-schedule new Airtable briefs into Motion tasks
When a new client brief or intake row lands in Airtable, create an auto-scheduled Motion task, write the task ID back to the row, and post a heads-up to Slack.
Build a code-based workflow that turns new rows in an Airtable client-intake or creative-brief table into auto-scheduled Motion tasks, with a confirmation posted to Slack. This should be fully deterministic column-to-field mapping, no LLM reasoning.
Trigger: Airtable poll on new_record for the intake table. Let me pick the base, table, and view during setup. Use airtable.list_records as the poll data source.
For each new record, run these steps in order:
1. Map the Airtable row to a Motion task payload: task name from the Brief or Request column; description from the Details column, passed through as GitHub-flavored Markdown; duration as an integer number of minutes from the Estimated minutes column; priority from the Priority column, mapped to one of ASAP, HIGH, MEDIUM, or LOW (fall back to MEDIUM if the value is missing or doesn't match); autoScheduled as an object with deadlineType HARD, startDate = today, and the Deadline column value as the deadline. Send the workspaceId I pick at setup.
2. Call motion.create_task with that payload and capture the returned task id and URL.
3. Call airtable.update_record on the same record and write the Motion task id back into a Motion Task ID column (create the mapping at setup) so the row is traceable to the task.
4. Call slackbot.send_a_message to the ops channel I pick at setup. Include the task title, the requester name from the Requester or Owner column, the priority, the deadline, and a link to the task in Motion.
Skip rules: if the Deadline column is empty, send autoScheduled = null and still create the task. If any required field is missing (title or duration), log the row and skip it without failing the whole batch. Do not retry a row that already has a Motion Task ID written back.
Let me configure at setup time: the Airtable base, table, and view; the exact column names for Brief/Details/Estimated minutes/Priority/Deadline/Requester/Motion Task ID; the priority value mapping; the Motion workspace; and the Slack channel.
Additional information
What does this prompt do?
- Watches your Airtable client-intake or creative-brief table for new rows.
- Creates a matching Motion task with title, details, duration, priority, and a hard deadline, all auto-scheduled onto the assignee's calendar.
- Writes the new Motion task ID back into the same Airtable row so every brief stays traceable to the work.
- Drops a confirmation into your ops Slack channel with the requester name, priority, deadline, and a link to the task.
What do I need to use this?
- An Airtable base with an intake or brief table that includes columns for the request, details, estimated minutes, priority, and deadline.
- A Motion account with the workspace you want new tasks created in.
- A Slack workspace and the channel you want confirmations posted to.
How can I customize it?
- Swap in your own Airtable columns and priority values so the mapping matches how your team already names things.
- Change which Slack channel receives the confirmation, or route different request types to different channels.
- Set your own defaults for briefs that skip a field, like a fallback priority or a soft deadline instead of a hard one.
Frequently asked questions
Does this work on Motion's free plan?
What happens if a row is missing priority or a deadline?
Can I run this for more than one Airtable table?
Will Motion actually put the task on someone's calendar?
Does the Slack message include a link to the task?
Related templates
Stop hand-copying briefs into Motion.
Connect Airtable, Motion, and Slack once, and every new brief lands as an auto-scheduled task with a heads-up in your ops channel.