Hi Max J. question about the API to generate a full presentation, where I am getting stumped in Zapier: https://www.loom.com/share/ae9fe1429b3f410fb90de02cc283b2bf
Thank you Darby! Ill get back to you about this by the end of the day. (Pacific time) Thanks for your patience.
Hey Darby! Got it - you're getting the generationId back but not the actual link to the finished presentation. When you call the Gamma API to generate something, it returns a generationId right away, but the presentation is still being generated in the background. That's why you're seeing it in your workspace but have to click generate to finish it. The API is async and works in two steps: First call (you're doing this): POST to https://public-api.gamma.app/v0.2/generations Returns immediately:
{
"generationId": "abc123xyz789"
}Second call (you added this back in): GET to https://public-api.gamma.app/v0.2/generations/abc123xyz789 While it's generating:
{
"status": "pending",
"generationId": "abc123xyz789"
}When it's done:
{
"status": "completed",
"generationId": "abc123xyz789",
"gammaUrl": "https://gamma.app/docs/your-presentation-id",
"credits": {"deducted": 150, "remaining": 3000}
}
That gammaUrl field is what you need for your email and spreadsheet. The problem: You have both calls, but no delay between them You added the GET request back in, but your Agent is probably calling it immediately after the POST - which means it's checking the status while the generation is still running. You're getting back "status": "pending" instead of the completed URL. Timing Generations usually take 30-90 seconds depending on:
How much content you're generating
Whether you're using AI images or not
Image quality settings
Overall complexity
Simple presentations with basic images run around 30-45 seconds. More complex ones with premium AI images can take 90-120 seconds. What's missing: The wait/polling mechanism Your Agent needs to:
POST and capture the generationId ✅ (you're doing this)
WAIT 60-90 seconds ❌ (this is the missing piece)
GET with that generationId to retrieve the final URL ✅ (you added this back in)
Extract gammaUrl and use it in your email/spreadsheet steps
The problem with Zapier Agents and async APIs: From what I can find, Zapier Agents don't have built-in delay or polling capabilities for long-running API calls. They're designed to make API requests and get immediate responses. The "wait for async task" pattern that's common in regular Zaps (Delay action + webhooks, or chaining Zaps together) doesn't translate cleanly to Agents. ⚠️ Gamma doesn't support webhooks - so we can't use webhook callbacks to notify when generation is complete. That rules out one of the main workarounds for async APIs. Your best options: Option 1: Use a regular Zap instead of an Agent Build this as a traditional Zap with:
Webhooks by Zapier: POST to Gamma API, capture generationId
Delay by Zapier: Wait 90 seconds ← This is what you're missing
Webhooks by Zapier: GET to check status
Filter: Only continue if status = "completed"
Continue with email/spreadsheet steps
Option 2: Agent + follow-up Zap Have your Agent make the POST call and save the generationId somewhere (Google Sheets, Airtable, etc.), then use a separate scheduled Zap that runs every 2 minutes to check for pending generations and poll their status. Option 3: Try instructing the Agent to wait In your Agent instructions, you could try telling it: "After getting the generationId, wait 90 seconds before checking the status." Agents might be able to handle basic delays in their logic, but I'm not confident this will work reliably. The fundamental issue is that Agents don't have a native "wait X seconds" action between API calls. If you share what the GET response looks like when you run it, I can confirm whether you're hitting it too early (status: pending) or if there's another issue.
I was able to get this working - the approach that worked- was getting the ID to a spreadsheet from the Agent flow then a separate Zapier flow where it would monitor that row for the Id to trigger, set a 3 min delay, then get the gamma share link associated with the ID and then update the spreadsheet with the link. I also added it to send me an email and slack message with the link 👍 Max J.
That's awesome that you were able to get it to work! I hope my context was helpful! Truly exciting stuff you're building!
Stay tuned for the update on the Zapier side the newest version reflecting our 1.0 API release should be live shortly.
Max J. I am planning to shoot a shorter Loom video for the actual contest submission, but this is a full walkthrough I shared with my community about the process. Thought you might find it helpful with all the details - its a little longer so you could probably 1.5 or 2x the speed of it, but I also shared the final output that I automated from a Google Form subsmission: Watch My Full Gamma API Workflow Automation Walkthrough Check Out The End Gamma Presentation Result: https://gamma.app/docs/Decision-Intelligence-Layer-Roadmap-for-Darby-Rollins-and-SideHus-rhdjgoosq0kbsb3 I made 0 edits on the presentation you see above. In this video, I shared my experience taking on the Gamma Challenge, focusing on creative ways to utilize the Gamma API for automating presentations that provide clarity for executives. I demonstrated an automated workflow that generates decision intelligence reports in about three minutes from an intake form submission, using a real example from SideHustle Games.
