<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: My Little Indie Studio</title>
    <description>The latest articles on DEV Community by My Little Indie Studio (@pheomenon).</description>
    <link>https://dev.to/pheomenon</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4021729%2F1869becc-ad9a-49ee-9cd1-2ec3ed9c2688.png</url>
      <title>DEV Community: My Little Indie Studio</title>
      <link>https://dev.to/pheomenon</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pheomenon"/>
    <language>en</language>
    <item>
      <title>Getting Started with DepFlow: Add the Missing Rule Actions to Asana</title>
      <dc:creator>My Little Indie Studio</dc:creator>
      <pubDate>Wed, 22 Jul 2026 13:13:19 +0000</pubDate>
      <link>https://dev.to/pheomenon/etting-started-with-depflow-add-the-missing-rule-actions-to-asana-264b</link>
      <guid>https://dev.to/pheomenon/etting-started-with-depflow-add-the-missing-rule-actions-to-asana-264b</guid>
      <description>&lt;p&gt;Asana rules are great until you hit their edges. You can trigger on a task being added, move it, set a due date. But there are a few things the rule builder simply cannot do. It cannot set a dependency between tasks. It cannot duplicate a task. It cannot assign to the least busy person, or post a comment two days from now.&lt;/p&gt;

&lt;p&gt;DepFlow adds those actions. You install it once from the Asana App Directory, and from then on it shows up right inside your Rules builder, next to Asana's own actions. Nothing to run on your side, no separate app to open.&lt;/p&gt;

&lt;p&gt;This is the start-here guide. By the end you will have DepFlow connected and your first rule live.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install and connect
&lt;/h2&gt;

&lt;p&gt;You do this once, and it covers your whole workspace.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;a href="https://asana.com/apps/depflow" rel="noopener noreferrer"&gt;DepFlow listing on the Asana App Directory&lt;/a&gt; and click &lt;strong&gt;Add to Asana&lt;/strong&gt;. (In Asana you can also go to your profile → &lt;strong&gt;Apps&lt;/strong&gt;, or visit app.asana.com/-/apps, and search for &lt;strong&gt;DepFlow&lt;/strong&gt;.)&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add to Asana&lt;/strong&gt;, then on the Asana consent screen click &lt;strong&gt;Allow&lt;/strong&gt;. This grants DepFlow permission to create dependencies (and duplicate, assign, and comment) on your behalf. It only ever acts inside the workspace you connect.&lt;/li&gt;
&lt;li&gt;If your account has several workspaces, pick the one you want DepFlow to run in. One connection covers that whole workspace. Your teammates do not each need to install it.&lt;/li&gt;
&lt;li&gt;That is it. There is nothing to install locally and no server to set up. DepFlow now lives inside Asana's &lt;strong&gt;Rules&lt;/strong&gt; builder.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftcr6n846bj1fm3wd6b6g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftcr6n846bj1fm3wd6b6g.png" alt="The Asana " width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you approve, DepFlow is connected. You will get a short &lt;strong&gt;welcome email&lt;/strong&gt; confirming the connection to your workspace. It lays out what is free right now (all the dependency modes plus the full Duplicate task, up to 100 runs a month) and what PRO adds (unlimited runs, Smart assign, Scheduled comment). No panels or buttons get added to your tasks. DepFlow appears in exactly one place: the Rules builder.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your first rule
&lt;/h2&gt;

&lt;p&gt;Every DepFlow feature follows the same four steps. Start with the simplest one: chaining a task's subtasks so they run in order.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Rules&lt;/strong&gt; in your project (Customize → Rules → Add rule).&lt;/li&gt;
&lt;li&gt;Pick a trigger. The most flexible is &lt;strong&gt;Run manually&lt;/strong&gt;, which puts a rule button on every task so you fire it whenever you want. Any Asana trigger works, though. For fully automatic wiring, try &lt;strong&gt;Task is added to this project&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add action&lt;/strong&gt;, search &lt;strong&gt;DepFlow&lt;/strong&gt;, and choose &lt;strong&gt;Wire up subtasks&lt;/strong&gt;. In its small form, pick the mode &lt;strong&gt;Chain subtasks&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Publish&lt;/strong&gt; the rule. Now open a task that has subtasks, click the rule button, and watch each subtask line up behind the one before it. Draft blocks Edit, Edit blocks SEO, SEO blocks Publish.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is the whole pattern: open Rules → Add action → DepFlow → pick an action → configure → Publish.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1f6a9qdh7j2rcqrdhcel.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1f6a9qdh7j2rcqrdhcel.png" alt="The Asana Rules builder with **Add action** open and the DepFlow actions listed alongside Asana's own." width="799" height="649"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A few things hold for every DepFlow action:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Re-running is safe.&lt;/strong&gt; Firing the same rule twice on the same task never duplicates anything. Asana ignores links that already exist, and DepFlow deduplicates its own work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rules skip quietly, they do not hard-fail.&lt;/strong&gt; If something cannot be wired (no PRO, quota reached, a section too large), DepFlow skips and records why. Your rule never turns red.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DepFlow only ever adds.&lt;/strong&gt; It never deletes, completes, reassigns, or edits your tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your token is encrypted&lt;/strong&gt; and never leaves the server. DepFlow acts only inside the one workspace you connect.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The six actions
&lt;/h2&gt;

&lt;p&gt;Here is the full set, one line each, with links to the deep dives.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Wire up subtasks.&lt;/strong&gt; Chain a task's subtasks in order, or make the parent wait for all of them, or make the subtasks wait for the parent. See &lt;a href="https://dev.to/pheomenon/how-to-automatically-chain-subtasks-in-asana-no-more-manual-dependencies-2kl7"&gt;Chain subtasks&lt;/a&gt;, &lt;a href="https://dev.to/pheomenon/make-an-asana-parent-task-wait-for-all-its-subtasks-3hm9"&gt;Parent waits for all subtasks&lt;/a&gt;, and &lt;a href="https://dev.to/pheomenon/gate-a-whole-checklist-behind-one-approval-in-asana-3j42"&gt;Subtasks wait for parent&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add dependency.&lt;/strong&gt; Link the triggering task to specific tasks, to the previous task in its section, or to a whole other section. See &lt;a href="https://dev.to/pheomenon/turn-an-asana-section-into-a-sequential-pipeline-auto-chained-2h5l"&gt;Sequential pipeline in a section&lt;/a&gt; and &lt;a href="https://dev.to/pheomenon/block-qa-until-build-is-done-phase-gates-in-asana-53ae"&gt;Phase gate between sections&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Duplicate task.&lt;/strong&gt; Copy the triggering task on a rule: choose what carries over, where it lands, its due date, and its name. See &lt;a href="https://dev.to/pheomenon/how-to-automatically-duplicate-a-task-in-asana-10h5"&gt;Duplicate task&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart assign&lt;/strong&gt; (PRO). Assign to the least-loaded teammate or by round-robin, from a team or the whole workspace, skipping anyone out of office. See &lt;a href="https://dev.to/pheomenon/how-to-auto-assign-asana-tasks-to-your-least-busy-teammate-or-round-robin-3e16"&gt;Smart assign&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scheduled comment&lt;/strong&gt; (PRO). Post a comment on the task later, after a delay or on a chosen date. Asana rules cannot wait like that. See &lt;a href="https://dev.to/pheomenon/how-to-post-a-comment-later-in-asana-scheduled-reminders-that-actually-fire-3136"&gt;Scheduled comment&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Escalate&lt;/strong&gt; (PRO). An SLA timer that checks before it acts: wait, re-check the task, and only nudge (comment, reassign, add a follower) if it is still stalled. See &lt;a href="https://dev.to/pheomenon/how-to-build-an-sla-escalation-timer-in-asana-dff"&gt;Escalate&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Want the big picture on why these are the actions Asana leaves out? See &lt;a href="https://dev.to/pheomenon/5-asana-rule-actions-that-dont-exist-and-how-to-add-them-3672"&gt;The five missing rule actions&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Free vs PRO
&lt;/h2&gt;

&lt;p&gt;DepFlow has one flat price. There is no per-seat charge, and unlimited seats are included. One subscription covers every member and every project in the connected workspace.&lt;/p&gt;

&lt;p&gt;Here is the split:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free.&lt;/strong&gt; Every dependency mode (chain, parent waits, subtasks wait, previous-in-section, section-to-section) and the full &lt;strong&gt;Duplicate task&lt;/strong&gt; (every copy option, due-date changes, another destination project, name templates). Up to &lt;strong&gt;100 rule runs per month&lt;/strong&gt;, shared across the whole workspace.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PRO.&lt;/strong&gt; Removes the monthly cap (unlimited runs) and adds the three PRO-only actions: &lt;strong&gt;Smart assign&lt;/strong&gt;, &lt;strong&gt;Scheduled comment&lt;/strong&gt;, and &lt;strong&gt;Escalate&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1nf5eddk5b0pfovhlsli.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1nf5eddk5b0pfovhlsli.png" alt="The DepFlow dashboard on the Free plan: the " width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Install free from the Asana App Directory, and try Chain subtasks on your next project. When you are ready for the PRO actions, one flat price unlocks the whole set.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Get DepFlow:&lt;/strong&gt; it is free on the &lt;a href="https://asana.com/apps/depflow" rel="noopener noreferrer"&gt;Asana App Directory&lt;/a&gt;. Install it once, add a rule, and it does the wiring the moment your rule fires. More at &lt;a href="https://mylittleindiestudio.com/depflow" rel="noopener noreferrer"&gt;mylittleindiestudio.com/depflow&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>asana</category>
      <category>productivity</category>
      <category>automation</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>5 Asana Rule Actions That Don't Exist, and How to Add Them</title>
      <dc:creator>My Little Indie Studio</dc:creator>
      <pubDate>Wed, 22 Jul 2026 13:08:19 +0000</pubDate>
      <link>https://dev.to/pheomenon/5-asana-rule-actions-that-dont-exist-and-how-to-add-them-3672</link>
      <guid>https://dev.to/pheomenon/5-asana-rule-actions-that-dont-exist-and-how-to-add-them-3672</guid>
      <description>&lt;p&gt;You already lean on Asana Rules. A task lands in a project, a rule moves it, tags it, maybe spins up a checklist of subtasks. That part works.&lt;/p&gt;

&lt;p&gt;Then the rule finishes, and you take over by hand. You open each new subtask and set what waits on what. You duplicate the same task for the third client this week. You decide, again, whose turn it is to pick up the next request. The rule did the easy 80%. You do the structural 20%, every single time.&lt;/p&gt;

&lt;p&gt;Here are five things Asana Rules genuinely can't do, no matter how you configure them. Each one is a real gap, and each has a fix. DepFlow adds them as native rule actions that sit right next to Asana's own.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6l21pdakw19obfar3ktn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6l21pdakw19obfar3ktn.png" alt="Asana's " width="799" height="649"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Set dependencies on rule-created subtasks
&lt;/h2&gt;

&lt;p&gt;A rule spawns "Draft → Edit → SEO → Publish" under &lt;strong&gt;Publish blog post&lt;/strong&gt;, and Asana drops them in flat, everything startable at once. To make them run in order, you open each subtask and mark "waiting on" by hand. Asana Rules can't create a single dependency for you.&lt;/p&gt;

&lt;p&gt;That's what the &lt;strong&gt;Wire up subtasks&lt;/strong&gt; action fixes. Pick &lt;strong&gt;Chain&lt;/strong&gt; and, the moment those subtasks appear, each one waits for the one before it: a strict sequence, zero clicks. &lt;strong&gt;Parent waits for all subtasks&lt;/strong&gt; and &lt;strong&gt;Subtasks wait for parent&lt;/strong&gt; are the two other modes. Asana dependencies warn, they don't hard-lock, and DepFlow sets them for you.&lt;/p&gt;

&lt;p&gt;Reach for it whenever your rules or templates generate a checklist that must happen in order.&lt;/p&gt;

&lt;p&gt;Read the deep-dive: &lt;a href="https://dev.to/pheomenon/how-to-automatically-chain-subtasks-in-asana-no-more-manual-dependencies-2kl7"&gt;How to Automatically Chain Subtasks in Asana&lt;/a&gt;, plus the two milestone modes, &lt;a href="https://dev.to/pheomenon/make-an-asana-parent-task-wait-for-all-its-subtasks-3hm9"&gt;Parent waits for all subtasks&lt;/a&gt; and &lt;a href="https://dev.to/pheomenon/gate-a-whole-checklist-behind-one-approval-in-asana-3j42"&gt;Subtasks wait for parent&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Sequential and section-level phase gates
&lt;/h2&gt;

&lt;p&gt;Sometimes your steps aren't subtasks, they're tasks in a section. &lt;strong&gt;Employee onboarding&lt;/strong&gt;: Paperwork → Accounts → Training → First assignment. You want each to wait for the one above it, and you want the whole &lt;strong&gt;QA&lt;/strong&gt; section gated behind &lt;strong&gt;Build&lt;/strong&gt;. By hand that's dozens of "waiting on" clicks, redone every time the list changes.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Add dependency&lt;/strong&gt; action handles both. Target &lt;strong&gt;The previous task in the section&lt;/strong&gt; to chain a whole column top to bottom, or &lt;strong&gt;All tasks in another section&lt;/strong&gt; to gate one phase behind another. One run wires the full ladder, and it stays correct as you reorder tasks (just re-run).&lt;/p&gt;

&lt;p&gt;This one earns its keep on phase-based projects and process sections: a hiring pipeline, a manufacturing/QA line, or Discovery → Build → Launch.&lt;/p&gt;

&lt;p&gt;Read the deep-dive: &lt;a href="https://dev.to/pheomenon/turn-an-asana-section-into-a-sequential-pipeline-auto-chained-2h5l"&gt;Chain a whole section, top to bottom&lt;/a&gt; and &lt;a href="https://dev.to/pheomenon/block-qa-until-build-is-done-phase-gates-in-asana-53ae"&gt;Gate one phase behind another&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Duplicate a task
&lt;/h2&gt;

&lt;p&gt;Every new client, the same checklist. So you open the task, hit ⋯ → Duplicate, rename it, drag it into the right project, then do it again for the next one. Asana Rules can duplicate a &lt;em&gt;rule&lt;/em&gt; or a &lt;em&gt;project&lt;/em&gt;. There is no rule action that duplicates a &lt;em&gt;task&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Enter the &lt;strong&gt;Duplicate task&lt;/strong&gt; action. On a trigger, it creates a real, independent copy. You choose what carries over (subtasks, assignee, description, attachments), where it lands (same section or a specific project), how the due date shifts, and a name built from placeholders like &lt;code&gt;{original_name} ({date})&lt;/code&gt;. No more "Copy of Copy of."&lt;/p&gt;

&lt;p&gt;It fits recurring work and intake patterns: a weekly report, a per-client onboarding checklist, or a triaged request copied from Inbox into Backlog.&lt;/p&gt;

&lt;p&gt;Read the deep-dive: &lt;a href="https://dev.to/pheomenon/how-to-automatically-duplicate-a-task-in-asana-10h5"&gt;How to Automatically Duplicate a Task in Asana&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Smart, balanced assignment
&lt;/h2&gt;

&lt;p&gt;Incoming requests land on whoever didn't look away fast enough, so one person has 40 open and everyone else has 3. An Asana rule &lt;em&gt;can&lt;/em&gt; assign, but only to one fixed, hard-coded person. It can't balance load, take turns, or skip someone on leave.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Smart assign&lt;/strong&gt; action closes that gap. Pick a pool (a team, or everyone in the workspace) and a strategy. &lt;strong&gt;Least loaded&lt;/strong&gt; hands the task to whoever has the fewest open tasks; &lt;strong&gt;Round-robin&lt;/strong&gt; rotates fairly in turn. Either way it skips anyone marked out of office, then picks them back up when they return.&lt;/p&gt;

&lt;p&gt;If you run Asana as a request queue, this is your action: support, ops, a review roster, or an on-call list.&lt;/p&gt;

&lt;p&gt;Read the deep-dive: &lt;a href="https://dev.to/pheomenon/how-to-auto-assign-asana-tasks-to-your-least-busy-teammate-or-round-robin-3e16"&gt;How to Auto-Assign to the Least Busy Person in Asana&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Time-delayed comments and SLA escalation
&lt;/h2&gt;

&lt;p&gt;A task stalls, and two days later you meant to nudge it, and forgot. Asana posts a comment the instant a rule fires. "Two days later," it simply can't do. There's no wait step, and no way to check back and escalate only if the task is still stuck.&lt;/p&gt;

&lt;p&gt;Here DepFlow gives you two PRO actions. &lt;strong&gt;Scheduled comment&lt;/strong&gt; holds a comment and posts it later, after a delay or on a chosen date. It's the timer Asana doesn't give you. &lt;strong&gt;Escalate&lt;/strong&gt; is the SLA timer: it waits, re-checks the task, and only nudges (comment, reassign, or add a follower) if it's &lt;em&gt;still&lt;/em&gt; stalled. Nothing fires on tasks that already moved.&lt;/p&gt;

&lt;p&gt;Anyone tracking SLAs, follow-ups, launch-day reminders, or "if this is still open in 2 days, ping the owner" wants these.&lt;/p&gt;

&lt;p&gt;Read the deep-dive: &lt;a href="https://dev.to/pheomenon/how-to-post-a-comment-later-in-asana-scheduled-reminders-that-actually-fire-3136"&gt;Post a comment later in Asana&lt;/a&gt; and &lt;a href="https://dev.to/pheomenon/how-to-build-an-sla-escalation-timer-in-asana-dff"&gt;Build an SLA / escalation timer in Asana&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing, and how to get it
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Chain subtasks is free, forever&lt;/strong&gt;, along with the rest of the dependency modes and the full Duplicate task action, up to 100 runs per month per workspace. One PRO subscription lifts that cap and unlocks every other action: Smart assign, Scheduled comment, and Escalate.&lt;/p&gt;

&lt;p&gt;Everything DepFlow creates is a normal, native Asana dependency. You can see, edit, or delete it exactly like a hand-made one. Nothing locks you in.&lt;/p&gt;

&lt;p&gt;Install DepFlow free from the &lt;a href="https://asana.com/apps/depflow" rel="noopener noreferrer"&gt;Asana App Directory&lt;/a&gt;, add one rule to your next project, and stop doing structural work a rule should do.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Get DepFlow:&lt;/strong&gt; it is free on the &lt;a href="https://asana.com/apps/depflow" rel="noopener noreferrer"&gt;Asana App Directory&lt;/a&gt;. Install it once, add a rule, and it does the wiring the moment your rule fires. More at &lt;a href="https://mylittleindiestudio.com/depflow" rel="noopener noreferrer"&gt;mylittleindiestudio.com/depflow&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>asana</category>
      <category>productivity</category>
      <category>automation</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Build an SLA / Escalation Timer in Asana</title>
      <dc:creator>My Little Indie Studio</dc:creator>
      <pubDate>Wed, 22 Jul 2026 13:00:53 +0000</pubDate>
      <link>https://dev.to/pheomenon/how-to-build-an-sla-escalation-timer-in-asana-dff</link>
      <guid>https://dev.to/pheomenon/how-to-build-an-sla-escalation-timer-in-asana-dff</guid>
      <description>&lt;p&gt;A support ticket lands in your queue. Someone should touch it within two days. Two days pass. Nobody did. Asana said nothing, because a task sitting still is invisible to it. A stalled task never nags, never escalates. It just waits with you.&lt;/p&gt;

&lt;p&gt;You know this pattern from bug reports, onboarding tasks, approval requests. Each one has a clock on it in your head, but not in your tool.&lt;/p&gt;

&lt;p&gt;Native Asana rules can't build this. Here is why, and then the one rule that can.&lt;/p&gt;

&lt;h2&gt;
  
  
  The manual pain
&lt;/h2&gt;

&lt;p&gt;Try to build "wait two days, then nudge if it's still open" with native Asana rules. You cannot.&lt;/p&gt;

&lt;p&gt;Here is why.&lt;/p&gt;

&lt;p&gt;An Asana rule fires &lt;strong&gt;once&lt;/strong&gt;, at the moment its trigger happens. There is no timer step. You cannot say "wait, then do something." So the instant a ticket is created, any comment you attach fires &lt;strong&gt;right then&lt;/strong&gt;, when the ticket is fresh and nobody is late. It is noise, not a nudge.&lt;/p&gt;

&lt;p&gt;And even if you could delay it, native rules never &lt;strong&gt;re-check&lt;/strong&gt; the task. They act on the task's state at trigger time, not two days later. A rule has no way to know whether the ticket is still open or was quietly closed an hour ago. It would nudge either way.&lt;/p&gt;

&lt;p&gt;So teams fall back to humans:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Someone eyeballs the queue every morning looking for stale tickets.&lt;/li&gt;
&lt;li&gt;Someone keeps a private "chase these up" list.&lt;/li&gt;
&lt;li&gt;Someone sets a personal reminder and forgets it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is a person doing a computer's job, and missing things when they are busy.&lt;/p&gt;

&lt;h2&gt;
  
  
  The one rule
&lt;/h2&gt;

&lt;p&gt;DepFlow adds an &lt;strong&gt;Escalate&lt;/strong&gt; action to Asana's rule builder. It is a deferred, conditional escalation. In plain words, it &lt;strong&gt;waits&lt;/strong&gt;, then it &lt;strong&gt;re-checks&lt;/strong&gt; the task, and it only acts &lt;strong&gt;if the task is still stuck&lt;/strong&gt;. If the ticket already moved, Escalate does nothing and records why.&lt;/p&gt;

&lt;p&gt;Escalate is a &lt;strong&gt;PRO&lt;/strong&gt; action.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3kl4zhaw3mxhxo0zej1d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3kl4zhaw3mxhxo0zej1d.png" alt="The " width="799" height="649"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Our scenario
&lt;/h3&gt;

&lt;p&gt;A support ticket SLA. When a ticket lands, if it is still open two days later, post a nudge comment and add the team lead as a follower so they can see it without taking it over.&lt;/p&gt;

&lt;p&gt;Here is the setup.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the project's rules and create a new rule (or open an existing one).&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;trigger&lt;/strong&gt; you already use for incoming tickets. For example, "Task added to this project," or "Task moved to section: Incoming."&lt;/li&gt;
&lt;li&gt;Add an &lt;strong&gt;action&lt;/strong&gt; and pick &lt;strong&gt;Escalate&lt;/strong&gt; from the DepFlow actions.&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;When should DepFlow re-check?&lt;/strong&gt;, choose &lt;strong&gt;After a delay&lt;/strong&gt;. Set the &lt;strong&gt;Delay amount&lt;/strong&gt; to &lt;code&gt;2&lt;/code&gt; and the &lt;strong&gt;Delay unit&lt;/strong&gt; to &lt;strong&gt;Days&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;Only escalate if the task is STILL…&lt;/strong&gt;, tick &lt;strong&gt;Not completed&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;What should DepFlow do if the condition(s) hold?&lt;/strong&gt;, tick &lt;strong&gt;Post a reminder comment&lt;/strong&gt; and &lt;strong&gt;Add a follower&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Reminder comment&lt;/strong&gt; field, type your nudge, for example: &lt;code&gt;This ticket is still open after 2 days. Please take a look.&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Follower to add (email or "me")&lt;/strong&gt; field, type the lead's email, for example &lt;code&gt;lead@yourcompany.com&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Save the rule.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is the whole thing. From now on, every ticket that hits the trigger gets its own two-day clock, and only the ones that are still open when the clock runs out get nudged.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fspi5tyc0op7u1pa0hd36.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fspi5tyc0op7u1pa0hd36.png" alt="A support ticket in Asana two days after it was created, with the DepFlow reminder comment in the activity feed and the team lead added as a follower." width="799" height="649"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get
&lt;/h2&gt;

&lt;p&gt;An SLA timer that runs itself, without the morning queue-scrubbing or the personal reminders. Tickets that get handled in time are left completely alone, because Escalate looks before it acts. Tickets that stall get chased automatically, on the exact clock you set.&lt;/p&gt;

&lt;p&gt;The wording on each part of the form matters, so here is what each one does.&lt;/p&gt;

&lt;h3&gt;
  
  
  The timing: when should DepFlow re-check?
&lt;/h3&gt;

&lt;p&gt;One dropdown, &lt;strong&gt;When should DepFlow re-check?&lt;/strong&gt;, sets the timer, and the matching fields appear underneath it. There are two modes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After a delay.&lt;/strong&gt; You set a &lt;strong&gt;Delay amount&lt;/strong&gt; and a &lt;strong&gt;Delay unit&lt;/strong&gt; (Minutes, Hours, or Days). The re-check runs that long after the rule fires. In our scenario that is 2 Days after the ticket lands.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Relative to the task's due date.&lt;/strong&gt; You set an offset (a &lt;strong&gt;How far from the due date?&lt;/strong&gt; amount and a &lt;strong&gt;Due-date offset unit&lt;/strong&gt; of Minutes, Hours, or Days) and a direction: &lt;strong&gt;Before the due date&lt;/strong&gt;, &lt;strong&gt;After the due date&lt;/strong&gt;, or &lt;strong&gt;On the due date&lt;/strong&gt;. So you can re-check "1 day after it was due" or "on the due date itself." Set the offset to &lt;code&gt;0&lt;/code&gt; with &lt;strong&gt;On the due date&lt;/strong&gt; to check on the due date exactly. If the due date is already in the past when the rule fires, the check runs right away.&lt;/p&gt;

&lt;p&gt;You can schedule a re-check up to &lt;strong&gt;30 days&lt;/strong&gt; ahead. Anything further out is rejected when the rule runs and recorded with a clear reason, so nothing gets silently lost. Times are UTC.&lt;/p&gt;

&lt;h3&gt;
  
  
  The condition: only escalate if the task is STILL…
&lt;/h3&gt;

&lt;p&gt;This is the part native Asana cannot do. At check time, DepFlow re-reads the task and only escalates if the condition(s) you ticked are &lt;strong&gt;all still true right then&lt;/strong&gt;. You can tick one or more of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Not completed&lt;/strong&gt; (the task has not been marked done).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unassigned&lt;/strong&gt; (nobody has picked it up).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;In the same section it was in when the rule fired&lt;/strong&gt; (it has not been dragged onward, for example still sitting in "To do" rather than moved to "In progress").&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Past its due date&lt;/strong&gt; (the due date has passed and it is still open).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This re-read is the whole point. Escalate reflects the task's state &lt;strong&gt;at check time&lt;/strong&gt;, not at rule time. A ticket that quietly got resolved never gets a needless nudge.&lt;/p&gt;

&lt;h3&gt;
  
  
  The escalations: what should DepFlow do if the condition(s) hold?
&lt;/h3&gt;

&lt;p&gt;If (and only if) the condition still holds, DepFlow runs the escalations you ticked. They run together. You can pick one or more of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Post a reminder comment.&lt;/strong&gt; A plain-text comment you write in the rule ("Reminder comment" field). No @mentions or variables in this version; it posts exactly as written.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reassign (Smart assign).&lt;/strong&gt; Hand the task to someone using the same engine as &lt;a href="https://dev.to/pheomenon/how-to-auto-assign-asana-tasks-to-your-least-busy-teammate-or-round-robin-3e16"&gt;Smart assign&lt;/a&gt;. You pick &lt;strong&gt;Anyone in the workspace&lt;/strong&gt; or &lt;strong&gt;A specific team&lt;/strong&gt; as the pool, and a strategy: &lt;strong&gt;Fewest open tasks&lt;/strong&gt; or &lt;strong&gt;Round-robin (rotate fairly)&lt;/strong&gt;. Anyone out of office is skipped.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add a follower.&lt;/strong&gt; Loop a specific person in by email, or type &lt;code&gt;me&lt;/code&gt; for the connected account, so a lead sees the task without taking it over. That is the one we used for the team lead above.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the condition does &lt;strong&gt;not&lt;/strong&gt; hold at check time, DepFlow does nothing and records why (for example, "still not completed" was ticked but the task was completed). Nothing fires on tasks that already moved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Honest notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Escalate is a PRO action.&lt;/strong&gt; On a Free workspace the form shows a note, and if a rule was set up under PRO and the license later lapses, the run is skipped (nothing is scheduled) and recorded as "skipped, PRO required." The rule is never broken.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The escalation is conditional.&lt;/strong&gt; It only fires if the task is still stuck at check time. This is by design and it is what makes Escalate safe to leave running.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reassign uses Smart assign semantics,&lt;/strong&gt; which means anyone out of office is skipped when picking the new assignee.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One PRO subscription unlocks the whole DepFlow set,&lt;/strong&gt; not just Escalate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No new permissions.&lt;/strong&gt; Escalate reuses what DepFlow already does: comment on a task, set an assignee, add a follower. If Smart assign and Scheduled comment already work in your workspace, Escalate will too.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Related actions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://dev.to/pheomenon/how-to-post-a-comment-later-in-asana-scheduled-reminders-that-actually-fire-3136"&gt;Scheduled comment&lt;/a&gt; posts a comment after a delay unconditionally. Escalate is the careful version: it looks first and can decide to stay quiet.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/pheomenon/how-to-auto-assign-asana-tasks-to-your-least-busy-teammate-or-round-robin-3e16"&gt;Smart assign&lt;/a&gt; is the reassignment engine Escalate borrows for its reassign step.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/pheomenon/5-asana-rule-actions-that-dont-exist-and-how-to-add-them-3672"&gt;The five missing rule actions&lt;/a&gt; is the umbrella tour of everything DepFlow adds to Asana rules.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Get DepFlow:&lt;/strong&gt; it is free on the &lt;a href="https://asana.com/apps/depflow" rel="noopener noreferrer"&gt;Asana App Directory&lt;/a&gt;. Install it once, add a rule, and it does the wiring the moment your rule fires. More at &lt;a href="https://mylittleindiestudio.com/depflow" rel="noopener noreferrer"&gt;mylittleindiestudio.com/depflow&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>asana</category>
      <category>productivity</category>
      <category>automation</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Post a Comment Later in Asana (Scheduled Reminders That Actually Fire)</title>
      <dc:creator>My Little Indie Studio</dc:creator>
      <pubDate>Wed, 22 Jul 2026 12:42:37 +0000</pubDate>
      <link>https://dev.to/pheomenon/how-to-post-a-comment-later-in-asana-scheduled-reminders-that-actually-fire-3136</link>
      <guid>https://dev.to/pheomenon/how-to-post-a-comment-later-in-asana-scheduled-reminders-that-actually-fire-3136</guid>
      <description>&lt;p&gt;A task stalls. You tell yourself you'll nudge it in two days. Two days pass, and you forget. The task keeps sitting there.&lt;/p&gt;

&lt;p&gt;Here is the frustrating part. Asana already lets a rule post a comment, but it posts that comment the instant the rule fires. There is no "wait two days" step, and no way to hold a comment and drop it on the morning of a launch. An Asana comment goes out now, or you set it up by hand later.&lt;/p&gt;

&lt;p&gt;So you fall back to memory. You set a reminder somewhere else, or leave a browser tab open, or just hope you'll remember. That means you are the system, and you will eventually drop the ball.&lt;/p&gt;

&lt;p&gt;This is what DepFlow's &lt;strong&gt;Scheduled comment&lt;/strong&gt; action fixes. You write the comment once, inside the rule. DepFlow holds it and posts it later, either after a delay or on a date you pick. The nudge shows up when it matters, and you never had to remember it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flojcqu8vq838vvxsqpqc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flojcqu8vq838vvxsqpqc.png" alt="a normal Asana rule that posts a comment, with a caption pointing out the comment lands the same second the rule runs (no delay possible)." width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The one rule
&lt;/h2&gt;

&lt;p&gt;You set up a single rule. Once it is live, the reminder posts itself. Here is the full setup.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your project and go to &lt;strong&gt;Rules&lt;/strong&gt; → &lt;strong&gt;Create rule&lt;/strong&gt; (or edit an existing one).&lt;/li&gt;
&lt;li&gt;Pick your trigger. For a manual nudge, &lt;strong&gt;Run manually&lt;/strong&gt; works well. You can also use any automatic trigger (task added to a section, task marked complete, and so on).&lt;/li&gt;
&lt;li&gt;Under the action, click &lt;strong&gt;Add action&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the action list, choose &lt;strong&gt;DepFlow&lt;/strong&gt;, then choose &lt;strong&gt;Scheduled comment&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Comment to post&lt;/strong&gt; field, type the reminder exactly as you want it to appear. For example: "Still on track? Please update the status."&lt;/li&gt;
&lt;li&gt;Open the &lt;strong&gt;When should the comment post?&lt;/strong&gt; dropdown and choose your timing (the two modes are explained below).&lt;/li&gt;
&lt;li&gt;Fill in the timing fields that appear (either a delay amount and unit, or a date).&lt;/li&gt;
&lt;li&gt;Publish the rule.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is it. From now on, every time the rule fires, DepFlow holds your comment and posts it when its time arrives.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb5anfy3m4kl0bpz394gf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb5anfy3m4kl0bpz394gf.png" alt="he Scheduled comment form on a " width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get
&lt;/h2&gt;

&lt;p&gt;The comment appears on the triggering task at the moment you chose, not the moment the rule ran. If you picked "in two days," it lands two days later. If you picked a launch date, it is waiting on the task when the team opens it that morning.&lt;/p&gt;

&lt;p&gt;It is an ordinary Asana comment, the same kind you would type by hand. DepFlow adds nothing else. It does not edit the task or move it, and it touches nothing but that one comment.&lt;/p&gt;

&lt;p&gt;And you did the work once. No side reminders and no open tabs, so you never have to ask yourself whether you remembered to follow up. The rule carries it for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  The two timing modes
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;When should the comment post?&lt;/strong&gt; dropdown has two options. Pick the one that fits the situation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After a delay.&lt;/strong&gt; Choose this when you want the comment a set amount of time after the rule fires. Enter a &lt;strong&gt;Delay amount&lt;/strong&gt; (for example, 2) and a &lt;strong&gt;Delay unit&lt;/strong&gt; (Minutes, Hours, or Days). So "2" plus "Days" posts the comment two days after the rule runs. This is the classic stalled-task nudge: the task moves into a "Stuck" section, the rule fires, and two days later the reminder lands on its own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On a specific date.&lt;/strong&gt; Choose this when you have an exact day in mind. Enter a &lt;strong&gt;Date to post (YYYY-MM-DD)&lt;/strong&gt;, for example 2026-07-15. The comment posts at 00:00 UTC on that day. This is the launch-day note: drop a briefing on the task so it is waiting the morning the phase begins.&lt;/p&gt;

&lt;p&gt;Two things worth knowing before you set the day. You can schedule a comment up to 30 days ahead. Anything further out is rejected when the rule runs (nothing gets scheduled), so keep it inside the 30-day window. Times are in UTC, so a date with no time posts at midnight UTC. If you are far from UTC, allow for your own timezone when you pick the day.&lt;/p&gt;

&lt;h2&gt;
  
  
  An honest note
&lt;/h2&gt;

&lt;p&gt;Here are the things to be clear about, so nothing surprises you later.&lt;/p&gt;

&lt;p&gt;Scheduled comment is a &lt;strong&gt;PRO&lt;/strong&gt; action. If a rule was built under PRO and the license later lapses, the run is skipped (nothing is scheduled or posted) and recorded with a clear reason. The rule itself never breaks.&lt;/p&gt;

&lt;p&gt;The comment is posted by the &lt;strong&gt;DepFlow-connected account&lt;/strong&gt;, the Asana user who authorized DepFlow, not the person who triggered the rule. So plan for whose name appears on the comment.&lt;/p&gt;

&lt;p&gt;The comment is &lt;strong&gt;plain text&lt;/strong&gt;. There are no @mentions and no placeholders in this version. What you type is exactly what appears on the task.&lt;/p&gt;

&lt;p&gt;One more: once a comment is scheduled, it cannot be cancelled. It will post when its time arrives, even if the rule re-fires or the task changes.&lt;/p&gt;

&lt;p&gt;One more thing on pricing. A single PRO subscription unlocks the whole DepFlow set, not just this action. The same subscription that gives you scheduled comments also gives you the rest.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related DepFlow actions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Want a nudge only if the task is still stuck, and escalation if it isn't? See &lt;a href="https://dev.to/pheomenon/how-to-build-an-sla-escalation-timer-in-asana-dff"&gt;SLA escalate&lt;/a&gt;. It looks first and can back off, where a scheduled comment always posts.&lt;/li&gt;
&lt;li&gt;Want incoming tasks handed to the right person automatically? See &lt;a href="https://dev.to/pheomenon/how-to-auto-assign-asana-tasks-to-your-least-busy-teammate-or-round-robin-3e16"&gt;Smart assign&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Want the full picture of what DepFlow adds to Asana rules? See &lt;a href="https://dev.to/pheomenon/5-asana-rule-actions-that-dont-exist-and-how-to-add-them-3672"&gt;the five missing rule actions&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Get DepFlow:&lt;/strong&gt; it is free on the &lt;a href="https://asana.com/apps/depflow" rel="noopener noreferrer"&gt;Asana App Directory&lt;/a&gt;. Install it once, add a rule, and it does the wiring the moment your rule fires. More at &lt;a href="https://mylittleindiestudio.com/depflow" rel="noopener noreferrer"&gt;mylittleindiestudio.com/depflow&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>asana</category>
      <category>productivity</category>
      <category>automation</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Auto-Assign Asana Tasks to Your Least-Busy Teammate (or Round-Robin)</title>
      <dc:creator>My Little Indie Studio</dc:creator>
      <pubDate>Wed, 22 Jul 2026 12:35:55 +0000</pubDate>
      <link>https://dev.to/pheomenon/how-to-auto-assign-asana-tasks-to-your-least-busy-teammate-or-round-robin-3e16</link>
      <guid>https://dev.to/pheomenon/how-to-auto-assign-asana-tasks-to-your-least-busy-teammate-or-round-robin-3e16</guid>
      <description>&lt;p&gt;A new request lands in your queue. Who picks it up?&lt;/p&gt;

&lt;p&gt;Usually it's whoever didn't look away fast enough. Or it's you, the manager, hand-rotating tickets so the same person doesn't drown. Picture a support project where every incoming ticket drops into an "Inbox" section. Priya has 40 open tasks. Marco has 3. And the next one? It goes to whoever grabs it, which is usually Priya again, because she's the one paying attention.&lt;/p&gt;

&lt;p&gt;So you play traffic cop. You open each ticket, glance at who's already buried, and reassign by hand. You keep a mental list of whose turn it is. And when someone's out on leave, you have to remember not to hand them anything, then remember to start again when they're back.&lt;/p&gt;

&lt;p&gt;Here's the part that stings. Asana's own rules can assign a task, but only to one fixed person. You set the rule to "assign to Priya," and every single ticket goes to Priya, forever. There's no option for "assign to whoever's freest" and no option for "take turns." You get one name, and that's it.&lt;/p&gt;

&lt;p&gt;DepFlow adds the action Asana is missing. It's called &lt;strong&gt;Smart assign&lt;/strong&gt;, and it picks the right person for you, every time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqfoqvy9d05s6ooiesedz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqfoqvy9d05s6ooiesedz.png" alt="An Asana " width="800" height="648"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Smart assign does
&lt;/h2&gt;

&lt;p&gt;When the rule fires, Smart assign picks one person from a candidate pool you choose, skips anyone who's out of office, and sets them as the task's assignee. You don't hand-pick people per task. You define the pool once, and it decides.&lt;/p&gt;

&lt;p&gt;Two choices shape how it behaves: who's in the pool, and how it picks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The pool (pick one source):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Members of a team&lt;/strong&gt;: a picker lists your Asana teams, and the chosen team's members become the pool. Best for real org structure, like "route to the Support team." (Teams live in Organization workspaces.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Everyone in this workspace&lt;/strong&gt;: every member of the current workspace is a candidate. No picker, nothing to maintain. Handy for small teams.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The two are mutually exclusive. You pick one source, not both.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The strategy (pick one):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Least loaded (fewest open tasks)&lt;/strong&gt;: DepFlow counts each candidate's open assigned tasks and hands the new one to whoever has the fewest. Work flows to whoever has capacity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Round-robin (rotate through everyone)&lt;/strong&gt;: DepFlow hands the task to the next person in the pool, in turn, remembering where it left off between runs. Everyone gets an even share.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Either way, anyone marked out of office gets skipped, then picked back up when they return.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to set it up
&lt;/h2&gt;

&lt;p&gt;You do this once per project. Then it runs on its own.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your project and go to &lt;strong&gt;Customize → Rules → Add rule&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick a trigger.&lt;/strong&gt; For a support queue, use something like &lt;strong&gt;"Task is added to this project"&lt;/strong&gt; (or added to your Inbox section). If you'd rather fire it yourself, pick &lt;strong&gt;"Run manually,"&lt;/strong&gt; which puts a button on every task.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add action&lt;/strong&gt;, search &lt;strong&gt;DepFlow&lt;/strong&gt;, and choose &lt;strong&gt;Smart assign&lt;/strong&gt;. The DepFlow actions sit right next to Asana's own.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;"Who can be assigned?"&lt;/strong&gt; dropdown, pick your pool: &lt;strong&gt;Members of a team&lt;/strong&gt; (then pick the team in the &lt;strong&gt;"Which team?"&lt;/strong&gt; picker) or &lt;strong&gt;Everyone in this workspace&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;"How should DepFlow choose?"&lt;/strong&gt; dropdown, pick your strategy: &lt;strong&gt;Least loaded (fewest open tasks)&lt;/strong&gt; or &lt;strong&gt;Round-robin (rotate through everyone)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Publish the rule.&lt;/strong&gt; That's the whole setup.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft1ug836a1wb9d19n6es7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft1ug836a1wb9d19n6es7.png" alt="The " width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A few things worth knowing, so you never have to second-guess it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It skips out-of-office people.&lt;/strong&gt; Before choosing, DepFlow drops anyone with a scheduled out-of-office period covering the day the rule runs. When they're back, they're back in the rotation. (This uses Asana's scheduled out-of-office dates. It can't see an ad-hoc "away" status.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It never changes your team.&lt;/strong&gt; Smart assign only reads the pool you point it at and sets one assignee. It never adds or removes members and never touches billing seats.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's safe when there's no one to pick.&lt;/strong&gt; If the pool is empty, or everyone in it is out of office that day, DepFlow makes no change and records a clear "skipped, no one available" outcome. It never errors or assigns the wrong person.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What you get
&lt;/h2&gt;

&lt;p&gt;Once the rule runs, your queue assigns itself.&lt;/p&gt;

&lt;p&gt;New ticket lands in the Inbox. If you chose &lt;strong&gt;Least loaded&lt;/strong&gt;, it goes to Marco, because he has 3 open tasks and Priya has 40. The load balances on its own, without you watching the numbers. If you chose &lt;strong&gt;Round-robin&lt;/strong&gt;, tickets spread in turn: one to Marco, the next to Priya, the next to the third teammate, fairly and in order, without anyone tracking whose turn it is.&lt;/p&gt;

&lt;p&gt;And when Sam is on leave, Sam gets stepped over. When Sam returns, Sam is picked back up. You didn't touch a thing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq4zfpx5xnwi00me3tnuj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq4zfpx5xnwi00me3tnuj.png" alt="The same Inbox after Smart assign ran a few times: incoming tickets now spread across teammates by load or rotation, with the out-of-office person skipped." width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Which strategy should you use?
&lt;/h2&gt;

&lt;p&gt;Both are one dropdown apart, so pick by the job.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Least loaded&lt;/strong&gt; balances a shared queue by capacity. Use it when the goal is "nobody drowns while someone else is idle," like a support inbox or a bug triage board.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Round-robin&lt;/strong&gt; gives you a strict, predictable rotation. Use it when fairness by turn matters more than current load, like an on-call list or a code-review roster where everyone should get an even count.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're not sure, start with &lt;strong&gt;Least loaded&lt;/strong&gt;. It's the one most queues want.&lt;/p&gt;

&lt;h2&gt;
  
  
  A note on pricing
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Smart assign is a PRO action.&lt;/strong&gt; On a Free workspace, a rule that uses it is skipped and recorded as "PRO required," so it's clear why nothing happened.&lt;/p&gt;

&lt;p&gt;The upside: one PRO subscription unlocks the whole DepFlow set, not just this one action. Smart assign, deferred comments, task duplication, and the section-level gates all come with it, for one flat price.&lt;/p&gt;

&lt;h2&gt;
  
  
  More missing rule actions
&lt;/h2&gt;

&lt;p&gt;Smart assign is one of the actions Asana leaves out of its rule builder. There are others:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://dev.to/pheomenon/how-to-automatically-duplicate-a-task-in-asana-10h5"&gt;Duplicate task&lt;/a&gt;&lt;/strong&gt;: clone a task into another project on a trigger, choosing what carries over and building a clean name from placeholders.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://dev.to/pheomenon/how-to-post-a-comment-later-in-asana-scheduled-reminders-that-actually-fire-3136"&gt;Scheduled comment&lt;/a&gt;&lt;/strong&gt;: post a comment later, after a delay or on a specific date, instead of the instant the rule fires.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the full picture of what DepFlow adds, see &lt;a href="https://dev.to/pheomenon/5-asana-rule-actions-that-dont-exist-and-how-to-add-them-3672"&gt;the five missing rule actions&lt;/a&gt;. One PRO subscription covers the set.&lt;/p&gt;

&lt;p&gt;But you don't need to read all of that to stop hand-rotating your queue. Add the rule, pick a pool, pick a strategy, publish. Then let it assign itself.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Get DepFlow:&lt;/strong&gt; it is free on the &lt;a href="https://asana.com/apps/depflow" rel="noopener noreferrer"&gt;Asana App Directory&lt;/a&gt;. Install it once, add a rule, and it does the wiring the moment your rule fires. More at &lt;a href="https://mylittleindiestudio.com/depflow" rel="noopener noreferrer"&gt;mylittleindiestudio.com/depflow&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>asana</category>
      <category>productivity</category>
      <category>automation</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Automatically Duplicate a Task in Asana</title>
      <dc:creator>My Little Indie Studio</dc:creator>
      <pubDate>Wed, 22 Jul 2026 12:27:58 +0000</pubDate>
      <link>https://dev.to/pheomenon/how-to-automatically-duplicate-a-task-in-asana-10h5</link>
      <guid>https://dev.to/pheomenon/how-to-automatically-duplicate-a-task-in-asana-10h5</guid>
      <description>&lt;p&gt;Every Monday, the same task. Every new client, the same checklist. You know the drill.&lt;/p&gt;

&lt;p&gt;You open last week's status report. You click the three dots. You hit Duplicate. Then you rename it, fix the date, and drag it into the right project. Then you do it again for the next client. And again.&lt;/p&gt;

&lt;p&gt;Here is the frustrating part. Asana's rules can duplicate a &lt;em&gt;rule&lt;/em&gt; and even a whole &lt;em&gt;project&lt;/em&gt;. But there is no native rule action that duplicates a single &lt;em&gt;task&lt;/em&gt;. So the one thing you actually repeat, cloning a task, stays manual forever. That is where the "Copy of Copy of Weekly report" mess comes from.&lt;/p&gt;

&lt;p&gt;DepFlow adds the missing action. On any trigger you choose, it creates a real, independent copy of the task. You pick what carries over, where it lands, how the due date shifts, and what it is called. Then you never touch it again.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzu8ad64cpvv1rsarnbw2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzu8ad64cpvv1rsarnbw2.png" alt="the manual path in Asana: a task's three-dot menu open on Duplicate, then a " width="800" height="627"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What you are about to build
&lt;/h2&gt;

&lt;p&gt;A rule that says: when this happens, make me a fresh copy of the task, set up exactly the way I want it. No opening, no renaming, no dragging.&lt;/p&gt;

&lt;p&gt;Two real examples run through this guide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A recurring weekly report.&lt;/strong&gt; One rule spins up next week's report, fully built, with the date already in the name and the due date pushed out seven days.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A per-client onboarding checklist.&lt;/strong&gt; A tagged task gets cloned into that client's own project, description and assignee intact, so the checklist starts in the right place on its own.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's set it up.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before you start
&lt;/h2&gt;

&lt;p&gt;DepFlow needs to be installed in your Asana workspace and connected. If it is not, install it free from the &lt;a href="https://asana.com/apps/depflow" rel="noopener noreferrer"&gt;Asana App Directory&lt;/a&gt; (search "DepFlow"), approve the permissions once, and you are ready. The actions then show up right next to Asana's own in the rule builder.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup: the recurring weekly report
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Open your project's rules
&lt;/h3&gt;

&lt;p&gt;Go to your project, open &lt;strong&gt;Customize&lt;/strong&gt;, then &lt;strong&gt;Rules&lt;/strong&gt;, then &lt;strong&gt;Add rule&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Pick a trigger
&lt;/h3&gt;

&lt;p&gt;Choose whatever should kick off the copy. For a report you want to make on demand, &lt;strong&gt;Run manually&lt;/strong&gt; works well (you press a button when you want next week's report). For an intake flow, a trigger like "Task is added to this project" or a status change is a better fit.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Add the DepFlow action
&lt;/h3&gt;

&lt;p&gt;Under &lt;strong&gt;Add action&lt;/strong&gt;, search DepFlow and pick &lt;strong&gt;Duplicate task&lt;/strong&gt;. The form opens.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhq2urx9edrlfnbfncy99.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhq2urx9edrlfnbfncy99.png" alt="the " width="800" height="636"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Choose the due date behavior
&lt;/h3&gt;

&lt;p&gt;Find &lt;strong&gt;Due date on the copy&lt;/strong&gt;. It has three options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keep the same due date.&lt;/strong&gt; The copy inherits the original's due date unchanged.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clear the due date.&lt;/strong&gt; The copy starts with no due date.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shift the due date by N days.&lt;/strong&gt; A second field appears. Enter &lt;code&gt;7&lt;/code&gt; for a week later, or &lt;code&gt;-3&lt;/code&gt; for three days earlier.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a weekly report, pick &lt;strong&gt;Shift the due date by N days&lt;/strong&gt; and enter &lt;code&gt;7&lt;/code&gt;. Each new copy lands one week out.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Set the name
&lt;/h3&gt;

&lt;p&gt;Find &lt;strong&gt;Name for the copy&lt;/strong&gt;. By default it reads &lt;code&gt;Copy of {original_name}&lt;/code&gt;, which is how you get the dreaded "Copy of Copy of." Replace it. You can mix plain text with placeholders that fill in when the rule runs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;{original_name}&lt;/code&gt; becomes the original task's name.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;{date}&lt;/code&gt; becomes today's date (UTC, YYYY-MM-DD).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;{due_date}&lt;/code&gt; becomes the original task's due date.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;{assignee}&lt;/code&gt; becomes the assignee's name.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;{project}&lt;/code&gt; becomes the original's first project.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;{seq}&lt;/code&gt; becomes a running number that increments each run.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the report, use &lt;code&gt;{original_name} ({date})&lt;/code&gt;. It produces "Weekly report (2026-06-24)," a clean, dated name every time. (Names are capped at 255 characters.)&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Save
&lt;/h3&gt;

&lt;p&gt;Hit &lt;strong&gt;Save&lt;/strong&gt;. Now each time the rule fires, DepFlow builds next week's report for you, correctly named and dated.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup: the per-client onboarding checklist
&lt;/h2&gt;

&lt;p&gt;Same action, a couple of different fields. This one clones a task into a specific project instead of leaving it in place.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Trigger on a tag
&lt;/h3&gt;

&lt;p&gt;Add a rule with the trigger "Task is tagged" (or moved into a section), tag name &lt;code&gt;template&lt;/code&gt;. When you tag your onboarding checklist, the rule fires.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Add Duplicate task, then choose what to copy
&lt;/h3&gt;

&lt;p&gt;Add the &lt;strong&gt;Duplicate task&lt;/strong&gt; action. Set the toggles you care about to &lt;strong&gt;Yes&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Copy the description&lt;/strong&gt; → Yes (the checklist steps live here).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copy the assignee&lt;/strong&gt; → Yes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copy subtasks&lt;/strong&gt; → Yes if your checklist is built from subtasks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Leave the rest at No unless you actually need them.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Send it to the client's project
&lt;/h3&gt;

&lt;p&gt;Find &lt;strong&gt;Where should the copy go?&lt;/strong&gt; and pick &lt;strong&gt;A specific project&lt;/strong&gt;. A project picker appears with live search across your workspace. Choose the client's project. The copy is created only there, not in the original's project. Your master template stays put.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Save
&lt;/h3&gt;

&lt;p&gt;Save the rule. Now tagging the template drops a ready-to-go onboarding checklist straight into the client's board.&lt;/p&gt;

&lt;h2&gt;
  
  
  What carries over (the full toggle list)
&lt;/h2&gt;

&lt;p&gt;Every copy option is a simple &lt;strong&gt;Yes / No&lt;/strong&gt;, and all of them are on the Free plan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Copy the description&lt;/strong&gt; (on by default)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copy the assignee&lt;/strong&gt; (on by default)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copy subtasks&lt;/strong&gt; (off by default)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copy dependencies&lt;/strong&gt; (off by default)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copy attachments&lt;/strong&gt; (off by default)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copy tags&lt;/strong&gt; (off by default)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copy followers&lt;/strong&gt; (off by default)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The defaults are picked so you usually only flip one or two toggles. Turn on what you need and skip the rest.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftn55p1l1z42xzyc4uq3g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftn55p1l1z42xzyc4uq3g.png" alt="the resulting copy sitting in the destination project, cleanly named (for example " width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The copy is a real, independent Asana task. DepFlow creates it with Asana's native duplicate, so it behaves exactly like one you would make by hand. Nothing links back to the original, and DepFlow never edits or deletes the source task.&lt;/p&gt;

&lt;p&gt;A few things worth knowing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No infinite loops.&lt;/strong&gt; DepFlow remembers the tasks it creates, so a copy can never re-trigger the same Duplicate rule and spawn copies of copies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Re-running is safe.&lt;/strong&gt; Firing the same rule twice on the same task returns the original outcome instead of duplicating again.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It is all Free.&lt;/strong&gt; The whole Duplicate task action (every copy toggle, the due-date modes, a specific destination project, and the name template) is on the Free plan, within a shared limit of 100 rule runs per month across your workspace.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where this fits
&lt;/h2&gt;

&lt;p&gt;Duplicate task is one of several rule actions DepFlow adds to fill the gaps Asana's own rules leave open. For the full picture, see &lt;a href="https://dev.to/pheomenon/5-asana-rule-actions-that-dont-exist-and-how-to-add-them-3672"&gt;the five missing Asana rule actions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And if you want the copy to land on the right person automatically instead of inheriting the original's assignee, pair it with &lt;a href="https://dev.to/pheomenon/how-to-auto-assign-asana-tasks-to-your-least-busy-teammate-or-round-robin-3e16"&gt;Smart assign&lt;/a&gt;, which picks the least-loaded teammate and skips anyone out of office.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Get DepFlow:&lt;/strong&gt; it is free on the &lt;a href="https://asana.com/apps/depflow" rel="noopener noreferrer"&gt;Asana App Directory&lt;/a&gt;. Install it once, add a rule, and it does the wiring the moment your rule fires. More at &lt;a href="https://mylittleindiestudio.com/depflow" rel="noopener noreferrer"&gt;mylittleindiestudio.com/depflow&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>asana</category>
      <category>productivity</category>
      <category>automation</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Block QA Until Build Is Done: Phase Gates in Asana</title>
      <dc:creator>My Little Indie Studio</dc:creator>
      <pubDate>Wed, 22 Jul 2026 12:07:35 +0000</pubDate>
      <link>https://dev.to/pheomenon/block-qa-until-build-is-done-phase-gates-in-asana-53ae</link>
      <guid>https://dev.to/pheomenon/block-qa-until-build-is-done-phase-gates-in-asana-53ae</guid>
      <description>&lt;p&gt;Your board has two sections. "Build" and "QA." The rule is simple in your head: nothing in QA starts until everything in Build is finished. A hard phase gate.&lt;/p&gt;

&lt;p&gt;Asana can't enforce that. Not really. You can mark one QA task as blocked by one Build task, by hand, one link at a time. But a phase gate isn't one link. It's every QA task depending on every Build task. Five Build tasks and four QA tasks is twenty links. Add one more task to either side and you are back in the task detail pane, wiring by hand, hoping you didn't miss a pair.&lt;/p&gt;

&lt;p&gt;And Asana's rules can't do it at all. There's no rule action that says "depend on a whole section." So QA creeps forward while Build is still open, someone picks up a QA task early, and the gate you meant to have was never really there.&lt;/p&gt;

&lt;p&gt;DepFlow adds the one rule that sets the whole gate for you.&lt;/p&gt;

&lt;p&gt;Here's how, in about a minute.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you're building
&lt;/h2&gt;

&lt;p&gt;You want one thing: &lt;strong&gt;every task in QA depends on all of Build.&lt;/strong&gt; Nothing in QA can sensibly start until the last Build task is done. When Build finishes, the entire QA section unblocks together.&lt;/p&gt;

&lt;p&gt;That's the &lt;strong&gt;All tasks in another section&lt;/strong&gt; target of DepFlow's &lt;strong&gt;Add dependency&lt;/strong&gt; action, in the &lt;strong&gt;depends on&lt;/strong&gt; direction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Set it up
&lt;/h2&gt;

&lt;p&gt;You add the rule once. After that, any task that lands in QA gets wired to the whole Build section automatically.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your project and go to &lt;strong&gt;Customize → Rules → Add rule&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Pick the trigger &lt;strong&gt;Task added to section: QA&lt;/strong&gt;. (Any Asana trigger works, but this one fires exactly when a task enters QA, which is the moment you want the gate applied.)&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add action&lt;/strong&gt;, then choose &lt;strong&gt;DepFlow&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Pick the &lt;strong&gt;Add dependency&lt;/strong&gt; action.&lt;/li&gt;
&lt;li&gt;In the direction dropdown, choose &lt;strong&gt;depends on&lt;/strong&gt; (the triggering task gets blocked).&lt;/li&gt;
&lt;li&gt;In the target dropdown, choose &lt;strong&gt;All tasks in another section&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Asana forms can't point at a section directly, so pick &lt;strong&gt;any one task inside Build&lt;/strong&gt; in the "A task in the prerequisite section" field. DepFlow reads that task's section and uses all of its tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Publish&lt;/strong&gt; the rule.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqb6e524h6llnv6bh3urw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqb6e524h6llnv6bh3urw.png" alt="the " width="800" height="592"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DepFlow resolves the Build section at run time, so you never have to keep the rule updated. Add a task to Build later, and the next QA task that triggers depends on it too.&lt;/p&gt;

&lt;p&gt;Two things worth knowing.&lt;/p&gt;

&lt;p&gt;Re-running is safe. Fire the rule twice and nothing doubles up. Asana ignores links that already exist, and DepFlow skips what it already wired. And it skips quietly. If something can't be wired, DepFlow does nothing and records why, so your rule never turns into a red error in Asana.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get
&lt;/h2&gt;

&lt;p&gt;The moment a task enters QA, it shows &lt;strong&gt;"Blocked by"&lt;/strong&gt; and lists every task in Build. A small lock sits on it. Anyone looking at the QA column can see none of it is ready to start.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8i5intrbc86cxmgvx02h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8i5intrbc86cxmgvx02h.png" alt="List view with two sections, a prerequisite one and a dependent one (here " width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then the team works through Build. As each Build task closes, it drops off the blocker list on every QA task at once. When the &lt;strong&gt;last&lt;/strong&gt; Build task completes, the whole QA section unblocks together, and their assignees get notified. Build finishes and QA opens in the same moment.&lt;/p&gt;

&lt;p&gt;One thing to be straight about: &lt;strong&gt;Asana dependencies are advisory. They warn, they don't hard-lock.&lt;/strong&gt; A blocked task shows the warning and notifies people, but Asana won't physically stop someone from force-closing it. That's Asana's behavior for every dependency, hand-made or not. What DepFlow does is set those dependencies for you, across a whole section, in one rule, instead of you wiring every pair by hand.&lt;/p&gt;

&lt;h2&gt;
  
  
  The plan, honestly
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;All tasks in another section is on the Free plan.&lt;/strong&gt; Every dependency mode is, up to 100 rule runs per month across your workspace. So you can put a real phase gate on your board today without paying.&lt;/p&gt;

&lt;p&gt;DepFlow's &lt;strong&gt;PRO&lt;/strong&gt; plan removes the monthly cap and adds two extra actions (Smart assign and Scheduled comment). If your board triggers this gate often, PRO is what takes the 100-run ceiling off. The section-gate behavior itself costs you nothing to start.&lt;/p&gt;

&lt;p&gt;A couple of limits to keep in mind. Each section is read up to &lt;strong&gt;50 tasks&lt;/strong&gt; per run. And Asana caps a single task at &lt;strong&gt;30 dependencies&lt;/strong&gt;, so if Build has more than 30 tasks, each QA task would hit that platform ceiling. For a Build-to-QA gate that's rarely a problem, but it's worth knowing before you point this at a section of a hundred tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related reads
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://dev.to/pheomenon/turn-an-asana-section-into-a-sequential-pipeline-auto-chained-2h5l"&gt;Chain a whole section top to bottom&lt;/a&gt;&lt;/strong&gt;: instead of gating one section behind another, make each task in a single section wait for the one above it, so the column runs as a sequence.&lt;/li&gt;
&lt;li&gt;DepFlow is &lt;strong&gt;&lt;a href="https://dev.to/pheomenon/5-asana-rule-actions-that-dont-exist-and-how-to-add-them-3672"&gt;the five rule actions Asana forgot to ship&lt;/a&gt;&lt;/strong&gt;, one add-on that fills the gaps in Asana's own rule builder. The section gate is one of them.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Get DepFlow:&lt;/strong&gt; it is free on the &lt;a href="https://asana.com/apps/depflow" rel="noopener noreferrer"&gt;Asana App Directory&lt;/a&gt;. Install it once, add a rule, and it does the wiring the moment your rule fires. More at &lt;a href="https://mylittleindiestudio.com/depflow" rel="noopener noreferrer"&gt;mylittleindiestudio.com/depflow&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>asana</category>
      <category>productivity</category>
      <category>automation</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Turn an Asana Section Into a Sequential Pipeline (Auto-Chained)</title>
      <dc:creator>My Little Indie Studio</dc:creator>
      <pubDate>Wed, 22 Jul 2026 11:49:37 +0000</pubDate>
      <link>https://dev.to/pheomenon/turn-an-asana-section-into-a-sequential-pipeline-auto-chained-2h5l</link>
      <guid>https://dev.to/pheomenon/turn-an-asana-section-into-a-sequential-pipeline-auto-chained-2h5l</guid>
      <description>&lt;p&gt;You have a section that is really a process. The tasks in it are meant to happen in order, one after the other. Employee onboarding, for example: Paperwork, then Accounts, then Training, then First assignment.&lt;/p&gt;

&lt;p&gt;So you set it up the way Asana asks you to. You open Accounts, mark it "waiting on" Paperwork. You open Training, mark it "waiting on" Accounts. You open First assignment, mark it "waiting on" Training. Three tasks, three trips into three different tasks, a dozen clicks.&lt;/p&gt;

&lt;p&gt;Then someone adds a step in the middle. Or reorders the column. Now the chain is wrong, and you go back in and redo it by hand.&lt;/p&gt;

&lt;p&gt;And here is the part that stings: Asana rules cannot do this for you. A rule can move a task, add a comment, assign someone. It cannot set a single dependency. So the one chore that actually repeats stays manual, forever.&lt;/p&gt;

&lt;p&gt;DepFlow adds the rule action Asana is missing. One rule, set up once, and every task in the section waits on the task directly above it. Add cards top to bottom and each one lines up behind the one before it. Reorder the column and the next card simply waits on its new neighbour.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa5gboefd8n7rfnf4sseb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa5gboefd8n7rfnf4sseb.png" alt="An Asana section named " width="800" height="592"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What you are building
&lt;/h2&gt;

&lt;p&gt;The triggering task depends on the task directly above it, in the same section. These are tasks in a section, not subtasks. Run the rule once and DepFlow reads the section top to bottom and builds the whole ladder: Accounts waits on Paperwork, Training waits on Accounts, First assignment waits on Training.&lt;/p&gt;

&lt;h2&gt;
  
  
  Set it up once
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open your project. Go to &lt;strong&gt;Customize → Rules → Add rule&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Pick a trigger. For a section that keeps growing, &lt;strong&gt;Task added to section&lt;/strong&gt; is the natural one (each new card gets wired the moment it lands). If you would rather fire it on demand, &lt;strong&gt;Run manually&lt;/strong&gt; puts a button on every task and you click it whenever you want.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add action&lt;/strong&gt;, search &lt;strong&gt;DepFlow&lt;/strong&gt;, and choose &lt;strong&gt;Add dependency&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the direction to &lt;strong&gt;depends on&lt;/strong&gt; (the task gets blocked by another, rather than blocking it).&lt;/li&gt;
&lt;li&gt;For the target, choose &lt;strong&gt;The previous task in the section&lt;/strong&gt;. There is no task picker here. DepFlow figures out the section and its order when the rule runs, so the same rule works in any section.&lt;/li&gt;
&lt;li&gt;Leave &lt;strong&gt;Chain order&lt;/strong&gt; on &lt;strong&gt;Top → bottom&lt;/strong&gt; (each task waits for the one above it). Publish the rule.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F57mr0rhytmt7oz9xc0jg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F57mr0rhytmt7oz9xc0jg.png" alt="The " width="800" height="592"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get
&lt;/h2&gt;

&lt;p&gt;Now the section behaves like a pipeline. Paperwork is open and startable. Accounts shows a "Blocked by" marker pointing at Paperwork. Training waits on Accounts. First assignment waits on Training. Each person is notified the moment the task above them is done.&lt;/p&gt;

&lt;p&gt;Add a fifth task to the bottom and it waits on First assignment. Drag Training above Accounts and re-run, and the next card waits on its new neighbour. The chain follows the order of the column, not a list of task names you had to type in.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpw1kon4swqbv3fz8qzv7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpw1kon4swqbv3fz8qzv7.png" alt="A section in List view after the rule ran (here the " width="800" height="592"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One honest note: Asana dependencies warn, they do not hard-lock. A blocked task shows the marker and notifies people, but Asana will still let someone complete it. That is Asana's own behaviour, the same for dependencies you set by hand. DepFlow just sets them for you, every time, in the right order.&lt;/p&gt;

&lt;p&gt;This works on sections of up to 50 tasks in a single run. Larger sections are refused whole (nothing partial), so split them if you hit that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Good to know
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free.&lt;/strong&gt; "The previous task in the section" is on the Free plan, within the shared 100 runs per month per workspace.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Re-running is safe.&lt;/strong&gt; Fire the rule again and nothing doubles. Asana ignores links that already exist, and DepFlow dedupes its own work. After a reshuffle, just run it again.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It only adds dependencies.&lt;/strong&gt; DepFlow never completes, reassigns, or edits your tasks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Related pipelines
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Gate a whole section behind another section (Discovery must finish before Build): &lt;a href="https://dev.to/pheomenon/block-qa-until-build-is-done-phase-gates-in-asana-53ae"&gt;Phase gate between sections&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Chain the subtasks inside a single task instead of tasks in a section: &lt;a href="https://dev.to/pheomenon/how-to-automatically-chain-subtasks-in-asana-no-more-manual-dependencies-2kl7"&gt;Chain subtasks&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The five rule actions Asana is missing, in one place: &lt;a href="https://dev.to/pheomenon/5-asana-rule-actions-that-dont-exist-and-how-to-add-them-3672"&gt;Five missing rule actions&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Get DepFlow:&lt;/strong&gt; it is free on the &lt;a href="https://asana.com/apps/depflow" rel="noopener noreferrer"&gt;Asana App Directory&lt;/a&gt;. Install it once, add a rule, and it does the wiring the moment your rule fires. More at &lt;a href="https://mylittleindiestudio.com/depflow" rel="noopener noreferrer"&gt;mylittleindiestudio.com/depflow&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Gate a Whole Checklist Behind One Approval in Asana</title>
      <dc:creator>My Little Indie Studio</dc:creator>
      <pubDate>Wed, 22 Jul 2026 11:28:53 +0000</pubDate>
      <link>https://dev.to/pheomenon/gate-a-whole-checklist-behind-one-approval-in-asana-3j42</link>
      <guid>https://dev.to/pheomenon/gate-a-whole-checklist-behind-one-approval-in-asana-3j42</guid>
      <description>&lt;p&gt;You know the feeling. The brief isn't approved yet, but someone has already started the design. Copy is half-written. A file went out the door before the client said "go."&lt;/p&gt;

&lt;p&gt;The work wasn't wrong. It just started too early.&lt;/p&gt;

&lt;p&gt;You have a parent task like &lt;strong&gt;"Client approves brief"&lt;/strong&gt; with a checklist under it: Design, Copy, Handoff. You want the whole checklist frozen until that approval lands. The moment it does, everything opens.&lt;/p&gt;

&lt;p&gt;Asana rules can't wire this. There's no rule action that makes a batch of subtasks wait for their parent. You'd have to open each subtask and mark the dependency by hand, every time the checklist is created.&lt;/p&gt;

&lt;p&gt;This walks through setting it up once, so it happens on its own from then on.&lt;/p&gt;

&lt;h2&gt;
  
  
  The scenario
&lt;/h2&gt;

&lt;p&gt;A parent task: &lt;strong&gt;"Client approves brief."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Its subtasks, the actual work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Design&lt;/li&gt;
&lt;li&gt;Copy&lt;/li&gt;
&lt;li&gt;Handoff&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Right now Asana drops those in flat. All three are startable the second they appear, before the client has approved anything.&lt;/p&gt;

&lt;p&gt;You want the opposite. Nothing starts until the parent is done.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3hu5omigd298fknooshr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3hu5omigd298fknooshr.png" alt="The parent task " width="800" height="629"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Set it up (once)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open your project and go to &lt;strong&gt;Rules&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add action&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Search for and pick &lt;strong&gt;DepFlow&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Choose the action &lt;strong&gt;Wire up subtasks&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;How should subtasks be wired?&lt;/strong&gt; dropdown, pick &lt;strong&gt;Subtasks wait for the parent&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Save.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's the whole setup. There's nothing else to select, no picking subtasks one by one. DepFlow reads the subtask list at the moment the rule runs, so the same rule keeps working as you add or remove subtasks later.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5sknnsa1i4pe0b689s2p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5sknnsa1i4pe0b689s2p.png" alt="The " width="800" height="629"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pair it with whatever creates the checklist. A common one: &lt;strong&gt;Task added to project → Add subtasks (Asana's native action) → Wire up subtasks (DepFlow).&lt;/strong&gt; The subtasks get created, then wired, in one pass.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Re-running is safe.&lt;/strong&gt; Fire the same rule twice on the same task and nothing doubles up. Asana ignores links that already exist, and DepFlow deduplicates its own work. Add a subtask later and just run the rule again; the new one gets wired, the existing links stay put.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Already-done subtasks are skipped quietly.&lt;/strong&gt; If a subtask is already complete, DepFlow leaves it alone and doesn't raise an error.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get
&lt;/h2&gt;

&lt;p&gt;Every subtask now waits on the parent. Each one shows a "Blocked by" marker and can't start until &lt;strong&gt;"Client approves brief"&lt;/strong&gt; is completed.&lt;/p&gt;

&lt;p&gt;Then the client approves. You mark the parent done.&lt;/p&gt;

&lt;p&gt;Asana clears the "Blocked by" marker on every subtask at once and notifies their assignees. The whole batch unblocks in one click. Nobody starts before the go-ahead, and nobody waits around after it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F21xhmonq1egzaprikcqi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F21xhmonq1egzaprikcqi.png" alt="The parent task marked Completed, and its subtasks now unblocked, the waiting markers cleared and each subtask ready to start." width="800" height="629"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One honest note: Asana dependencies &lt;strong&gt;warn&lt;/strong&gt;, they don't hard-lock. A person can still push past a "Blocked by" marker if they really want to. What DepFlow does is set those dependencies for you on the whole checklist, so the signal is always there without anyone wiring it by hand.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related modes
&lt;/h2&gt;

&lt;p&gt;"Subtasks wait for the parent" is one of three ways DepFlow wires a checklist. The others:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://dev.to/pheomenon/how-to-automatically-chain-subtasks-in-asana-no-more-manual-dependencies-2kl7"&gt;Chain subtasks&lt;/a&gt;&lt;/strong&gt;: each subtask waits for the one before it, in order. Draft → Edit → SEO → Publish. This one's free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://dev.to/pheomenon/make-an-asana-parent-task-wait-for-all-its-subtasks-3hm9"&gt;Parent waits for all subtasks&lt;/a&gt;&lt;/strong&gt;: the parent can't close until every subtask is done. Good for a milestone like "Ship v2.0" that shouldn't look ready while anything inside is still open.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All three live in the same &lt;strong&gt;Wire up subtasks&lt;/strong&gt; action. And they're part of a bigger set. See &lt;strong&gt;&lt;a href="https://dev.to/pheomenon/5-asana-rule-actions-that-dont-exist-and-how-to-add-them-3672"&gt;the five rule actions Asana is missing&lt;/a&gt;&lt;/strong&gt; that DepFlow adds, sold as one flat subscription.&lt;/p&gt;

&lt;p&gt;Install DepFlow free from the &lt;a href="https://asana.com/apps/depflow" rel="noopener noreferrer"&gt;Asana App Directory&lt;/a&gt; and try it on your next project.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Get DepFlow:&lt;/strong&gt; it is free on the &lt;a href="https://asana.com/apps/depflow" rel="noopener noreferrer"&gt;Asana App Directory&lt;/a&gt;. Install it once, add a rule, and it does the wiring the moment your rule fires. More at &lt;a href="https://mylittleindiestudio.com/depflow" rel="noopener noreferrer"&gt;mylittleindiestudio.com/depflow&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>asana</category>
      <category>productivity</category>
      <category>automation</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Automatically Chain Subtasks in Asana (No More Manual Dependencies)</title>
      <dc:creator>My Little Indie Studio</dc:creator>
      <pubDate>Wed, 22 Jul 2026 11:14:38 +0000</pubDate>
      <link>https://dev.to/pheomenon/how-to-automatically-chain-subtasks-in-asana-no-more-manual-dependencies-2kl7</link>
      <guid>https://dev.to/pheomenon/how-to-automatically-chain-subtasks-in-asana-no-more-manual-dependencies-2kl7</guid>
      <description>&lt;p&gt;You know the drill. A task spawns a checklist of subtasks, and now you have to tell Asana what waits on what.&lt;/p&gt;

&lt;p&gt;Say you're publishing a blog post. The task is "Publish blog post," and your template drops in four subtasks: &lt;strong&gt;Draft → Edit → SEO → Publish&lt;/strong&gt;. Asana lays them out flat. All four look startable at once. But they aren't. You can't edit a draft that doesn't exist, and you can't run SEO on unedited copy.&lt;/p&gt;

&lt;p&gt;So you fix it by hand. Open the second subtask, click "Mark as waiting on," find the first subtask, pick it. Open the third, mark it waiting on the second. Open the fourth. Every time. On every task that spawns this checklist.&lt;/p&gt;

&lt;p&gt;And here's the part that stings: Asana's own rules can't help. Rules can assign, move, comment, add tags. But there is no rule action that sets a single dependency for you. You've automated everything except the one boring thing you do most.&lt;/p&gt;

&lt;p&gt;DepFlow adds that missing action. It's called &lt;strong&gt;Wire up subtasks&lt;/strong&gt;, and the mode you want is &lt;strong&gt;Chain&lt;/strong&gt;. Set it once, and every time those subtasks appear, each one waits for the one before it, without a single click from you. And it's free, forever.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "Chain" actually does
&lt;/h2&gt;

&lt;p&gt;Chain reads the triggering task's subtasks, in order, and makes each one depend on the one above it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Draft blocks Edit&lt;/li&gt;
&lt;li&gt;Edit blocks SEO&lt;/li&gt;
&lt;li&gt;SEO blocks Publish&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No task picker, no per-subtask setup. DepFlow reads the subtask list at the moment the rule runs, so the chain forms itself the instant the subtasks show up.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnlle1uqpd3yex5alyrq6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnlle1uqpd3yex5alyrq6.png" alt="The " width="799" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to set it up
&lt;/h2&gt;

&lt;p&gt;You do this once per project. Then it runs on its own.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your project and go to &lt;strong&gt;Customize → Rules → Add rule&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick a trigger.&lt;/strong&gt; Use whatever creates your subtasks. If a template or another rule adds them, use &lt;strong&gt;"Task is added to this project."&lt;/strong&gt; If you'd rather fire it yourself, pick &lt;strong&gt;"Run manually."&lt;/strong&gt; That puts a button on every task so you can run it on demand.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add action&lt;/strong&gt;, search &lt;strong&gt;DepFlow&lt;/strong&gt;, and choose &lt;strong&gt;Wire up subtasks&lt;/strong&gt;. The DepFlow actions sit right next to Asana's own.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;"How should subtasks be wired?"&lt;/strong&gt; dropdown, pick &lt;strong&gt;Chain subtasks&lt;/strong&gt;. It's marked &lt;strong&gt;Free&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Publish the rule.&lt;/strong&gt; That's the whole setup.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr4hwpx4keklqun1sgmzy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr4hwpx4keklqun1sgmzy.png" alt="The " width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A few things worth knowing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It fires the moment subtasks appear.&lt;/strong&gt; With a creation trigger, the chain forms as the checklist lands, so you never see a flat, unlinked list.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Re-running is safe.&lt;/strong&gt; Fire the same rule twice on the same task and nothing duplicates. Added a fifth subtask later? Run it again, and the chain extends while the links already there stay untouched.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It skips quietly when there's nothing to do.&lt;/strong&gt; A task with fewer than two open subtasks is a no-op. Already-completed subtasks are skipped, so the chain starts from the first open one. The rule never turns red or fails your project.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What you get
&lt;/h2&gt;

&lt;p&gt;Once the rule runs, your flat checklist becomes a proper sequence. Each subtask carries a "Blocked by" marker pointing at the one before it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Draft → Edit → SEO → Publish&lt;/strong&gt;: 1 blocks 2 blocks 3 blocks 4.&lt;/p&gt;

&lt;p&gt;Finish the draft, and Edit unblocks. Finish Edit, and SEO opens. Nobody starts SEO on a half-written post, because Asana now shows it's waiting. And you didn't click a single dependency to make that happen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fma1d1j5bcl1bb2nnxydf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fma1d1j5bcl1bb2nnxydf.png" alt="A task's subtask list after Chain ran: subtask 1 marked done and subtasks 2, 3, 4 each showing the hourglass waiting marker, so each is held until the one before it completes." width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  One honest note
&lt;/h3&gt;

&lt;p&gt;In Asana, dependencies are advisory. A blocked task shows a warning and notifies assignees when the blocker completes, but Asana doesn't physically stop someone from marking it done early. That's how Asana works, for hand-made and DepFlow-made links alike. The warning is there; the hard lock isn't. DepFlow's job is to set those warnings for you, every time, so they're actually present when they matter.&lt;/p&gt;

&lt;h2&gt;
  
  
  It's free, and there's more
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Chain subtasks is free forever.&lt;/strong&gt; No trial, no cap you'll notice. It's the core of DepFlow.&lt;/p&gt;

&lt;p&gt;Sometimes you don't want a straight line, though. Two sibling modes live in the same &lt;strong&gt;Wire up subtasks&lt;/strong&gt; action:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://dev.to/pheomenon/make-an-asana-parent-task-wait-for-all-its-subtasks-3hm9"&gt;Parent waits for all subtasks&lt;/a&gt;&lt;/strong&gt;: the parent task can't sensibly close until every subtask underneath it is done. Good for milestones like "Ship v2.0."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=".https://dev.to/pheomenon/gate-a-whole-checklist-behind-one-approval-in-asana-3j42"&gt;Subtasks wait for parent&lt;/a&gt;&lt;/strong&gt;: every subtask stays on hold until the parent is resolved, then they all open at once. Good for a gate like "Client approves brief."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Chain is one of DepFlow's dependency modes, and DepFlow itself is a set of the rule actions Asana leaves out: smart assignment, deferred comments, task duplication, and section-level gates. One PRO subscription unlocks the whole set. See &lt;a href="https://dev.to/pheomenon/5-asana-rule-actions-that-dont-exist-and-how-to-add-them-3672"&gt;the five missing rule actions&lt;/a&gt; for the full picture.&lt;/p&gt;

&lt;p&gt;But you don't need any of that to stop chaining subtasks by hand. Add the rule, pick Chain, and publish. That part costs nothing.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Get DepFlow:&lt;/strong&gt; it is free on the &lt;a href="https://asana.com/apps/depflow" rel="noopener noreferrer"&gt;Asana App Directory&lt;/a&gt;. Install it once, add a rule, and it does the wiring the moment your rule fires. More at &lt;a href="https://mylittleindiestudio.com/depflow" rel="noopener noreferrer"&gt;mylittleindiestudio.com/depflow&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>asana</category>
      <category>productivity</category>
      <category>automation</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Make an Asana Parent Task Wait for All Its Subtasks</title>
      <dc:creator>My Little Indie Studio</dc:creator>
      <pubDate>Wed, 22 Jul 2026 11:00:42 +0000</pubDate>
      <link>https://dev.to/pheomenon/make-an-asana-parent-task-wait-for-all-its-subtasks-3hm9</link>
      <guid>https://dev.to/pheomenon/make-an-asana-parent-task-wait-for-all-its-subtasks-3hm9</guid>
      <description>&lt;p&gt;You open a milestone in Asana. "Ship v2.0." It looks ready. Green-ish. Someone is about to mark it done.&lt;/p&gt;

&lt;p&gt;Then you expand it. Three subtasks are still open. "QA pass" hasn't started. "Changelog" is half-written. The milestone was never actually finished. It just &lt;em&gt;looked&lt;/em&gt; finished, because a parent task in Asana doesn't care whether the work inside it is done.&lt;/p&gt;

&lt;p&gt;So the milestone closes early. And you find out later, when someone ships without the changelog.&lt;/p&gt;

&lt;p&gt;Asana can't fix this for you in a rule. You can mark a dependency by hand, one link at a time, but there's no rule action that makes a parent wait for its own subtasks. DepFlow adds one.&lt;/p&gt;

&lt;p&gt;Here's how to set it up in about a minute.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you're building
&lt;/h2&gt;

&lt;p&gt;You want one thing: &lt;strong&gt;"Ship v2.0" can't be closed while any of its subtasks is still open.&lt;/strong&gt; The parent should depend on every child at once, so it stays visibly blocked until the last item underneath is done.&lt;/p&gt;

&lt;p&gt;That's the &lt;strong&gt;Parent waits for all subtasks&lt;/strong&gt; mode of DepFlow's &lt;strong&gt;Wire up subtasks&lt;/strong&gt; action.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo71fwcdvovzc2wmkwuay.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo71fwcdvovzc2wmkwuay.png" alt="the " width="800" height="629"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Set it up
&lt;/h2&gt;

&lt;p&gt;You add the rule once. After that, every time it fires, DepFlow reads the current subtask list and wires the parent to all of them.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your project and go to &lt;strong&gt;Customize → Rules → Add rule&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Pick a trigger. For milestones, &lt;strong&gt;Run manually&lt;/strong&gt; is the easiest. It puts a rule button on every task, so you fire it on "Ship v2.0" whenever you want. (Any Asana trigger works, e.g. "Task is added to this project.")&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add action&lt;/strong&gt;, then choose &lt;strong&gt;DepFlow&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Pick the &lt;strong&gt;Wire up subtasks&lt;/strong&gt; action.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;How should the subtasks be wired?&lt;/strong&gt; dropdown, choose &lt;strong&gt;Parent waits for all subtasks&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Publish&lt;/strong&gt; the rule.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's the whole form. There's no task picker and nothing else to configure. DepFlow figures out the subtasks itself, at the moment the rule runs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3u1r4notzhyd3r8fr9ku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3u1r4notzhyd3r8fr9ku.png" alt="the " width="800" height="629"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now open "Ship v2.0" and click the rule button.&lt;/p&gt;

&lt;p&gt;Two things worth knowing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Re-running is safe.&lt;/strong&gt; Fire the rule twice and nothing doubles up. Asana ignores links that already exist, and DepFlow skips what it already wired. Add a subtask later? Just run it again; the new one gets picked up and the existing links stay put.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It skips quietly.&lt;/strong&gt; If a task has no subtasks, or the run can't complete, DepFlow does nothing and records why it stopped. Your rule never turns into a red error in Asana.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What you get
&lt;/h2&gt;

&lt;p&gt;The moment the rule runs, "Ship v2.0" shows &lt;strong&gt;"Blocked by"&lt;/strong&gt;, listing every one of its subtasks. A small 🔒 sits on the parent. Anyone looking at it can see the milestone isn't ready.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzbp8r5iqf4ri37ldpnpk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzbp8r5iqf4ri37ldpnpk.png" alt="a parent task after the rule ran, with its Dependencies area listing " width="800" height="629"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then people work through the subtasks. Code freeze, QA pass, changelog, deploy. As each one completes, it drops off the blocker list. When the &lt;strong&gt;last&lt;/strong&gt; subtask closes, the milestone unblocks on its own, and only then does it read as done.&lt;/p&gt;

&lt;p&gt;No milestone closes early again. The parent is honest about the work inside it.&lt;/p&gt;

&lt;p&gt;One thing to be straight about: &lt;strong&gt;Asana dependencies are advisory. They warn, they don't hard-lock.&lt;/strong&gt; A blocked task shows the warning and notifies people, but Asana won't physically stop someone from force-closing it. That's Asana's behavior for every dependency, hand-made or not. What DepFlow does is set those dependencies for you, in one click, on every subtask at once, instead of you adding each link by hand.&lt;/p&gt;

&lt;h2&gt;
  
  
  The plan, honestly
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Parent waits for all subtasks is on the Free plan.&lt;/strong&gt; Every dependency mode is, up to 100 rule runs per month across your workspace. So you can use this today without paying.&lt;/p&gt;

&lt;p&gt;It's part of a larger set. DepFlow's &lt;strong&gt;PRO&lt;/strong&gt; plan removes the monthly cap and adds two extra actions (Smart assign and Scheduled comment). If your milestones fire this rule often, PRO is what takes the 100-run ceiling off. But the parent-waits behavior itself costs you nothing to start.&lt;/p&gt;

&lt;h2&gt;
  
  
  The sibling modes
&lt;/h2&gt;

&lt;p&gt;Parent-waits is one of three ways &lt;strong&gt;Wire up subtasks&lt;/strong&gt; can link a task's children:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://dev.to/pheomenon/how-to-automatically-chain-subtasks-in-asana-no-more-manual-dependencies-2kl7"&gt;Chain subtasks&lt;/a&gt;&lt;/strong&gt;: each subtask waits for the one before it, so a checklist runs in strict order. This is the free hero action.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://dev.to/pheomenon/gate-a-whole-checklist-behind-one-approval-in-asana-3j42"&gt;Subtasks wait for parent&lt;/a&gt;&lt;/strong&gt;: the opposite direction. No subtask can start until the parent is resolved. Use it when the parent is a gate, like "Contract signed."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All three set real, native Asana dependencies you can see and edit like any other. And they're part of the bigger picture: DepFlow is &lt;strong&gt;&lt;a href="https://dev.to/pheomenon/5-asana-rule-actions-that-dont-exist-and-how-to-add-them-3672"&gt;the five rule actions Asana forgot to ship&lt;/a&gt;&lt;/strong&gt;, one add-on that fills the gaps in Asana's own rule builder.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Get DepFlow:&lt;/strong&gt; it is free on the &lt;a href="https://asana.com/apps/depflow" rel="noopener noreferrer"&gt;Asana App Directory&lt;/a&gt;. Install it once, add a rule, and it does the wiring the moment your rule fires. More at &lt;a href="https://mylittleindiestudio.com/depflow" rel="noopener noreferrer"&gt;mylittleindiestudio.com/depflow&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>asana</category>
      <category>productivity</category>
      <category>automation</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>The hard part of building a dubbing extension wasn't the AI. It was the video player.</title>
      <dc:creator>My Little Indie Studio</dc:creator>
      <pubDate>Sun, 19 Jul 2026 14:34:22 +0000</pubDate>
      <link>https://dev.to/pheomenon/how-i-built-a-course-dubbing-extension-without-touching-speech-recognition-46ol</link>
      <guid>https://dev.to/pheomenon/how-i-built-a-course-dubbing-extension-without-touching-speech-recognition-46ol</guid>
      <description>&lt;p&gt;I build browser extensions that dub online course videos (Udemy, Coursera, YouTube) into the viewer's language. Going in, I assumed the interesting engineering would be the AI: the translation, the voices, the pipeline. It wasn't. The AI parts turned out to be mostly plumbing between APIs.&lt;/p&gt;

&lt;p&gt;The part that actually ate my time was dumber and much harder: playing generated audio, in sync, inside a video player I don't own and can't modify.&lt;/p&gt;

&lt;p&gt;One aside first, because someone always asks: I don't run speech-to-text. The platforms already ship a caption track, so I read that instead of transcribing the audio. Cheaper, faster, cleaner on technical vocabulary. Good decision, one line to explain, and not what this post is about. This post is about everything downstream of "I already have the text."&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem 1: getting a second audio track to coexist with a player you don't control
&lt;/h2&gt;

&lt;p&gt;You can't just play a new &lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt; element and hope for the best. The original video is still sitting there with its own audio, its own controls, its own event handling. Your track has to duck the source audio, follow every play, pause, seek and rate change the user triggers on the native controls, and never break those controls in the process.&lt;/p&gt;

&lt;p&gt;So the dub can't be something that plays &lt;em&gt;alongside&lt;/em&gt; the video. It has to be slaved to the video element. You listen to the player's state and drive your audio from it, never the reverse. The player is the clock. You're a follower that can't desync from it, including when the user does something you didn't plan for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem 2: translated speech is never the same length
&lt;/h2&gt;

&lt;p&gt;A four-second English line runs six seconds in German. Do nothing and the dub drifts further out with every sentence until it's comically wrong by the end of the lecture.&lt;/p&gt;

&lt;p&gt;There's no clean fix. Every option is a tradeoff. You can time-stretch the generated audio to fit the caption's time slot, which costs naturalness. You can let each line start on its caption timestamp and absorb the slack in the gaps between lines, which works when there's breathing room and falls apart on dense back-to-back speech. In practice it's a mix, tuned against the caption timing rather than the original audio, because the captions are the one timeline you can trust.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem 3: the user scrubs
&lt;/h2&gt;

&lt;p&gt;The moment you've got playback synced, the user drags the scrubber to 12:30 and everything you lined up is wrong. Every seek has to re-resolve which caption line you're now in, and where inside that line's audio you should be. Same for a 10-second rewind, a chapter jump, a speed change. Each one is a re-alignment event, not just a play event.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem 4: three players, three DOMs
&lt;/h2&gt;

&lt;p&gt;Udemy, Coursera and YouTube each expose their video element, their captions and their state differently, and they change their markup whenever they feel like it. The only structure that stayed sane: a platform-agnostic core (timeline, sync, audio scheduling, voice handling) with a thin per-platform adapter at the edge, whose whole job is "find the video element, find the caption track, read the player state." When a platform breaks something, you fix one adapter instead of the engine.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd tell someone building something similar
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Treat the caption track as the source of truth for time, not the original audio. It's already aligned to the video, and it's the thing you're speaking.&lt;/li&gt;
&lt;li&gt;Slave your playback to the player, and never assume it'll behave. Seek, speed, pause, tab-switch and buffering are all things the player does &lt;em&gt;to&lt;/em&gt; you.&lt;/li&gt;
&lt;li&gt;Push every platform-specific detail out to the edges. The core shouldn't know what Udemy is.&lt;/li&gt;
&lt;li&gt;The AI is the easy part. Voices and translation are a solved-ish, buy-it problem. Living inside someone else's player is where the real work is.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're building anything that overlays timed media on a player you don't control (dubbing, live annotation, alternate audio tracks) I'm happy to compare notes in the comments.&lt;/p&gt;

&lt;p&gt;The extensions, if you want to see the result: &lt;a href="https://chromewebstore.google.com/detail/video-translator-for-udem/lebfjihneeoamkmkopmkbohkceijapjk" rel="noopener noreferrer"&gt;Udemy&lt;/a&gt; · &lt;a href="https://chromewebstore.google.com/detail/voice-to-voice-translator/gipljhilblgebbldeiefbfcaidmhaofa" rel="noopener noreferrer"&gt;Coursera&lt;/a&gt; · &lt;a href="https://chromewebstore.google.com/detail/unlimited-youtube-ai-vide/iibpimiibcfbcecegjgdnfehieldikfo" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>javascript</category>
      <category>learning</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
