Duplicate Project
Definition
The Duplicate Project action allows you to programmatically clone an existing Asana project into a specified workspace and team. This action is essential for standardizing project structures and automating the setup of recurring workflows without manual data entry.
Key capabilities include:
- Selecting a source project and defining a custom name for the new duplicate.
- Controlling which optional elements (like notes and members) carry over to the new project.
- Intelligently shifting task dates relative to a new start or due date, including skipping weekends.
This action provides immense value by ensuring consistent project creation, making it perfect for automating processes like standardized client onboarding or recurring event planning.
Inputs
1. Connection:
- Purpose: This field establishes the authentication required to securely connect zenphi to your Asana account.
- Practical Guidance: You typically provide this by selecting an existing Asana connection from a dropdown menu (a static value) or by creating a new one.
- Use Case Context: You need this connection so zenphi has the necessary permissions to read the original project and create the duplicate in your Asana environment.
2. Project:
- Purpose: This field identifies the specific Asana project you want to copy.
- Practical Guidance: You can select the project directly from a dropdown list (a static value) or use the token picker (chain icon) to dynamically pass a project ID from a previous step in your workflow.
- Use Case Context: You would use this field to tell zenphi exactly which Master Template project should be duplicated.
3. New Project Name:
- Purpose: This field defines the title of the newly created duplicate project in Asana.
- Practical Guidance: You can type a specific name directly (a static value) or use the token picker to dynamically generate a name, such as combining a client’s name from a previous form trigger with the words “Onboarding Project”.
- Use Case Context: You use this to ensure the new project has a clear, recognizable, and unique name for your team.
4. Workspace:
- Purpose: This field selects the Asana workspace where the new project will be created, which also filters the available teams you can choose from.
- Practical Guidance: Choose a workspace from the dropdown list (a static value).
- Use Case Context: You would use this to ensure the duplicated project is placed in the correct organizational workspace.
5. Team:
- Purpose: This field determines which team within the selected workspace will own the duplicated project.
- Practical Guidance: Once a workspace is selected, you can pick a team from the dropdown (a static value), or use the token picker to dynamically assign the team based on previous workflow data. If left blank, it defaults to the original project’s team.
- Use Case Context: You use this to route a newly duplicated departmental template to the specific team that requested it.
6. Include:
- Purpose: This field allows you to choose which optional elements from the original project (like members or notes) should be copied over into the duplicate.
- Practical Guidance: You select the desired elements from the provided multi-select list (a static value).
- Use Case Context: You would use this to ensure that a duplicated project includes all the original project members so they immediately have access to the new clone.
Note
Tasks, project views, and rules are always duplicated automatically.
7. Auto-Shift Dates:
- Purpose: This is a toggle that automatically adjusts all task dates in the duplicated project relative to a new anchor date.
- Practical Guidance: You provide this by toggling the switch to
trueorfalse(a static value). - Use Case Context: You use this when duplicating an annual event project so that all tasks automatically align with this year’s schedule instead of last year’s.
8. Skip Weekends:
- Purpose: This field ensures that any automatically shifted task dates only fall on business days.
- Practical Guidance: You provide this by toggling the switch on or off (a static value). This field is only visible if Auto-Shift Dates is enabled.
- Use Case Context: You use this to prevent tasks from being assigned a due date on a Saturday or Sunday.
9. Due on:
- Purpose: This field sets the final due date for the new project, shifting all other task dates backward by the same offset as the original project.
- Practical Guidance: You can select a date from the calendar (a static value) or use the token picker to dynamically map a date from a previous step. You cannot use this if Start on is filled.
- Use Case Context: You use this when you know the final deadline of a project and need all preceding tasks to be scheduled relative to that deadline.
10. Start on:
- Purpose: This field sets the initial start date for the new project, shifting all other task dates forward by the same offset as the original project.
- Practical Guidance: You can select a date from the calendar (a static value) or use the token picker to dynamically map a date. You cannot use this if Due on is filled.
- Use Case Context: You use this when a project kicks off on a specific date and all subsequent tasks need to be scheduled from that starting point.
Outputs
1. Job ID:
- Data Description: This output provides the globally unique identifier for the asynchronous duplication process occurring in Asana.
- Workflow Utility: This ID is essential because you can pass it to a subsequent Check Job Status action to monitor the duplication progress before proceeding with the rest of your automation.
2. Status:
- Data Description: This output provides the current state of the duplication job, returning text values such as
not_started,in_progress,succeeded, orfailed. - Workflow Utility: You can use this status in a subsequent If Condition step to route the workflow; for example, sending a success email if the status is
succeeded, or an error alert to an administrator if it isfailed.
3. New Project ID:
- Data Description: This output provides the globally unique identifier of the successfully duplicated project in Asana.
- Workflow Utility: This is highly useful for subsequent steps, as you can use the token picker to pass this ID into an Add Task to Project or Update Project action to further customize the newly created project.
4. New Project Name:
- Data Description: This output provides the text name of the newly duplicated project.
- Workflow Utility: You can use this output in a subsequent Send Email or Send Slack Message action to notify your team, using a message such as “The project [New Project Name] has been successfully created and is ready for use.”
Example Use Cases
1. Standardized Client Onboarding: Automatically duplicate a master onboarding project every time a new client is signed to ensure all necessary tasks and members are instantly in place.
2. Recurring Event Planning: Quickly set up a project for an annual event by cloning last year’s project and using auto-shift dates to align all tasks with the new schedule.
3. Departmental Templates: Enable teams to request a new workspace via a form that triggers the duplication of a pre-approved project template.
4. Software Release Management: Clone a standard QA and deployment tracking project for every new software version release to maintain consistent testing protocols.
Example
Scenario
A marketing agency needs to set up a new Asana project for every new client they onboard. Instead of manually creating tasks and setting deadlines, they want to automatically clone a Master Client Template project and intelligently shift all task due dates based on the client’s official start date, ensuring no tasks fall on weekends.
Steps to Implement
1. Set the Trigger:
- Action: Select a Zenphi Form trigger to collect the new client’s name and their official project start date from the sales team.
2. Configure the Duplicate Project Action:
- Connection: Select your authorized Asana connection from the dropdown.
- Project: Choose the Master Client Template project.
- New Project Name: Use the token picker to combine the client’s name from the Zenphi Form trigger with the text “ - Onboarding”.
- Workspace: Select your agency’s main workspace.
- Team: Select the Client Success team.
- Auto-Shift Dates: Toggle this switch to
true. - Skip Weekends: Toggle this switch to
trueto ensure tasks only fall on business days. - Start on: Use the token picker to dynamically map the project start date collected from the Zenphi Form.
3. Monitor Job Status:
- Action: Add a Check Job Status action using the
Job idoutput to ensure the asynchronous duplication process completes successfully.
4. Notify the Team:
- Action: Add a Send Slack Message action using the
New Project Nameoutput to alert the Client Success team that their new board is ready for use.
Outcome
The agency eliminates manual project setup and guarantees every client receives a standardized onboarding experience. Task deadlines are automatically calculated and assigned strictly to business days, saving project managers hours of administrative work per client and reducing human error.
Best Practices
1. Maintain Dedicated Templates: Create and maintain specific Master Template projects in Asana that are never actively worked on to ensure your duplicated projects always start from a clean, standardized state.
2. Implement Dynamic Naming: Always use dynamic tokens (such as client names, company names, or dates) from previous steps in the New Project Name field to prevent confusion and ensure each duplicated project is easily identifiable.
3. Manage Asynchronous Execution: Because project duplication in Asana is an asynchronous process, use the output Job id in a subsequent Check Job Status action if your workflow needs to immediately interact with the new project (like adding new tasks).
4. Utilize Mutually Exclusive Date Shifts: When enabling Auto-Shift Dates, ensure you provide either a Start on date or a Due on date, but never both, to prevent conflicting task scheduling logic within the new project.