Full-Cycle Automation
On Paused LoadingDaily store sync, translation batches and safe writes. Review items remain manual.
Automation state:
Enabled
Paused
Loading
Current run:
Loading
# active
None
Automation is paused, but run # is still active.
Worker is not responding.
Run #
has work ready for processing, but no step was claimed for
s.
Run #
:
Workflow steps processed:
/
(known so far)
Last worker activity:
(s ago)
Steps
Completed
Running
Waiting
Queued
Failed
Next check:
(s)
Standard batches in this run (all languages)
Total
Pending
Submitted
Completed
Failed
| Language | Lane | Current stage | Status | Next action |
|---|---|---|---|---|
| {{scope_label}} | {{lane}} |
{{phase_label}}
{{error_text}}
Batch #{{batch_reference}}
{{reason_label}}
|
{{status_label}} |
{{available_at_local || '-'}}
{{timezone}}
|
Automatic work is complete. Manual Review remains: .
Last run ended with errors:
Automation settings could not be loaded for the selected project.
Next sync:
Last success:
Hidden store languages can be translated before they are visible in CS-Cart. “Jobs paused” only pauses this tool; it does not publish the language.
Selection changed. Tables still use the previously applied filters until Apply is pressed.
AI usage and cost
Project total from the mapped OpenAI cost export, with attributed detail by task, entity, language and model. Every event keeps the tariff version effective when it occurred.
Project API credential
Use the same secret as AI_USAGE_PROJECT_TOKEN in the project server configuration. Saving an existing credential code rotates its token. TranslationHub stores only its SHA-256 hash and never displays the token again.
Credential saved. Copy the same token into the project server configuration before leaving this page.
Registered credentials: 0
| Credential | Status | Expires | Last used | Updated |
|---|---|---|---|---|
| - | - | - | - | - |
The default is the latest 30 calendar days in the project timezone. Current timezone: Europe/Riga. OpenAI actual totals use the imported provider buckets that fall inside the selected period. Press Refresh after changing the period or project.
Press Refresh to load cost data for the selected project.
0 events are missing provider usage or an effective historical tariff, so the total is incomplete.
The calculated project total uses the mapped OpenAI cost export and follows only the selected dates. Task, entity, language, model and pricing filters apply to the table and attributed KPIs, which cover only events recorded with that metadata.
The imported OpenAI cost buckets do not cover the entire selected period. Available coverage: - – -.
No mapped OpenAI cost buckets are available for the selected period. The calculated total is an attributed estimate, not the complete provider spend.
The EUR total is unavailable because the stored ECB EUR/USD history does not cover 0 USD in this result. USD totals are unchanged.
Calculated cost, USD
0
-
Calculated cost, EUR
—
ECB daily rates: - – -
OpenAI requests
0
Input tokens
0
Output tokens
0
Attributed cost, USD
0
0% of project cost
Attributed cost, EUR
—
ECB daily rates
Attributed events
0
Attributed input
0
Attributed output
0
| Date | Task / entity | Languages | Model / tier | Mode | Events | Tokens | USD ×1.15 | EUR ×1.15 | ECB rate | Pricing |
|---|---|---|---|---|---|---|---|---|---|---|
| - | - - |
- | - - |
- | 0 | 0 | 0 | — | — | - |
Configured tariff versions (0)
| Model | Tier | Effective | Max input | Input | Cached | Cache write | Output |
|---|---|---|---|---|---|---|---|
| - | - | - – | - | 0 | 0 | 0 | 0 |
OpenAI provider projects and Hub mapping
Provider project names come from the official OpenAI Projects directory. Mapping is explicit and does not change immutable Hub events.
OpenAI may return organization-level cost rows without a usable project allocation. Missing provider cost data is not treated as zero; calculated Hub cost continues to come from project events and historical tariffs.
Provider project mapping saved.
Projects: 0;
mapped: 0;
organization provider cost: 0 USD.
| OpenAI project | Status | Requests | Tokens | Provider cost, USD | Hub project | |
|---|---|---|---|---|---|---|
- - |
- | 0 | 0 | 0 — |
-
Unmapped
Suggested:
|
Storefront Language Jobs
Source is
.
Existing translations are kept. Pausing jobs does not change CS-Cart language visibility.
Jobs on:
Store language list unavailable:
Loading storefront language jobs...
Storefront languages failed to load:
| Storefront | Language | Name | Store availability | Translation jobs |
|---|---|---|---|---|
|
#{{storefront_id}}
{{storefront_name}}
|
{{lang_code}} default | {{name}} | active hidden not active global |
|
Banner media copied to
:
rows created
,
links replaced
,
links inserted
.
Banner media sync failed:
Demo banner cleanup for
:
rows changed
,
text fields cleared
,
structural fields copied
.
Sync warning:
Demo banner cleanup failed:
No storefront target languages loaded.
Storefront language save failed:
Projects / Stores
Project metadata is stored in Postgres. Store DB credentials stay in Wappler connection files.
| Project | Store connection | |
|---|---|---|
|
#{{project_id}} {{project_code}}
{{name}}
|
{{store_connection_name}} |
Connection OK:
,
DB ,
companies .
Connection check failed:
Connection failed:
Storefront Language Jobs
Source is
.
Existing translations are kept. Pausing jobs does not change CS-Cart language visibility.
Jobs on:
Store language list unavailable:
| Storefront | Language | Name | Store availability | Translation jobs |
|---|---|---|---|---|
|
#{{storefront_id}}
{{storefront_name}}
|
{{lang_code}} default | {{name}} | active hidden not active global |
|
Banner media copied to
:
rows created
,
links replaced
,
links inserted
.
Banner media sync failed:
Demo banner cleanup for
:
rows changed
,
text fields cleared
,
structural fields copied
.
Sync warning:
Demo banner cleanup failed:
No storefront target languages loaded.
Storefront language save failed:
Sync From Store
Every apply runs a server-side preflight. Hard unit and queue limits stop the whole extraction before any tr_units upsert.
Status .
Scope :
source rows ,
normalized units ,
new units ,
projected missing/review ,
missing ,
stale/check ,
review ,
source missing handled
(deleted ,
protected ).
| Entity | Status | New | Projected queue | New limit | Queue limit | Confirmation |
|---|---|---|---|---|---|---|
| {{entity_type}} | {{status}} | {{new_units}} | {{projected_pending_review_units}} | {{preflight.max_new_units_per_run}} | {{preflight.max_pending_review_units}} | required not required |
Extraction stopped or failed for entities. No units are created when the run status is blocked or confirmation_required.
:
Translation Settings
Disabled entities are skipped by sync, batch build, and store writes. Product features are opt-in for labels, variants, and custom values.
Entities: .
Feature settings enabled: .
Loading translation settings...
Settings load failed:
Entities
No entity settings loaded.
| Project | Entity | Model | Global | Project override | Effective | Guardrails | Notes | Updated | |
|---|---|---|---|---|---|---|---|---|---|
|
{{project_code}}
#{{project_id}}
|
{{entity_type}} |
|
enableddisabled
pilot:
customer:
|
enableddisabled
pilot_enabled:
customer_visible:
|
effective enabled
effective disabled
customer:
|
new/run: {{max_new_units_per_run}}
missing/review: {{max_pending_review_units}}
warn: {{queue_warning_threshold}}
|
{{notes}} | {{updated_at}} |
Edit project entity override
Project /
entity_type
Product Features
Enabled:| Feature | Type | Labels | Variants | Values |
|---|---|---|---|---|
|
#{{feature_id}}
{{description}}
|
{{feature_type}} | - | - |
Product features settings are temporarily unavailable:
If no feature is enabled for a column, sync will not create units for that product feature entity.
SEO Automation
Separate SEO flow for active products, categories, static pages, and dynamic pages. It uses only page_title, meta_description, and meta_keywords.
Loading SEO automation...
Generate source SEO first, write it safely, then translate SEO to the selected target language.
Source language: . Target language: . Products missing SEO: . Categories missing SEO: . Static pages: . Dynamic pages: .
Source language: . Target language: . Products missing SEO: . Categories missing SEO: . Static pages: . Dynamic pages: .
Handled by a separate project cycle:
.
Other SEO scopes remain active here.
SEO batch #
created with items.
Target SEO batch #
created with items.
SEO error:
| Batch | Task | Entity | Status | Model | Items | |
|---|---|---|---|---|---|---|
| #{{seo_batch_id}} | Generate Translate to | {{entity_type}} | ready to write store checked | {{model_name}} | ready to write , written , skipped , failed |
|
Existing translated SEO text is protected. Empty or source-copy SEO text can be replaced. SEO URL/slug fields are not read or written.
Submit all: submitted /
new SEO batches.
Failed .
Fetch all: processed /
unfinished SEO batches.
Items: completed ,
failed .
Failed batches .
SEO safe write completed for batch
#:
written items ,
written fields ,
skipped .
SEO batch action failed:
Media Alt Automation
All active storefront images are covered, including linked media and images embedded in localized HTML. Existing translated alt text is protected.
Loading media alt automation...
Generate source image alt first, write it safely, then translate alt text to the selected target language.
Source language: . Target language: .
Source language: . Target language: .
| Storefront images | total |
|---|---|
| Source alt present | (%) |
| Source alt missing | |
| Ready to batch | |
| In active batch | |
| Selected target needs translation | |
| Decorative, kept empty |
Product media is handled by the project's separate product cycle. All other storefront image scopes remain enabled here.
Coverage details
Category images missing source alt:
.
Blog images missing source alt:
.
Content HTML image problems:
in documents.
:
missing / linked images.
HTML:
missing / images.
Media alt batch #
created with items.
Submit and fetch it before safe write.
Target media alt batch #
created with items.
| Batch | Task | Status | Model | Method | Items | |
|---|---|---|---|---|---|---|
| #{{media_alt_batch_id}} | Generate Translate to | ready to write store checked | {{model_name}} | {{generation_method || ''}} | ready to write , written , skipped , failed |
|
Target alt text is trusted only when it matches a result previously confirmed by Translation Hub for the same source alt. Other target values are translated and replaced. This block does not use the standard translation units.
Submit all: submitted /
new media alt batches.
Failed .
Fetch all: processed /
unfinished media alt batches.
Items: completed ,
failed .
Failed batches .
Media alt safe write completed for batch
#:
written items ,
skipped .
Media alt action failed:
Build AI Batch
Created batch with items.
Mode: .
Filled from memory: .
Created check batch with items.
Auto build:
created batches /
items,
memory filled ,
entities scanned ,
stop: .
Batch build failed:
Batch Actions
Use row Submit / Fetch, or bulk actions in Batch Monitoring.
Re-submit is blocked once a batch is already sent.
Submitted as .
Status: .
Batch status: .
Fetched: .
Items: /,
failed ,
unresolved .
OpenAI: /,
failed .
Fetch all: processed /
unfinished batches.
Items: completed ,
failed ,
unresolved .
OpenAI: completed /
,
failed .
Submit all: submitted /
new batches.
Failed .
Batch action failed:
Deleted batch .
Reset unresolved units: .
Reset remaining items for batch .
Units reset: .
Force retranslate:
reset /
units,
skipped active batches ,
skipped writes .
Next build bypasses memory for these units.
Force products from EN
Resets product title/description fields and product SEO from EN, then creates pending batches. It does not submit batches to OpenAI.
Running . Sync, reset, and batch build can take several minutes. Batch table updates after completion.
Mode: .
Product fields:
actual products found ,
product-language rows ,
field units found ,
fingerprint stale products ,
fingerprint stale units ,
selected products ,
selected product-language rows ,
selected units ,
reset products ,
reset units ,
batches ,
items .
SEO:
product-language rows ,
existing target SEO ,
batches ,
items .
Submit pending standard and SEO batches after checking counts.
Job: .
Status: .
Entity: .
Cycles: .
Entity cycles: .
Remaining entities: .
Rounds: .
Prepared: .
Selected: .
Written: .
Failed: .
Cloned rows: .
Stop: .
Failure streak: /5.
Writing continues in background.
Status polling is retrying.
Status check is retrying while the backend job continues.
Stopped after repeated write failures.
Error: .
Mode: .
Eligible: .
New queue candidates: .
Prepared: .
Already queued/written: .
Use Preview pending, then Write chunk.
Mode: .
Pending: .
Validated: .
Written: .
Failed: .
Cloned rows: .
Limit used: /.
Deleted source-missing units: .
Writes: ,
batch items: ,
results: .
Failed writes
These rows are in tr_writes with write_status = failed. Retryable rows go back to pending; obsolete rows are skipped so review can create a fresh queue later.
Returned to pending: .
Skipped obsolete: .
# / unit /
Loading translation memory metrics...
Memory Rows
Total:
Used From Memory
Rows used:
Manual Overrides
AI accepted:
Last Used
Updated:
Loading coverage summary...
Coverage
Ready:
Units
Translated/Written:
Review Queue
Suspected EN copy:
Batch Progress
Completed: / Failed:
Missing
Batched
Translated
Written
Wrong Language
HTML Problems
Dangerous translation queues
Grouped by project_code, entity_type, target_lang, and status. “Without links” means the unit has no tr_results, tr_writes, or tr_batch_items evidence.
Warning threshold exceeded. Stop extraction and inspect the affected project/entity/language before the queue consumes disk.
Queue monitor failed:
Checking queue sizes and orphan evidence...
| Project | Entity | Lang | Status | Rows | Without results | Without writes | Without batch items | Without links | Threshold | Effective |
|---|---|---|---|---|---|---|---|---|---|---|
| {{project_code}} | {{entity_type}} | {{target_lang}} | {{status}} | {{row_count}} | {{rows_without_results}} | {{rows_without_writes}} | {{rows_without_batch_items}} | {{rows_without_links}} | {{warning_threshold}} | enabled disabled |
Coverage By Entity
Loading entity coverage...
Entity coverage failed to load:
| Entity | Total | Missing | Review | In batch | Translated | To write | OK in store | Coverage |
|---|---|---|---|---|---|---|---|---|
| {{entity_type}} | {{total_units}} | {{missing_units}} | {{review_required_units}} | {{batched_units}} | {{translated_units}} | {{write_candidate_units}} | {{written_units}} | {{coverage_pct}}% |
Coverage By Field
Loading field coverage...
Field coverage failed to load:
| Entity | Field | Total | Suspected EN | Coverage |
|---|---|---|---|---|
| {{entity_type}} | {{field_name}} | {{total_units}} | {{suspected_source_copy_units}} | {{coverage_pct}}% |
Visible standard batches
Scope:
/
/
Visible
Pending
Submitted
Completed
Failed
Other
Submit all: submitted /
new batches.
Failed .
Submit all failed:
Loading standard batches...
| Batch | Entity | Status | Items | External ref | Requested | Sent | Completed | |
|---|---|---|---|---|---|---|---|---|
| {{batch_id}} |
{{entity_type}}
entity disabled
|
{{openai_status || status}}
local {{status}}
|
{{items_completed}} / {{items_total}}
pending / sent / failed history
/ resettable
|
{{external_batch_ref}} |
|
Review Queue
| Unit | Entity | Field | Status | Flags | Target |
|---|---|---|---|---|---|
| {{unit_id}} |
{{entity_type}}
{{entity_key_text}}
|
{{field_name}} | {{status}} | {{quality_flags_json}} | {{target_value_current}} |
Recent Activity
Loading recent activity...
| Type | Status | Ref | At |
|---|---|---|---|
| {{activity_type}} | {{status}} |
{{ref_id}}
{{title}}
|
Translation Review
Left is EN source. Right is the current target value that will be saved after review.
Inspect any EN to target pair and confirm whether the current target is really translated.
Selected 0
Bulk: selected ,
approved ,
reset .
Bulk failed:
Selected unit
Status
existing target
Current target equals EN source or is flagged as same_as_source. Use Accept invariant to keep it unchanged, edit the target, or return it to untranslated.
Current target comes from the store source and is not confirmed by this translation pipeline yet. Review or replace it before approval.
Saved unit
as .
Reset unit
to .
Updated EN source for unit .
Affected units: .