All templates
AutomationBeginner2 min
×
Batch Campaign Generator
For agencies and e-commerce teams managing large product catalogs. Import products via CSV upload, Shopify store URL, or manual entry. Bloom generates on-brand images for every product and every platform concurrently, then packages them as a download-ready ZIP.
The code
3 snippets
// Run N tasks with max concurrency
async function runWithConcurrency<T>(
tasks: (() => Promise<T>)[],
maxConcurrent: number
): Promise<T[]> {
const results: T[] = [];
const executing: Promise<void>[] = [];
for (const task of tasks) {
const p = task().then(result => {
results.push(result);
executing.splice(executing.indexOf(p as any), 1);
});
executing.push(p as any);
if (executing.length >= maxConcurrent) {
await Promise.race(executing);
}
}
await Promise.all(executing);
return results;
}
// Generate for all products × platforms
const tasks = products.flatMap(product =>
platforms.map(platform => () =>
generateBloomImage(
apiKey, brandSessionId,
`${product.name}. ${product.description}`,
platform.aspectRatio
)
)
);
const results = await runWithConcurrency(tasks, 5);Replace
bloom_sk_... with your API keyGet free API key →