bling.sync-products
Iterates through every page of Bling /produtos (optionally filtered by since for incremental sync), aggregating counts. Each page is fetched via the bling.fetch-product workflow, so retries and rate limiting are inherited from that workflow.
Paginate through Bling /produtos via repeated bling.fetch-product.
Overview
| Property | Value |
|---|---|
| Workflow type | Linear |
| Library | App-bling |
| Version | 1.0 |
Input Schema
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
organization_uuid | uuid | Yes | — | — |
connection_uuid | uuid | Yes | — | — |
since | string | No | — | ISO date — only products altered on/after |
limite | integer | No | — | Page size. Default 100. |
actor | string | No | — | — |
Output Schema
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
organization_uuid | uuid | Yes | — | — |
connection_uuid | uuid | Yes | — | — |
since | string | No | — | ISO date — only products altered on/after |
limite | integer | No | — | Page size. Default 100. |
actor | string | No | — | — |
current_page | integer | No | — | Next page to fetch (1-indexed) |
synced_count | integer | No | — | Total items fetched across all pages so far |
persisted_count | integer | No | — | Total commerce_entity rows upserted across all pages |
created_count | integer | No | — | New commerce_entity rows inserted (subset of persisted_count) |
updated_count | integer | No | — | Existing commerce_entity rows updated |
last_page_items | json | No | — | Items from the most recent page (capped); useful for spot-checks |
has_next_page | boolean | No | — | — |
effective_since | string | No | — | ISO date used as the actual since filter — input.since wins, else the cursor's last_synced_at, else null. |
max_provider_updated_at_seen | string | No | — | Tracks the max provider_updated_at across all upserted items to use as the next cursor value. |
started_at | string | No | — | — |
completed_at | string | No | — | — |
failure_reason | string | No | — | — |
failed_at | string | No | — | — |
failure_type | string | No | — | — |
failed_action | string | No | — | — |
failed_at_state | string | No | — | — |
failed_step | json | No | — | — |
failed_layer | json | No | — | — |
error | string | No | — | — |
error_type | string | No | — | — |
States
| State | Initial | Terminal | Success | Auto-advance | Description |
|---|---|---|---|---|---|
initiated | Yes | No | — | start | Sync requested |
fetching | No | No | — | — | Fetching one page (loops until has_next_page=False) |
planning | No | No | — | fetch_page | Kick first page fetch |
completed | No | Yes | Yes | — | All pages fetched |
failed | No | Yes | No | — | Sync failed |
State Diagram
Transitions
| From | Action | To | Description |
|---|---|---|---|
initiated | start | planning | — |
planning | fetch_page | fetching | — |
fetching | fetch_page | fetching | — |
fetching | complete | completed | — |
initiated | fail | failed | — |
planning | fail | failed | — |
fetching | fail | failed | — |
Business Errors
| Code | Message Template |
|---|---|
BLING_PAGE_FETCH_FAILED | bling.fetch-product failed on page {page}: |
API Usage
bash
POST /api/workflows/start
Content-Type: application/json
{
"workflow_type": "bling.sync-products",
"initial_data": {
"organization_uuid": "value",
"connection_uuid": "value"
}
}