{
  "types": [
    {
      "name": "flow",
      "key_source": "flow",
      "properties": [
        {
          "key": "__default__",
          "help": "the name",
          "type": "text"
        },
        {
          "key": "id",
          "help": "the numeric ID of the flow",
          "type": "text"
        },
        {
          "key": "name",
          "help": "the name of the flow",
          "type": "text"
        },

        {
          "key": "uuid",
          "help": "the uuid of the flow",
          "type": "text"
        }
      ]
    },
    {
      "name": "calendar",
      "key_source": "calendar",
      "properties": [
        {
          "key": "__default__",
          "help": "the name",
          "type": "current_date"
        },
        {
          "key": "current_date",
          "help": "the numeric ID of the flow",
          "type": "text"
        },
        {
          "key": "yesterday",
          "help": "the name of the flow",
          "type": "text"
        },

        {
          "key": "tomorrow",
          "help": "the uuid of the flow",
          "type": "text"
        },

        {
          "key": "current_day",
          "help": "name of the day",
          "type": "text"
        },

        {
          "key": "current_month",
          "help": "name of the month",
          "type": "text"
        },

        {
          "key": "current_year",
          "help": "year",
          "type": "text"
        }
      ]
    },
    {
      "name": "fields",
      "key_source": "fields",
      "property_template": {
        "key": "{key}",
        "help": "{key} for the contact",
        "type": "any"
      }
    },
    {
      "name": "results",
      "key_source": "results",
      "property_template": {
        "key": "{key}",
        "help": "result for {key}",
        "type": "result"
      }
    },
    {
      "name": "urns",
      "properties": [
        {
          "key": "whatsapp",
          "help": "WhatsApp URN for the contact",
          "type": "text"
        }
      ]
    },
    {
      "name": "channel",
      "properties": [
        {
          "key": "__default__",
          "help": "the name",
          "type": "text"
        },
        {
          "key": "uuid",
          "help": "the UUID of the channel",
          "type": "text"
        },
        {
          "key": "name",
          "help": "the name of the channel",
          "type": "text"
        },
        {
          "key": "address",
          "help": "the address of the channel",
          "type": "text"
        }
      ]
    },
    {
      "name": "contact",
      "properties": [
        {
          "key": "__default__",
          "help": "the name or URN",
          "type": "text"
        },
        {
          "key": "id",
          "help": "the numeric ID of the contact",
          "type": "text"
        },
        {
          "key": "name",
          "help": "the name of the contact",
          "type": "text"
        },
        {
          "key": "list_profiles",
          "help": "list of profiles associated with the contact",
          "type": "text"
        },
        {
          "key": "language",
          "help": "the language of the contact as 3-letter ISO code",
          "type": "text"
        },

        {
          "key": "gender",
          "help": "the gender of the contact like male/female/others",
          "type": "text"
        },
        {
          "key": "fields",
          "help": "the custom field values of the contact",
          "type": "fields"
        },
        {
          "key": "phone",
          "help": "contact phone number",
          "type": "text"
        },
        {
          "key": "optin_status",
          "help": "optin status of contact",
          "type": "text"
        },
        {
          "key": "bsp_status",
          "help": "gupshup status; current options are : none, session, session_and_hsm & hsm",
          "type": "text"
        },
        {
          "key": "status",
          "help": "whatsapp connection status; current options are : processing, valid, invalid, blocked & failed",
          "type": "text"
        },
        {
          "key": "optin_time",
          "help": "contact opted-in time",
          "type": "text"
        },
        {
          "key": "optout_time",
          "help": "contact opted-out time",
          "type": "text"
        },
        {
          "key": "last_message_at",
          "help": "contact's last inbound message time",
          "type": "text"
        },
        {
          "key": "in_groups",
          "help": "list of collections contact is member of",
          "type": "text"
        },
        {
          "key": "optin_method",
          "help": "mode of optin",
          "type": "text"
        }
      ]
    },
    {
      "name": "flow",
      "properties": [
        {
          "key": "__default__",
          "help": "the name",
          "type": "text"
        },
        {
          "key": "uuid",
          "help": "the UUID of the flow",
          "type": "text"
        },
        {
          "key": "name",
          "help": "the name of the flow",
          "type": "text"
        },
        {
          "key": "revision",
          "help": "the revision number of the flow",
          "type": "text"
        }
      ]
    },
    {
      "name": "group",
      "properties": [
        {
          "key": "uuid",
          "help": "the UUID of the group",
          "type": "text"
        },
        {
          "key": "name",
          "help": "the name of the group",
          "type": "text"
        }
      ]
    },
    {
      "name": "input",
      "properties": [
        {
          "key": "__default__",
          "help": "the text and attachments",
          "type": "text"
        },
        {
          "key": "uuid",
          "help": "the UUID of the input",
          "type": "text"
        },
        {
          "key": "created_on",
          "help": "the creation date of the input",
          "type": "datetime"
        },
        {
          "key": "channel",
          "help": "the channel that the input was received on",
          "type": "channel"
        },
        {
          "key": "urn",
          "help": "the contact URN that the input was received on",
          "type": "text"
        },
        {
          "key": "text",
          "help": "the text part of the input",
          "type": "text"
        },
        {
          "key": "attachments",
          "help": "any attachments on the input",
          "type": "text",
          "array": true
        },
        {
          "key": "external_id",
          "help": "the external ID of the input",
          "type": "text"
        }
      ]
    },
    {
      "name": "related_run",
      "properties": [
        {
          "key": "__default__",
          "help": "the contact name and flow UUID",
          "type": "text"
        },
        {
          "key": "uuid",
          "help": "the UUID of the run",
          "type": "text"
        },
        {
          "key": "contact",
          "help": "the contact of the run",
          "type": "contact"
        },
        {
          "key": "flow",
          "help": "the flow of the run",
          "type": "flow"
        },
        {
          "key": "fields",
          "help": "the custom field values of the run",
          "type": "fields"
        },
        {
          "key": "urns",
          "help": "the URN values of the run",
          "type": "urns"
        },
        {
          "key": "results",
          "help": "the results saved by the run",
          "type": "results"
        },
        {
          "key": "status",
          "help": "the current status of the run",
          "type": "text"
        }
      ]
    },
    {
      "name": "result",
      "properties": [
        {
          "key": "__default__",
          "help": "same as input",
          "type": "text"
        },
        {
          "key": "category",
          "help": "the category of the result",
          "type": "text"
        },
        {
          "key": "input",
          "help": "the input of the result",
          "type": "text"
        },
        {
          "key": "inserted_at",
          "help": "the creation date of the result",
          "type": "datetime"
        }
      ]
    },
    {
      "name": "run",
      "properties": [
        {
          "key": "__default__",
          "help": "the contact name and flow UUID",
          "type": "text"
        },
        {
          "key": "uuid",
          "help": "the UUID of the run",
          "type": "text"
        },
        {
          "key": "contact",
          "help": "the contact of the run",
          "type": "contact"
        },
        {
          "key": "flow",
          "help": "the flow of the run",
          "type": "flow"
        },
        {
          "key": "status",
          "help": "the current status of the run",
          "type": "text"
        },
        {
          "key": "results",
          "help": "the results saved by the run",
          "type": "results"
        },
        {
          "key": "created_on",
          "help": "the creation date of the run",
          "type": "datetime"
        },
        {
          "key": "exited_on",
          "help": "the exit date of the run",
          "type": "datetime"
        }
      ]
    },
    {
      "name": "trigger",
      "properties": [
        {
          "key": "type",
          "help": "the type of trigger that started this session",
          "type": "text"
        },
        {
          "key": "params",
          "help": "the parameters passed to the trigger",
          "type": "any"
        }
      ]
    }
  ],
  "root": [
    {
      "key": "flow",
      "help": "the flow (name and id)",
      "type": "flow"
    },
    {
      "key": "contact",
      "help": "the contact",
      "type": "contact"
    },
    {
      "key": "results",
      "help": "the current run results",
      "type": "results"
    },

    {
      "key": "global",
      "help": "the global values of the organization. Connect with the team for this.",
      "type": "global"
    },

    {
      "key": "calendar",
      "help": "the calendar values.",
      "type": "calendar"
    }
  ],
  "root_no_session": [
    {
      "key": "flow",
      "help": "the flow",
      "type": "flow"
    },
    {
      "key": "contact",
      "help": "the contact",
      "type": "contact"
    },
    {
      "key": "fields",
      "help": "the custom field values of the contact",
      "type": "fields"
    },
    {
      "key": "urns",
      "help": "the URN values of the contact",
      "type": "urns"
    },
    {
      "key": "global",
      "help": "the global values",
      "type": "global"
    },

    {
      "key": "calendar",
      "help": "the calendar values",
      "type": "calendar"
    }
  ]
}
