# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Novu Translations API version: 1.0.0 extends: openapi/novu-translations-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 9 - target: $.paths['/v2/translations/upload'].post update: x-apievangelist-phrasing: intent: Upload locale files for a workflow effect: write questions: - How do I upload JSON translation files for one workflow? - What should my translation files be named so the locale is recognized? instructions: - text: Upload translation files {files} for {resourceType} {resourceId}. slots: files: requestBody.files resourceType: requestBody.resourceType resourceId: requestBody.resourceId - text: 'Attach these per-locale JSON files to workflow {resourceId} as a {resourceType}: {files}.' slots: resourceId: requestBody.resourceId resourceType: requestBody.resourceType files: requestBody.files method: generated generated: '2026-09-26' - target: $.paths['/v2/translations'].post update: x-apievangelist-phrasing: intent: Create or update a translation effect: write questions: - How do I add a translation for one locale to a workflow? - What happens if a translation for that locale already exists? instructions: - text: Create the {locale} translation for {resourceType} {resourceId} with content {content}. slots: locale: requestBody.locale resourceType: requestBody.resourceType resourceId: requestBody.resourceId content: requestBody.content - text: Save {content} as the {locale} strings for workflow {resourceId} of type {resourceType}. slots: content: requestBody.content locale: requestBody.locale resourceId: requestBody.resourceId resourceType: requestBody.resourceType method: generated generated: '2026-09-26' - target: $.paths['/v2/translations/master-json'].get update: x-apievangelist-phrasing: intent: Export all translations as master JSON effect: read questions: - Can I export every workflow's translations for a locale in one JSON file? - What does the master translations JSON look like for a given language? instructions: - text: Export the master translations JSON for locale {locale}. slots: locale: query.locale - text: Download all translations in master JSON format. method: generated generated: '2026-09-26' - target: $.paths['/v2/translations/master-json'].post update: x-apievangelist-phrasing: intent: Import translations from master JSON effect: write questions: - How do I import translations for many workflows at once from a JSON body? - Can I bulk load one locale's strings across all workflows? instructions: - text: Import master JSON {masterJson} for locale {locale}. slots: masterJson: requestBody.masterJson locale: requestBody.locale - text: Load these {locale} translations for multiple workflows from master JSON {masterJson}. slots: locale: requestBody.locale masterJson: requestBody.masterJson method: generated generated: '2026-09-26' - target: $.paths['/v2/translations/master-json/upload'].post update: x-apievangelist-phrasing: intent: Upload a master translations file effect: write questions: - Can I upload a master translations file and have the locale detected from its filename? - Which endpoint accepts a master JSON file upload rather than a JSON body? instructions: - text: Upload master translations file {file}. slots: file: requestBody.file - text: Upload {file} as a master JSON file and detect the locale from its name. slots: file: requestBody.file method: generated generated: '2026-09-26' - target: $.paths['/v2/translations/group/{resourceType}/{resourceId}'].get update: x-apievangelist-phrasing: intent: Get a translation group effect: read questions: - Which locales have translations for a specific workflow or layout? - How do I get the whole translation group for one resource? instructions: - text: Show the translation group for {resourceType} {resourceId}. slots: resourceType: path.resourceType resourceId: path.resourceId - text: List every locale translated for the {resourceType} {resourceId}. slots: resourceType: path.resourceType resourceId: path.resourceId method: generated generated: '2026-09-26' - target: $.paths['/v2/translations/{resourceType}/{resourceId}/{locale}'].get update: x-apievangelist-phrasing: intent: Get one locale's translation effect: read questions: - How do I read the French strings for a particular workflow? - Can I fetch a single translation by resource and locale? instructions: - text: Get the {locale} translation for {resourceType} {resourceId}. slots: locale: path.locale resourceType: path.resourceType resourceId: path.resourceId - text: Show the {locale} strings of {resourceType} {resourceId}. slots: locale: path.locale resourceType: path.resourceType resourceId: path.resourceId method: generated generated: '2026-09-26' - target: $.paths['/v2/translations/{resourceType}/{resourceId}/{locale}'].delete update: x-apievangelist-phrasing: intent: Delete one locale's translation effect: destructive questions: - How do I remove just one language from a workflow's translations? - Can I delete a single locale without removing the others? instructions: - text: Delete the {locale} translation for {resourceType} {resourceId}. slots: locale: path.locale resourceType: path.resourceType resourceId: path.resourceId - text: Remove only locale {locale} from {resourceType} {resourceId}. slots: locale: path.locale resourceType: path.resourceType resourceId: path.resourceId method: generated generated: '2026-09-26' - target: $.paths['/v2/translations/{resourceType}/{resourceId}'].delete update: x-apievangelist-phrasing: intent: Delete all translations for a resource effect: destructive questions: - How do I wipe every translation for a workflow in one go? - Can I delete a whole translation group along with all its locales? instructions: - text: Delete the entire translation group for {resourceType} {resourceId}. slots: resourceType: path.resourceType resourceId: path.resourceId - text: Remove all locales translated for {resourceType} {resourceId}. slots: resourceType: path.resourceType resourceId: path.resourceId method: generated generated: '2026-09-26'