Upcoming Update to Listen Steps Data Format

We are introducing new step types to diagrams[id].nodes to enhance the functionality and flexibility of your AI agents.

Affected Property: diagrams[id].nodes

What's Changing:

  • New Node Types Added:

    1. ButtonsV2 Node (buttons-v2)

      • Description: Enhances button interactions with more dynamic features.

      • Type Definition:

        type ButtonsV2Node = {
          type: "buttons-v2";
          data: {
            portsV2: {
              byKey: Record<string, {
                id: string;
                type: string;
                target: string | null;
                data?: {
                  type?: "CURVED" | "STRAIGHT" | null;
                  color?: string | null;
                  points?: {
                    point: [number, number];
                    toTop?: boolean | null;
                    locked?: boolean | null;
                    reversed?: boolean | null;
                    allowedToTop?: boolean | null;
                  }[] | null;
                  caption?: {
                    value: string;
                    width: number;
                    height: number;
                  } | null;
                } | null;
              }>;
            };
            listenForOtherTriggers: boolean;
            items: {
              id: string;
              label: Markup;
            }[];
            name?: string;
            noReply?: {
              repromptID: string | null;
              path?: boolean | null;
              pathLabel?: string | null;
              inactivityTime?: number | null;
            } | null;
            noMatch?: {
              repromptID: string | null;
              path?: boolean | null;
              pathLabel?: string | null;
            } | null;
          };
          nodeID: string;
          coords?: [number, number];
        };
        
        
    2. CaptureV3 Node (capture-v3)

      • Description: Provides advanced data capture capabilities, including entity capture and automatic reprompting.

      • Type Definition:

        type CaptureV3Node = {
          type: "capture-v3";
          data: {
            portsV2: {
              byKey: Record<string, {
                id: string;
                type: string;
                target: string | null;
                data?: {
                  type?: "CURVED" | "STRAIGHT" | null;
                  color?: string | null;
                  points?: {
                    point: [number, number];
                    toTop?: boolean | null;
                    locked?: boolean | null;
                    reversed?: boolean | null;
                    allowedToTop?: boolean | null;
                  }[] | null;
                  caption?: {
                    value: string;
                    width: number;
                    height: number;
                  } | null;
                } | null;
              }>;
            };
            listenForOtherTriggers: boolean;
            capture:
              | {
                  type: "entity";
                  items: {
                    id: string;
                    entityID: string;
                    path?: boolean | null;
                    pathLabel?: string | null;
                    repromptID?: string | null;
                    placeholder?: string | null;
                  }[];
                  automaticReprompt: {
                    params: {
                      model?:
                        | "text-davinci-003"
                        | "gpt-3.5-turbo-1106"
                        | "gpt-3.5-turbo"
                        | "gpt-4"
                        | "gpt-4-turbo"
                        | "gpt-4o"
                        | "gpt-4o-mini"
                        | "claude-v1"
                        | "claude-v2"
                        | "claude-3-haiku"
                        | "claude-3-sonnet"
                        | "claude-3.5-sonnet"
                        | "claude-3-opus"
                        | "claude-instant-v1"
                        | "gemini-pro-1.5";
                      system?: string;
                      maxTokens?: number;
                      temperature?: number;
                    } | null;
                    exitScenario?: {
                      items: {
                        id: string;
                        text: string;
                      }[];
                      path?: boolean | null;
                      pathLabel?: string | null;
                    } | null;
                  } | null;
                  rules?: {
                    id: string;
                    text: string;
                  }[];
                }
              | {
                  type: "user-reply";
                  variableID?: string | null;
                };
            name?: string;
            noReply?: {
              repromptID: string | null;
              path?: boolean | null;
              pathLabel?: string | null;
              inactivityTime?: number | null;
            } | null;
          };
          nodeID: string;
          coords?: [number, number];
        };
        
        
    3. ChoiceV2 Node (choice-v2)

      • Description: Enhances user choice interactions with improved intent handling and automatic reprompt options.

      • Type Definition:

        type ChoiceV2Node = {
          type: "choice-v2";
          data: {
            portsV2: {
              byKey: Record<string, {
                id: string;
                type: string;
                target: string | null;
                data?: {
                  type?: "CURVED" | "STRAIGHT" | null;
                  color?: string | null;
                  points?: {
                    point: [number, number];
                    toTop?: boolean | null;
                    locked?: boolean | null;
                    reversed?: boolean | null;
                    allowedToTop?: boolean | null;
                  }[] | null;
                  caption?: {
                    value: string;
                    width: number;
                    height: number;
                  } | null;
                } | null;
              }>;
            };
            listenForOtherTriggers: boolean;
            items: {
              id: string;
              intentID: string;
              rules?: {
                id: string;
                text: string;
              }[];
              button?: {
                label: Markup;
              } | null;
              automaticReprompt?: {
                exitScenario?: {
                  items: {
                    id: string;
                    text: string;
                  }[];
                  path?: boolean | null;
                  pathLabel?: string | null;
                } | null;
              } | null;
            }[];
            name?: string;
            noReply?: {
              repromptID: string | null;
              path?: boolean | null;
              pathLabel?: string | null;
              inactivityTime?: number | null;
            } | null;
            noMatch?: {
              repromptID: string | null;
              path?: boolean | null;
              pathLabel?: string | null;
            } | null;
          };
          nodeID: string;
          coords?: [number, number];
        };
        
        

What This Means for You:

  • Enhanced Capabilities: The new node types offer advanced features, allowing for more complex and dynamic conversational flows.
  • Existing Nodes Remain Unchanged: Your current diagrams and nodes will continue to function as before.
  • New Features Available in New Steps: Only new instances of these steps created after the update will utilize the updated formats and capabilities.

Action Required:

  • Update Integrations: If you have custom integrations that interact with diagrams[id].nodes, plan to update them to accommodate these new node types when creating new steps.