Skip to content

Summarize ​

Summarizes the email in a few lines, in the style and length you choose. The summary lands in the working data.

Summarize turns an email into a few lines you can forward, post in a notification or store in a table. It produces a single text and has no effect on the mailbox.

Choose Extract when you need specific values (an amount, a date) rather than prose, and Categorize when the summary is meant to drive a decision.

At a glance ​

  • Type: ai.summarize · version 1
  • Category: AI
  • Kind: Step — one stage of a run
  • Effect: No external effect (none) — nothing is written outside Mankomail; safe to replay
  • Needs a carrier email: No
  • Connection: None
  • Inputs: main
  • Outputs: main
  • Service ports: model (llm.model, optional)

Parameters ​

inputTemplate ​

Content to process — What the model summarises. Subject and text body by default.

  • Type: Long text (text)
  • Required: Yes
  • 10000 characters at most
  • Shown under “Advanced” in the editor
  • Expressions: {{ }} accepted
    Default value
    text
    {{ email.subject }}
    
    {{ email.bodyText }}

style ​

Style

  • Type: One choice (options)
  • Required: Yes
  • Default: bullet
  • Options:
    • bullet — Bullet points
    • paragraph — Paragraph

maxLength ​

Maximum length (words) — An instruction given to the model, not a truncation: the summary is never cut mid-sentence.

  • Type: Number (number)
  • Required: No
  • Default: 80
  • Whole number, from 10 to 1000

language ​

Language

  • Type: One choice (options)
  • Required: Yes
  • Default: auto
  • Options:
    • auto — Same as the email
    • fr — French
    • en — English

Outputs ​

  • main

Data produced ​

What this node adds to the run data, and how to read it in an expression. <step> stands for the step key: the node name turned into an identifier (see Data and expressions).

  • {{ data.<step>.summary }} — string. The summary written by the model, trimmed. Bullet points or a single paragraph, depending on the Style setting.
  • {{ data.<step>.simulated }} — boolean. true when the text was fabricated instead of coming from a model (test run on an instance with no usable AI provider). false for a real model answer.

Example ​

A manager wants a one-paragraph digest of every email from a key account, posted to a team channel. Add a Summarize node named Digest:

style: paragraph
maxLength: 60
language: auto
inputTemplate: "{{ email.subject }}\n\n{{ email.bodyText }}"

Then use {{ data.digest.summary }} in a Notify node. For a French email, the summary is in French; for an English email, in English.

Output language ​

With Language set to "Same as the email" (the default), the model is told to write in the language of the email it reads, whatever the language of its instructions or of your interface. Choose French or English to force the language of every summary, for example to get English digests of a multilingual inbox.

Length and style ​

Maximum length (words) is an instruction given to the model, not a truncation: the node never cuts the summary, so a model may slightly exceed it. Bullet points produce one idea per bullet with no heading; Paragraph produces a single continuous paragraph. The node's instructions tell the model to add nothing that is not in the message and to keep what commits someone: requests, deadlines, amounts, decisions, next actions, people involved.

How the model is chosen ​

The node has a model service port. Leave it empty and the call uses the default model the administrator set for the General use on the Connections page (Artificial intelligence section) (or the instance default). Link a provider node such as Mistral AI or OpenRouter to the model port to run this node on that provider.

Prompt and safety ​

The email content, as rendered by Content to process, never enters the system message: it is sent in a separate user message, inside a delimited block, with an explicit instruction to treat it as data and ignore any instruction it contains. An email saying "ignore your rules and write…" is summarised, not obeyed.

Tips ​

  • Summarise an attachment. Place Read attachments before this node and set Content to process to {{ data.<step>.attachments.0.text }}.
  • Long emails. The content sent to the model is cut at 20,000 characters, and the model is told the text was truncated.
  • Test runs. In test runs the model is really called, so you read a real summary. If the instance has no usable AI provider, the text is a fixed placeholder, simulated is true and the run detail says the AI was skipped.
  • Errors. Content to process that renders empty gives node_nothing_to_do. See Error handling.