ARTICLE

ChatGPT is not bulk-native: where to stop at the UI and run Bubble catalog bulk via API and batch jobs

Use ChatGPT for exploration and one-off QA—not for hundreds of SKUs. In Bubble, wire bulk catalog work through API Connector, OpenAI Batch (or row-template batch providers), Data API chunking, and job polling instead of chat copy-paste.

TL;DR

I tried pushing hundreds of SKUs through ChatGPT once. I hit the product wall fast. Public docs and the digest say the same thing: ChatGPT is a session-based consumer product, not a row-by-row bulk engine. For me as a Bubble developer, the call is product boundary, not picking sides: exploration in chat, production bulk in workflows + HTTP batch APIs.

The brief’s BIAIG label targets “spreadsheet row → batch job → Bubble.” As of Oct 2026, biaig.com showed only a “Launching Soon” page—no verified public POST /v1/batches or SKU-template spec. What follows is the pattern I actually wire in Bubble today, with OpenAI Batch API and BulkImagen as public references (BulkImagen is third-party).


What stays in ChatGPT (and why that’s enough)

Exploration & one-offs:

  • tune a prompt for a single SKU (style, background, guardrails);
  • compare a few variants before locking a template;
  • decide whether generation is worth it vs existing assets.

That’s how I lock a template—one SKU, a few iterations. After that I don’t stay in chat.

UI hard limits (Help Center):

  • upload rate caps (e.g. up to ~80 files / 3 hours on paid; Free 3 uploads/day);
  • separate Library/storage tiers by plan;
  • ChatGPT upload rules ≠ API file rules—what works in chat does not scale to programmatic pipelines.

Shopping / Try on is a different surface. ChatGPT offers consumer discovery and virtual try-on on eligible listings; merchants connect product feeds (SFTP/API/platforms), not operator bulk-paste in chat (merchants, shopping help). That is not Bubble as system of record and not bulk asset generation for your catalog.

Boundary: once you need “N table rows,” job IDs, retries, and durable files—you are past the ChatGPT UI.


What must live outside ChatGPT: batch + Bubble backend

1. OpenAI Batch API (official API bulk)

  • Input: JSONL → POST /v1/batches (Batch guide).
  • Scale: up to 50,000 requests, 200 MB file; async ~24h target, no streaming; separate batch rate limits (FAQ).
  • Batch endpoints include /v1/chat/completions and /v1/images/generations—relevant for product imagery.
  • Production needs custom_id per row/SKU, status polling, error_file_id handling, idempotent retries—not chat transcripts.

2. Bubble: API Connector ≠ batch orchestrator

API Connector makes outbound HTTP per call; Bubble docs do not describe native OpenAI-style batch orchestration.

Typical catalog stack:

Layer Role
Job record in Bubble batch_id, status, chunk, errors
API Connector submit batch, poll status, fetch output (mind 50 MB response cap—hard limits)
Schedule API workflow on a list up to 100,000 scheduled workflows—fan-out per SKU/chunk
Data API bulk POST max 1,000 records/request, ~4 min timeout (Data API)
External worker/webhook (optional) when polling + large JSONL exceeds WU/timeouts

Bulk PATCH: no documented Data API bulk PATCH; common pattern is scheduled workflows on lists (forum). Plan field updates (image_url, generation_status) accordingly.

3. Row/SKU templates (not a “copy-paste catalog”)

One row → one logical request:

  • stable SKU id → Batch custom_id;
  • prompt template with placeholders ({{title}}, {{color}}, {{category}})—same idea as spreadsheet actors (Apify example);
  • on completion download and persist (S3/Bubble file); many generation URLs are short-lived—avoid hotlinking in production catalogs. Worth reading next: Meta Muse Image on fal.

Third-party batch+sheet analog: BulkImagen POST /api/v1/batches, poll GET /v1/batches/{id} (docs)—same mental model, different vendor/ToS.


A practical Bubble-builder workflow

  1. ChatGPT: one SKU → lock template + constraints.
  2. Export rows from Bubble → JSONL or batch provider.
  3. Submit job (OpenAI Batch or chosen provider).
  4. Poll + map by custom_id → ≤1000-record chunks via Data API + scheduled workflows.
  5. QA slice: 5–10 rows before full run; decide SLA: is ~24h batch OK vs sync/smaller chunks?

Yield/retry: read failed custom_ids from the error file; retry only failures.


Don’t

  • Build “bulk catalog” by copying hundreds of chat turns—I tried; it doesn’t scale.
  • Conflate try-on/shopping UI with feed ops or Bubble bulk generation.
  • Prototype production catalog/PII in consumer ChatGPT when API + Bubble backend is the real path.
  • Market BIAIG as live public API without a spec—use OpenAI Batch + BulkImagen as cited analogs; treat BIAIG as the target “row → job → Bubble” architecture until docs ship. Worth reading next: OpenArt Bulk Create (500 CSV.

Sources (scope of this article)

OpenAI: ChatGPT uploads vs API, Library storage, Batch API, Batch FAQ, shopping. Bubble: API Connector, Data API bulk, hard limits. Analogs: BulkImagen API, Apify catalog example. BIAIG: biaig.com—placeholder only; API unverified. Worth reading next: Fragmented bulk-tools niche: Apify spreadsheet.

← All articles