Ops · n8n

Auto-Save Zendrop Shipping Label PDFs to Google Drive Folders

Automatically capture new Zendrop order shipping labels via webhook and upload them as organized PDF files to a designated Google Drive folder. Ops teams eliminate manual downloading and filing of shipping documents.

difficulty Intermediatesetup 45 minresult Every new Zendrop order triggers an automatic PDF upload of its shipping label to a timestamped Google Drive folder, ready for audit or dispatch.
  1. 1

    Step 1 – Receive the Zendrop Webhook

    Add a Webhook node as the trigger. Set the HTTP Method to POST and copy the generated webhook URL. In your Zendrop dashboard under Settings > Webhooks, paste this URL and select the order.created or order.fulfilled event so n8n is notified whenever a new shipping label is generated.

  2. 2

    Step 2 – Extract Order Details and Label URL

    Add a Set node connected to the Webhook. Create three fields: set orderId to {{ $json.body.order_id }}, labelUrl to {{ $json.body.shipping_label_url }}, and fileName to {{ 'ShippingLabel_' + $json.body.order_id + '.pdf' }}. This normalizes the incoming payload for the next steps.

  3. 3

    Step 3 – Download the Shipping Label PDF

    Add an HTTP Request node. Set the Method to GET and the URL to {{ $json.labelUrl }}. Under Options, enable Response Format as File so n8n treats the response as binary data. This downloads the raw PDF bytes from Zendrop's label URL.

  4. 4

    Step 4 – Upload PDF to Google Drive

    Add a Google Drive node and select the Upload operation. Set File Name to {{ $json.fileName }} and choose your target Parent Folder by pasting the Google Drive folder ID (found in the folder URL). Connect your Google Drive OAuth2 credential. The PDF binary from the previous node is automatically passed as the file content.

  5. 5

    Step 5 – Confirm Upload with a Response

    Add a Respond to Webhook node at the end. Set the Response Body to a simple JSON string such as { "status": "uploaded", "file": "{{ $json.name }}" }. This closes the webhook handshake and gives Zendrop a 200 OK confirmation so it does not retry the event.

Frequently asked questions

What if the Zendrop webhook does not include a direct PDF URL?

Some Zendrop plans return an order ID instead of a direct label URL. In that case, replace the HTTP Request node with a call to the Zendrop REST API endpoint GET /orders/{order_id}/label using your Zendrop API key as a Bearer token in the Authorization header to fetch the label URL first.

How do I organize labels into subfolders by date?

In the Set node, add a fourth field called `folderName` with the value `{{ new Date().toISOString().slice(0,10) }}`. Then add a Google Drive node before the upload step using the Create Folder operation, pass `folderName` as the folder name and your root folder as the parent, then use the returned folder ID as the parent in the upload node.

Is my Google Drive credential secure inside n8n?

Yes. n8n stores OAuth2 credentials encrypted in its database. For self-hosted deployments, ensure your n8n instance uses HTTPS and that the N8N_ENCRYPTION_KEY environment variable is set to a strong secret. Never share your credential ID publicly.

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.