Reports and webhooks attributes

These Level C attributes configure how and where session data is sent after a conversation ends — including outbound webhooks, email report delivery, and the session log reference link. All nine attributes are hidden from the standard UI and only visible when you enable the Show Hidden toggle on the Attributes page.

Quick reference

IdentifierTypeDefaultSummary
project_attributes_info_client_session_logs_table_linkString(empty)URL pointing to your team's session logs table
project_attributes_setting_send_report_during_conversationBooleanFalseEnables mid-conversation report sending on immediate handoff intent
project_attributes_setting_session_ended_report_type_emailEnumdefaultControls which delivery path handles session-ended email reports
project_attributes_setting_session_ended_webhook_urlString(empty)Endpoint URL that receives a POST request when a session ends
project_attributes_setting_session_ended_webhook_schemaJSON(empty)JSON schema defining the structured payload extracted for the webhook
project_attributes_setting_session_ended_webhook_auth_headerString(empty)Authorization header value sent with outbound webhook requests
project_attributes_setting_session_ended_report_criteria_complete_templateString(empty)System-managed merged criteria template before placeholder compilation
project_attributes_setting_session_ended_report_additional_criteriaJSON{}System-managed extra routing criteria blocks merged into base criteria
project_attributes_setting_session_ended_report_additional_schemaJSON{}System-managed JSON schema blocks for additional report directions

Session log reference

Client session logs table link

IDN: project_attributes_info_client_session_logs_table_link Type: String Default: (empty)

Stores the URL of your client session logs table — the shared source of truth where your operations and support teams review incoming calls and chats.

Set this to a stable, shared URL with controlled access so all team members open the same resource during investigations. If this field is empty, no stored link is available to open from configuration.

Examples:

  • https://docs.google.com/spreadsheets/d/.../edit
  • https://airtable.com/app.../tbl.../viw...

::: 🗒️ NOTE

This attribute is an operational reference field only. The Newo runtime does not read this URL for report dispatch or session-ended extraction logic — it exists solely for operator convenience. :::

If the link is missing or you cannot access your session logs, contact support at [email protected].


Session-ended reporting

Send report during conversation

IDN: project_attributes_setting_send_report_during_conversation Type: Boolean Default: False

Controls whether report sending can be triggered before a conversation ends. When enabled, the system evaluates each AI Employee reply for an explicit immediate-handoff intent and, if found, runs report delivery logic mid-conversation.

  • True: Mid-conversation report checks run. If the AI Employee explicitly signals an immediate handoff, report delivery logic fires during the session.
  • False: Mid-conversation checks are skipped; all report sending happens in the standard session-ended flow.

::: ⚠️ CAUTION

Enabling this setting only affects the mid-conversation path. Report delivery still depends on your existing report configuration — enabling this alone will not send reports unless project_attributes_setting_session_ended_report_enabled is also active and your criteria template is configured. :::

Session-ended email report type

IDN: project_attributes_setting_session_ended_report_type_email Type: Enum Default: default Possible values: default, custom

Decides how the AI Employee hands off session-ended report emails once a conversation qualifies for email delivery.

  • default: The built-in email path receives the prepared recipient list, CC list, subject, and report body and sends the report through the standard system email workflow.
  • custom: Report logic still prepares all content (recipients, CC, subject, body, transcript, and report type), but hands the payload off to a custom system event so an external integration can process it instead.

::: 🗒️ NOTE

Leave this on default unless you have a compatible custom integration that listens for the report-email event and can process the full prepared payload. Some deployment modules automatically override this to custom and mark the field read-only. :::


Webhook configuration

Webhook URL

IDN: project_attributes_setting_session_ended_webhook_url Type: String Default: (empty)

The endpoint URL that receives a POST request when a session ends. If this attribute is empty, no webhook is sent. When set, the AI Employee sends a JSON payload shaped by project_attributes_setting_session_ended_webhook_schema.

Use a stable HTTPS endpoint designed to handle retries and idempotency. Keep this URL aligned with your webhook schema and authentication settings.

Example payload:

{
  "user_name": "Alex Johnson",
  "organization": "ABC Corp",
  "job_title": "Marketing Manager"
}

::: 🗒️ NOTE

Webhook dispatch is independent of email and SMS session-ended report delivery. It is controlled solely by whether this URL field is populated — the standard project_attributes_setting_session_ended_report_enabled flag does not gate webhook sending. :::

Webhook schema

IDN: project_attributes_setting_session_ended_webhook_schema Type: JSON Default: (empty)

Defines the JSON schema the AI Employee uses to extract structured values from the conversation at session end. The extracted output becomes the request body sent to your webhook URL.

When a field is mentioned by the user during the conversation, it is captured and stored. When a field is not mentioned, the system sets it to Not Provided rather than leaving it blank. If this attribute is empty or set to {}, extraction is skipped and the webhook body falls back to an empty JSON object ({}).

Example schema:

{
  "type": "object",
  "properties": {
    "user_name": {
      "type": "string",
      "description": "Set to the name provided by the user. If the user didn't mention their name, set it to \"Not Provided\"."
    },
    "organization": {
      "type": "string",
      "description": "Set to the organization name provided by the user. If the user didn't mention an organization name, set it to \"Not Provided\"."
    },
    "job_title": {
      "type": "string",
      "description": "Job title provided by the user. If the user didn't mention a job title, set it to \"Not Provided\"."
    }
  },
  "required": ["user_name", "organization", "job_title"]
}

Keep the schema focused on business-critical fields and write clear descriptions that explain what to do when data is missing. This makes it easy to filter records later using the Not Provided constant.

::: 🗒️ NOTE

If no usable conversation transcript exists for the session, webhook dispatch is skipped entirely regardless of schema configuration. :::

Webhook authentication header

IDN: project_attributes_setting_session_ended_webhook_auth_header Type: String Default: (empty)

The authorization value sent as the Authorization HTTP header on every outbound webhook request. Always include the scheme (Bearer, Basic, etc.) in this value. Leave it empty only when your endpoint does not require authentication.

Examples:

  • Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
  • Basic dXNlcm5hbWU6cGFzc3dvcmQ=

::: 🗒️ NOTE

If this attribute is empty, the webhook request is still sent (when a webhook URL is configured), but without any authorization credentials. Rotate secrets regularly and use HTTPS endpoints to protect your header value in transit. :::


Report criteria

::: ⚠️ CAUTION

The three attributes in this section are system-managed. They are normally populated automatically by the platform during report preparation and should be treated as read-only. Do not edit them manually — changes may break report routing and direction logic. To adjust criteria or schema, update your base project_attributes_setting_session_ended_report_criteria_template and the standard additional criteria/schema settings instead. :::

Criteria complete template

IDN: project_attributes_setting_session_ended_report_criteria_complete_template Type: String Default: (empty)

Stores the merged session-ended report criteria before placeholder compilation. The system builds this by taking your main criteria template and appending every entry from project_attributes_setting_session_ended_report_additional_criteria, separated by ---. The merged text is then compiled into project_attributes_setting_session_ended_report_criteria_compiled so that [[attribute_idn]] placeholders resolve to their runtime values before report-direction logic runs.

Example merged output:

**Criteria for SMS Report:**
- During working hours, send SMS to [working-hours escalation phone]

---
**Criteria for VIP Escalation:**
- If it is a Manager or Human Request send an email to [manager email]

If no additional criteria exist, this value mirrors the base criteria template. If both are empty, compiled routing criteria can remain empty.

Additional criteria

IDN: project_attributes_setting_session_ended_report_additional_criteria Type: JSON Default: {}

Stores extra report-routing criteria blocks that are merged into your main session-ended report rules. The system keys each block by a normalized report-title key, then appends it to the base criteria template during report preparation.

Example value:

{
  "vip_escalation": "**Criteria for VIP Escalation:**\n- If it is a Manager or Human Request send to [manager email]"
}

If this attribute is empty or {}, no additional criteria blocks are appended and report routing uses only the base criteria template.

Additional schema

IDN: project_attributes_setting_session_ended_report_additional_schema Type: JSON Default: {}

Stores structured JSON schema blocks for extra report directions. Each key corresponds to a normalized report-title key that must match a key in project_attributes_setting_session_ended_report_additional_criteria. When an additional direction is registered, the platform prepends a should_be_sent boolean into that direction's schema, then caches it here.

Example value:

{
  "vip_escalation": {
    "type": "object",
    "properties": {
      "should_be_sent": {
        "type": "boolean"
      },
      "destination": {
        "type": "string"
      },
      "reason": {
        "type": "string"
      }
    }
  }
}

If this attribute is empty or {}, no additional direction schema is injected and no additional-direction payloads are generated.