Scripting API 400 when migrating Zendesk macros

Context:
Migrating from Zendesk Support to Genesys Cloud EU1. Using Python 3.9 with the Genesys Cloud Python SDK v2.5.0. The goal is to convert Zendesk ticket macros into Genesys Cloud Agent Scripts. Zendesk macros are essentially static text templates, while GC Scripts support dynamic variables and branching logic.

Trying to create a basic script via /api/v2/scripts. The payload includes a single block with a text node. The Zendesk macro content is being passed directly.

Question:
Getting a 400 Bad Request error: “Invalid script definition. Block type ‘text’ is not supported in this context.”

In Zendesk, macros are just text snippets. In Genesys Cloud, scripts require specific block types like note or action. How should the payload structure look to replicate a simple Zendesk macro?

Is it better to use a note block for static text? The documentation mentions text nodes, but the API rejects them. Any sample JSON payloads for basic text-only scripts?

Also, how do we handle Zendesk macro variables like {ticket.requester_name}? Genesys Cloud uses {{variable_name}}. Should we do a string replace before calling the API, or is there a mapping feature in the Scripting API?