Hi everyone,
I'm working on retrieving a PDF from an external API (in base64 format), decoding it in Python using a Zapier Code step, and generating the PDF successfully. However, I'm stuck on how to store this PDF in Zapier so that I can attach it in a later step.
The PDF filenames vary with each activation: "filename": f"{salesorder_id}.pdf"
.
Here’s the code I’m using:
import requests
import base64
# Get sales order ID
salesorder_id = input_data.get('salesorder_id', '')
# API URL for PDF retrieval
salesorder_pdf_url = f'https://api.example.com/documents/salesorder/{salesorder_id}/pdf'
headers = {
"accept": "application/json",
"key": "XXXXXX" # API key is replaced for security
}
# API call to get the PDF
response = requests.get(salesorder_pdf_url, headers=headers)
if response.status_code == 200:
json_response = response.json()
data = json_response.get("data")
if data:
pdf_data = base64.b64decode(data)
return {"pdf_data": base64.b64encode(pdf_data).decode('utf-8'), "filename": f"{salesorder_id}.pdf"}
else:
return {"error": "Data not found in the response."}
else:
return {"error": f"Request failed with status code {response.status_code}."}
# Decode base64 to bytes and attempt to store in Zapier
pdf_bytes = base64.b64decode(pdf_data)
# StoreClient code for Zapier
store = StoreClient('XXXXXX')
sales_order_storage_key = store.store(f"{salesorder_id}.pdf", pdf_bytes)
Does anyone have experience with storing files in Zapier for later use as attachments? Any guidance on where I might be going wrong or how I can properly store the PDF?
Thanks in advance!