Sam, I’ve made an example scenario for you. Feel free to amend as necessary.
Click to Expand Module Export Code
JSON - Copy and Paste this directly in the scenario editor
{
"subflows": [
{
"flow": [
{
"id": 109,
"module": "http:ActionSendData",
"version": 3,
"parameters": {
"handleErrors": true,
"useNewZLibDeCompress": true
},
"mapper": {
"url": "https://www.jasper.ai/pricing",
"serializeUrl": false,
"method": "get",
"headers": [],
"qs": [],
"bodyType": "raw",
"parseResponse": false,
"authUser": "",
"authPass": "",
"timeout": "",
"shareCookies": false,
"ca": "",
"rejectUnauthorized": true,
"followRedirect": true,
"useQuerystring": false,
"gzip": true,
"useMtls": false,
"contentType": "text/html",
"data": "",
"followAllRedirects": false
},
"metadata": {
"designer": {
"x": 1713,
"y": -1275
},
"restore": {
"expect": {
"method": {
"mode": "chose",
"label": "GET"
},
"headers": {
"mode": "chose",
"collapsed": true
},
"qs": {
"mode": "chose",
"collapsed": true
},
"bodyType": {
"label": "Raw"
},
"parseResponse": {
"collapsed": true
},
"contentType": {
"label": "HTML (text/html)"
},
"data": {
"collapsed": true
}
}
},
"parameters": [
{
"name": "handleErrors",
"type": "boolean",
"label": "Evaluate all states as errors (except for 2xx and 3xx )",
"required": true
},
{
"name": "useNewZLibDeCompress",
"type": "hidden"
}
],
"expect": [
{
"name": "url",
"type": "url",
"label": "URL",
"required": true
},
{
"name": "serializeUrl",
"type": "boolean",
"label": "Serialize URL",
"required": true
},
{
"name": "method",
"type": "select",
"label": "Method",
"required": true,
"validate": {
"enum": [
"get",
"head",
"post",
"put",
"patch",
"delete",
"options"
]
}
},
{
"name": "headers",
"type": "array",
"label": "Headers",
"spec": [
{
"name": "name",
"label": "Name",
"type": "text",
"required": true
},
{
"name": "value",
"label": "Value",
"type": "text"
}
]
},
{
"name": "qs",
"type": "array",
"label": "Query String",
"spec": [
{
"name": "name",
"label": "Name",
"type": "text",
"required": true
},
{
"name": "value",
"label": "Value",
"type": "text"
}
]
},
{
"name": "bodyType",
"type": "select",
"label": "Body type",
"validate": {
"enum": [
"raw",
"x_www_form_urlencoded",
"multipart_form_data"
]
}
},
{
"name": "parseResponse",
"type": "boolean",
"label": "Parse response",
"required": true
},
{
"name": "authUser",
"type": "text",
"label": "User name"
},
{
"name": "authPass",
"type": "password",
"label": "Password"
},
{
"name": "timeout",
"type": "uinteger",
"label": "Timeout",
"validate": {
"max": 300,
"min": 1
}
},
{
"name": "shareCookies",
"type": "boolean",
"label": "Share cookies with other HTTP modules",
"required": true
},
{
"name": "ca",
"type": "cert",
"label": "Self-signed certificate"
},
{
"name": "rejectUnauthorized",
"type": "boolean",
"label": "Reject connections that are using unverified (self-signed) certificates",
"required": true
},
{
"name": "followRedirect",
"type": "boolean",
"label": "Follow redirect",
"required": true
},
{
"name": "useQuerystring",
"type": "boolean",
"label": "Disable serialization of multiple same query string keys as arrays",
"required": true
},
{
"name": "gzip",
"type": "boolean",
"label": "Request compressed content",
"required": true
},
{
"name": "useMtls",
"type": "boolean",
"label": "Use Mutual TLS",
"required": true
},
{
"name": "contentType",
"type": "select",
"label": "Content type",
"validate": {
"enum": [
"text/plain",
"application/json",
"application/xml",
"text/xml",
"text/html",
"custom"
]
}
},
{
"name": "data",
"type": "buffer",
"label": "Request content"
},
{
"name": "followAllRedirects",
"type": "boolean",
"label": "Follow all redirect",
"required": true
}
]
}
},
{
"id": 110,
"module": "openai-gpt-3:CreateCompletion",
"version": 1,
"parameters": {
"__IMTCONN__": 107818
},
"mapper": {
"select": "chat",
"max_tokens": "0",
"temperature": "0.15",
"top_p": "1",
"n_completions": "1",
"response_format": "json_object",
"model": "gpt-4o-mini",
"messages": [
{
"role": "assistant",
"content": "Pricing:\nSummarize the pricing information for the subscription tiers, including high-level inclusions for each tier.\nPresent the information directly without phrases like \"The image shows\" or similar explanatory text.\nMention with each price the name of its tier.\n\nFree Trial:\nDetail any free trial offers, including the length of the trial and what it includes.\nIf there’s a free tier instead of or in addition to a free trial, describe its features.\nPresent the information directly without additional explanations about where the information is found in the image.\nSpecifically mention the billing cycle.\n\nDiscounts:\nNote any discounts available, such as for annual payments or other special offers. Look for a toggle switch, button selection, or segmented control interface that specifies the billing cycle, as discounts are often associated with a certain billing cycle.\nIf applicable, mention the percentage or amount saved with discounts.\nState this information directly without phrases like \"This can be seen in…\" or similar explanatory text.\nSpecifically mention the billing cycle.\n\nRemember to focus solely on the information provided and present it in a concise, direct manner. Don’t make up your own data, If any information is not available, simply omit that part from your analysis rather than speculating or using external knowledge. If you encounter any ambiguities or need clarification on any point, please note this briefly in your response. Give the exact pricing per month or so with each subscription tier as is presented. Don’t deviate from this.\n\nReturn the result as JSON, similar to the following example:\n\n{\n\"pricing\": {\n\"Free Trial\": {\n\"price\": \" Free Trial $0/M\",\n\"features\": [\"3,000 credits (one-time)\", \"3 seats\", \"5,000 knowledge pages\", \"AI Assistants\", \"Workflows\", \"Core Integrations\"]\n},\n\"Starter\": {\n\"price\": \" Starter $127/M\",\n\"features\": [\"15,000 credits per month\", \"5 seats\", \"50,000 knowledge pages\", \"Unlimited Assistants\", \"Unlimited Workflows\", \"All Integrations (Slack, Notion, Sharepoint, …)\"]\n},\n\"Teams\": {\n\"price\": \" Teams $424/M\",\n\"features\": [\"60,000 credits per month\", \"10 seats\", \"150,000 knowledge pages\", \"Unlimited Assistants\", \"Unlimited Workflows\", \"All Knowledge Base Integrations (Slack, Notion, Sharepoint, …)\", \"Dedicated Slack support\", \"1h AI Training Session\"]\n},\n\"Enterprise\": {\n\"price\": \"Enterprise Custom\",\n\"features\": [\"Custom credits per month\", \"Custom seats\", \"Custom knowledge pages\", \"Unlimited Assistants\", \"Unlimited Workflows\", \"All Knowledge Base Integrations (Slack, Notion, Sharepoint, …)\", \"White glove setup and onboarding\", \"Advanced permission controls\", \"Single Sign-On (SSO) capability\", \"Dedicated AI Implementation Expert\", \"Personalized AI training sessions\", \"Custom integrations\", \"Live syncing with connections\", \"Workflow deployments\", \"Document Verification AI\", \"ROI Report\"]\n}\n},\n\"freeTrial\": {\n\"offers\": \"Free tier\",\n\"features\": [\"3,000 credits (one-time)\", \"3 seats\", \"5,000 knowledge pages\", \"AI Assistants\", \"Workflows\", \"Core Integrations\"]\n},\n\"discounts\": \"15% discount for yearly billing\"\n}\n}"
},
{
"role": "user",
"content": "{{stripHTML(toString(109.data))}}"
}
]
},
"metadata": {
"designer": {
"x": 1957,
"y": -1275,
"name": "OpenAI Completion"
},
"restore": {
"parameters": {
"__IMTCONN__": {
"collapsed": true,
"label": "OpenAI",
"data": {
"scoped": "true",
"connection": "openai-gpt-3"
}
}
},
"expect": {
"select": {
"label": "Create a Chat Completion (GPT Models)"
},
"max_tokens": {
"collapsed": true
},
"temperature": {
"collapsed": true
},
"top_p": {
"collapsed": true
},
"n_completions": {
"collapsed": true
},
"frequency_penalty": {
"collapsed": true
},
"presence_penalty": {
"collapsed": true
},
"logit_bias": {
"mode": "chose",
"collapsed": true
},
"response_format": {
"mode": "chose",
"label": "JSON Object"
},
"seed": {
"collapsed": true
},
"stop": {
"mode": "chose",
"collapsed": true
},
"additionalParameters": {
"mode": "chose",
"collapsed": true
},
"model": {
"mode": "chose",
"label": "gpt-4o-mini (system)"
},
"messages": {
"mode": "chose",
"items": [
{
"role": {
"mode": "chose",
"label": "Assistant"
}
},
{
"role": {
"mode": "chose",
"label": "User"
}
}
]
}
}
},
"parameters": [
{
"name": "__IMTCONN__",
"type": "account:openai-gpt-3",
"label": "Connection",
"required": true
}
],
"expect": [
{
"name": "select",
"type": "select",
"label": "Select Method",
"required": true,
"validate": {
"enum": [
"chat",
"prompt"
]
}
},
{
"name": "max_tokens",
"type": "number",
"label": "Max Tokens",
"required": true
},
{
"name": "temperature",
"type": "number",
"label": "Temperature",
"validate": {
"max": 2,
"min": 0
}
},
{
"name": "top_p",
"type": "number",
"label": "Top P",
"validate": {
"max": 1,
"min": 0
}
},
{
"name": "n_completions",
"type": "number",
"label": "Number"
},
{
"name": "frequency_penalty",
"type": "number",
"label": "Frequency Penalty",
"validate": {
"max": 2,
"min": -2
}
},
{
"name": "presence_penalty",
"type": "number",
"label": "Presence Penalty",
"validate": {
"max": 2,
"min": -2
}
},
{
"name": "logit_bias",
"type": "array",
"label": "Token Probability",
"spec": {
"spec": [
{
"name": "token",
"type": "text",
"label": "Token ID",
"required": true
},
{
"name": "probability",
"type": "number",
"label": "Probability",
"required": true,
"validate": {
"max": 100,
"min": -100
}
}
],
"type": "collection",
"label": "Token Probability",
"name": "value"
}
},
{
"name": "response_format",
"type": "select",
"label": "Response Format",
"validate": {
"enum": [
"text",
"json_object"
]
}
},
{
"name": "seed",
"type": "integer",
"label": "Seed"
},
{
"name": "stop",
"type": "array",
"label": "Stop Sequences",
"validate": {
"maxItems": 4
},
"spec": {
"type": "text",
"label": "Stop Sequence",
"name": "value"
}
},
{
"name": "additionalParameters",
"type": "array",
"label": "Other Input Parameters",
"spec": {
"spec": [
{
"name": "key",
"type": "text",
"label": "Parameter Name",
"required": true
},
{
"name": "type",
"type": "select",
"label": "Input Type",
"options": [
{
"label": "Text",
"value": "text",
"nested": [
{
"name": "value",
"type": "text",
"label": "Parameter Value"
}
],
"default": true
},
{
"label": "Number",
"value": "number",
"nested": [
{
"name": "value",
"type": "number",
"label": "Parameter Value"
}
]
},
{
"label": "Boolean",
"value": "boolean",
"nested": [
{
"name": "value",
"type": "boolean",
"label": "Parameter Value"
}
]
},
{
"label": "Date",
"value": "date",
"nested": [
{
"name": "value",
"type": "date",
"label": "Parameter Value"
}
]
},
{
"label": "Any",
"value": "any",
"nested": [
{
"name": "value",
"type": "any",
"label": "Parameter Value"
}
]
}
]
}
],
"type": "collection",
"label": "Input Parameter",
"name": "value"
}
},
{
"name": "model",
"type": "select",
"label": "Model",
"required": true
},
{
"name": "messages",
"type": "array",
"label": "Messages",
"required": true,
"spec": {
"spec": [
{
"name": "role",
"type": "select",
"label": "Role",
"options": [
{
"label": "System",
"value": "system"
},
{
"label": "User",
"value": "user"
},
{
"label": "Assistant",
"value": "assistant"
}
],
"required": true
},
{
"name": "content",
"type": "text",
"label": "Message Content"
}
],
"type": "collection",
"label": "Message",
"name": "value"
}
}
],
"advanced": true
}
},
{
"id": 111,
"module": "json:ParseJSON",
"version": 1,
"parameters": {
"type": ""
},
"mapper": {
"json": "{{110.result}}"
},
"metadata": {
"designer": {
"x": 2201,
"y": -1274,
"messages": [
{
"category": "last",
"severity": "warning",
"message": "A transformer should not be the last module in the route."
}
]
},
"restore": {
"parameters": {
"type": {
"label": "Choose a data structure"
}
}
},
"parameters": [
{
"name": "type",
"type": "udt",
"label": "Data structure"
}
],
"expect": [
{
"name": "json",
"type": "text",
"label": "JSON string",
"required": true
}
]
}
}
]
}
],
"metadata": {
"version": 1
}
}