Ops · n8n

Automatically Create Asana Tasks for Every Zendrop Undelivered Package

When a Zendrop order goes undelivered, this workflow instantly creates a tracked Asana task so your ops team never loses sight of a problem shipment. Stop manually checking Zendrop and chasing down undelivered orders across spreadsheets.

difficulty Intermediatesetup 45 minresult Every undelivered Zendrop order automatically becomes an Asana task with order details, assigned to the right team, ready for follow-up.
  1. 1

    Schedule a regular Zendrop order check

    Add a Schedule Trigger node and set it to run every hour (or your preferred interval). This is the heartbeat of the workflow, triggering the Zendrop API poll on a regular cadence. In the node settings, set Rule to Every Hour.

  2. 2

    Fetch recent orders from Zendrop API

    Add an HTTP Request node named Get Zendrop Orders. Set Method to GET and URL to https://api.zendrop.com/v1/orders?status=undelivered. In the Headers section, add an Authorization header with your Zendrop API key in the format Bearer YOUR_API_KEY. Store your API key safely in n8n credentials. Add a note: 'Replace YOUR_API_KEY with your actual Zendrop API token from your Zendrop account dashboard.'

  3. 3

    Filter only undelivered orders

    Add an IF node named Is Undelivered. In Condition, set Value 1 to {{ $json.status }} and Value 2 to the string undelivered using the Equal operation. Only orders matching this status continue to the next step, preventing duplicate or irrelevant tasks from cluttering Asana.

  4. 4

    Map order data into a clean task payload

    Add a Set node named Build Task Data. Create three fields: taskName set to Undelivered Order: {{ $json.order_id }}; taskNotes set to Customer: {{ $json.customer_name }} | Tracking: {{ $json.tracking_number }} | Order Date: {{ $json.created_at }}; dueDate set to {{ $now.plus(2, 'days').toISO() }}. This shapes the data cleanly before sending it to Asana.

  5. 5

    Create the Asana task

    Add an Asana node named Create Asana Task. Set Operation to Create and Resource to Task. Connect your Asana credentials. Set Name to {{ $json.taskName }}, Notes to {{ $json.taskNotes }}, Due On to {{ $json.dueDate }}, and select your target Project from the dropdown. Add a note: 'Make sure your Asana API credentials are set up in n8n under Credentials > Asana API and that you have selected the correct project for ops tracking.'

Frequently asked questions

What Zendrop API endpoint should I use and where do I find my API key?

Log into your Zendrop account, go to Settings > API, and copy your API key. Use it in the HTTP Request node as a Bearer token in the Authorization header. Check Zendrop's official API documentation for the exact endpoint structure, as it may vary by plan.

Can I assign the Asana task to a specific team member automatically?

Yes. In the Asana node, there is an `Assignee` field where you can enter a team member's Asana user GID or email. You can find user GIDs via the Asana API or by inspecting your workspace users in the Asana admin panel.

What happens if the same undelivered order is picked up in multiple polling runs?

To avoid duplicates, consider filtering in your Zendrop API call using a date parameter to only fetch orders updated in the last hour, matching your polling interval. Alternatively, use an Asana search step before creation to check if a task for that order ID already exists.

About this recipe. Recipes on FlowRecipesHub are written for business owners, not developers, and are tested before publishing — how recipes get made. Some ingredient links are affiliate links that cost you nothing — full disclosure.