[
	{
		"id": "ntk_assign_agent",
		"group": "NovaTalks",
		"name": "Assign Agent",
		"url": "https://flowstream.dev.jambonz.demo.novait.com.ua/components/ntk_assign_agent.html",
		"author": "NovaIT LLC",
		"icon": "ti ti-users",
		"color": "",
		"version": "3",
		"kind": "",
		"readme": "Assigns the conversation to a specific agent. Issues an assignAgent command with the configured agent ID and waits for an ack before continuing the flow."
	},
	{
		"id": "ntk_assign_team",
		"group": "NovaTalks",
		"name": "Assign Team",
		"url": "https://flowstream.dev.jambonz.demo.novait.com.ua/components/ntk_assign_team.html",
		"author": "NovaIT LLC",
		"icon": "ti ti-users",
		"color": "",
		"version": "2",
		"kind": "",
		"readme": "Assigns the conversation to a team. Issues an assignTeam command with the configured team ID and waits for an ack before continuing the flow."
	},
	{
		"id": "ntk_buttons",
		"group": "NovaTalks",
		"name": "Buttons",
		"url": "https://flowstream.dev.jambonz.demo.novait.com.ua/components/ntk_buttons.html",
		"author": "NovaIT LLC",
		"icon": "ti ti-sitemap",
		"color": "",
		"version": "2",
		"kind": "",
		"readme": "Sends an interactive button message to the user and waits for a selection. On first pass it issues a sendMessage command with content_type \"input_select\", then sends a waitForInput terminal frame so the engine pauses the session. When the user replies, the engine resumes the flow at this node with the selected value in $.data.input, and the message is routed to the matching output (Button 1–5) or Default if no label matches."
	},
	{
		"id": "ntk_change_status",
		"group": "NovaTalks",
		"name": "Change Status",
		"url": "https://flowstream.dev.jambonz.demo.novait.com.ua/components/ntk_change_status.html",
		"author": "NovaIT LLC",
		"icon": "ti ti-arrow-right",
		"color": "",
		"version": "3",
		"kind": "",
		"readme": "Changes the conversation status. Issues a changeStatus command with the configured status value and waits for an ack before continuing the flow."
	},
	{
		"id": "ntk_end",
		"group": "NovaTalks",
		"name": "End",
		"url": "https://flowstream.dev.jambonz.demo.novait.com.ua/components/ntk_end.html",
		"author": "NovaIT LLC",
		"icon": "ti ti-ban",
		"color": "",
		"version": "2",
		"kind": "",
		"readme": "The End component terminates a chat flow. It sends a done terminal frame to the engine (containing sessionId and empty variables) and closes the WebSocket connection."
	},
	{
		"id": "ntk_message",
		"group": "NovaTalks",
		"name": "Message",
		"url": "https://flowstream.dev.jambonz.demo.novait.com.ua/components/ntk_message.html",
		"author": "NovaIT LLC",
		"icon": "ti ti-comment",
		"color": "",
		"version": "3",
		"kind": "",
		"readme": "Sends a message to the conversation via the engine. Issues a sendMessage command and waits for an ack before continuing the flow. The message text supports Markdown formatting."
	},
	{
		"id": "ntk_start",
		"group": "NovaTalks",
		"name": "Start",
		"url": "https://flowstream.dev.jambonz.demo.novait.com.ua/components/ntk_start.html",
		"author": "NovaIT LLC",
		"icon": "ti ti-start",
		"color": "",
		"version": "2",
		"kind": "",
		"readme": "The Start component initializes a WebSocket server for the flow. It listens for incoming connections and messages from clients. When a client connects it waits for a run frame. Ack frames from the engine are dispatched to the component that issued the matching command. The sessionId from the run frame is forwarded to all downstream components via refs."
	}
]