---
name: "documents_create_deck"
area: "documents"
title: "Make a PowerPoint deck"
price: "$0.10"
method: "POST"
url: "https://api.conecto.chat/v1/tools/documents_create_deck"
mcp_server: "https://api.conecto.chat/mcp/documents"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/documents/documents_create_deck"
---

# Make a PowerPoint deck (`documents_create_deck`)

A PowerPoint deck from your slides, plain or in the business's template, with editable charts, tables and each slide's sources.

A PowerPoint deck from your slides, saved in the file store with a download link (and a PDF with pdf: true): title and section slides, bullet text, big-number KPIs, tables, native charts (bar, column, stacked, line, pie, radar) that stay editable, the football field from valuation_football_field (its deck_block), and images. Each slide can carry its sources, shown under it, and speaker notes. In Conecto's plain board style, or in the business's own template (a .pptx or .potx in the store): its layouts, fonts and colours. You write every word.

Price: $0.10 a call. A call that fails costs nothing.

## Use it when

For a board pack, an outside-in analysis or a market report the business will present.

- For a document to read rather than present, use [documents_create_pdf](https://conecto.chat/tools/documents/documents_create_pdf.md).

## Say this to your agent

> Turn the Kuechentechnik Nord analysis into slides for Thursday's board meeting, in our template.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `name` | string | yes | Name for the new file, e.g. "Quote 1042.pdf". 1 to 200 characters. |  |  |
| `slides` | array of objects | yes | 1 to 40 items. |  |  |
| `slides[].type` | string | yes, in each item of `slides` | title, section and text slides take words; kpis big numbers; table, chart and football_field figures; image a picture from the file store. | `"title"`, `"section"`, `"text"`, `"kpis"`, `"table"`, `"chart"`, `"football_field"`, `"image"` |  |
| `slides[].title` | string | no | Up to 160 characters. |  |  |
| `slides[].subtitle` | string | no | Up to 300 characters. |  |  |
| `slides[].date` | string | no | Up to 60 characters. |  |  |
| `slides[].bullets` | array of strings | no | Up to 10 items. |  |  |
| `slides[].items` | array of objects | no | 1 to 6 items. |  |  |
| `slides[].items[].label` | string | yes, in each item of `slides[].items` | Up to 80 characters. |  |  |
| `slides[].items[].value` | string or number | yes, in each item of `slides[].items` | Up to 24 characters. |  |  |
| `slides[].items[].note` | string | no | Up to 120 characters. |  |  |
| `slides[].columns` | array of strings | no | 1 to 8 items. |  |  |
| `slides[].rows` | array of arrays | no | 1 to 15 items. |  |  |
| `slides[].chart` | string | no |  | `"bar"`, `"column"`, `"stacked_column"`, `"line"`, `"pie"`, `"radar"` | `"column"` |
| `slides[].categories` | array of string or number | no | 1 to 24 items. |  |  |
| `slides[].series` | array of objects | no | 1 to 6 items. |  |  |
| `slides[].series[].name` | string | yes, in each item of `slides[].series` | Up to 60 characters. |  |  |
| `slides[].series[].values` | array of number or null | yes, in each item of `slides[].series` | Up to 24 items. |  |  |
| `slides[].format` | string | no | How table and chart figures read: 1,234 / 14.2% (give 0.142) / 8.5x. | `"number"`, `"percent"`, `"multiple"` | `"number"` |
| `slides[].decimals` | integer | no | 0 to 3. |  | `0` |
| `slides[].column_formats` | array of strings | no | A table's format per column, instead of one format for all. Up to 8 items. | `"text"`, `"number"`, `"percent"`, `"multiple"` |  |
| `slides[].ranges` | array of objects | no | 1 to 12 items. |  |  |
| `slides[].ranges[].method` | string | yes, in each item of `slides[].ranges` | Up to 80 characters. |  |  |
| `slides[].ranges[].low` | number | yes, in each item of `slides[].ranges` |  |  |  |
| `slides[].ranges[].high` | number | yes, in each item of `slides[].ranges` |  |  |  |
| `slides[].ranges[].midpoint` | number | no |  |  |  |
| `slides[].markers` | array of objects | no | Up to 5 items. |  |  |
| `slides[].markers[].label` | string | yes, in each item of `slides[].markers` | Up to 60 characters. |  |  |
| `slides[].markers[].value` | number | yes, in each item of `slides[].markers` |  |  |  |
| `slides[].currency` | string | no | Up to 10 characters. |  |  |
| `slides[].file_id` | string | no | For an image slide: a PNG or JPEG in the file store. Exactly 36 characters. |  |  |
| `slides[].caption` | string | no | Up to 200 characters. |  |  |
| `slides[].sources` | array of strings | no | Shown under the slide: the register, filing or statistic each figure came from. Up to 6 items. |  |  |
| `slides[].notes` | string | no | Speaker notes. Up to 4,000 characters. |  |  |
| `template_file_id` | string | no | The business's own PowerPoint template; its sample slides are left out. Exactly 36 characters. |  |  |
| `logo_file_id` | string | no | A PNG or JPEG logo for the title slide (plain style). Exactly 36 characters. |  |  |
| `accent` | string | no | The plain style's one colour, e.g. #1E3A8A. Matches ^#?[0-9A-Fa-f]{6}$. |  |  |
| `pdf` | boolean | no |  |  | `false` |
| `link_hours` | integer | no | 1 to 168. |  | `24` |

## Example

Written for Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff.

MCP: call `documents_create_deck` on the MCP server `https://api.conecto.chat/mcp/documents` with these arguments:

```json
{
  "name": "Kuechentechnik Nord, first look.pptx",
  "slides": [
    {
      "type": "title",
      "title": "Kuechentechnik Nord GmbH",
      "subtitle": "A first look for Hansen & Voss",
      "date": "October 2026"
    },
    {
      "type": "kpis",
      "title": "The company in four numbers",
      "items": [
        {
          "label": "Revenue 2025",
          "value": "EUR 18.4m"
        },
        {
          "label": "EBITDA margin",
          "value": "14.1%"
        },
        {
          "label": "Staff",
          "value": "64"
        },
        {
          "label": "Founded",
          "value": "1998"
        }
      ],
      "sources": [
        "Bundesanzeiger, annual accounts 2025"
      ]
    },
    {
      "type": "football_field",
      "title": "Enterprise value (EUR m)",
      "ranges": [
        {
          "method": "DCF",
          "low": 19.8,
          "high": 24.6
        },
        {
          "method": "Trading multiples",
          "low": 18.2,
          "high": 23.9
        }
      ],
      "markers": [
        {
          "label": "Ask",
          "value": 25.0
        }
      ]
    }
  ]
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/documents_create_deck \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Kuechentechnik Nord, first look.pptx", "slides": [{"type": "title", "title": "Kuechentechnik Nord GmbH", "subtitle": "A first look for Hansen & Voss", "date": "October 2026"}, {"type": "kpis", "title": "The company in four numbers", "items": [{"label": "Revenue 2025", "value": "EUR 18.4m"}, {"label": "EBITDA margin", "value": "14.1%"}, {"label": "Staff", "value": "64"}, {"label": "Founded", "value": "1998"}], "sources": ["Bundesanzeiger, annual accounts 2025"]}, {"type": "football_field", "title": "Enterprise value (EUR m)", "ranges": [{"method": "DCF", "low": 19.8, "high": 24.6}, {"method": "Trading multiples", "low": 18.2, "high": 23.9}], "markers": [{"label": "Ask", "value": 25.0}]}]}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "documents_create_deck",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.10",
  "balance_usd": "$19.75",
  "result": {
    "file": {
      "file_id": "a87abbb1-e05d-4e25-87b2-7032371badf2",
      "name": "Kuechentechnik Nord, first look.pptx",
      "content_type": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
      "size": "31.2 KB",
      "size_bytes": 31919,
      "sha256": "8fef02484024486545fc2ecad491e74b0ea2a246ad8215e93d52faef37144a6c",
      "created_at": "2026-10-14T08:00:00+00:00",
      "download_url": "https://cncto.co/d/a87abbb1-e05d-4e25-87b2-7032371badf2?t=eyJmIjoiYTg3YWJiYjEtZTA1ZC00ZTI1LTg3YjItNzAzMjM3MWJhZGYyIiwiZXhwIjoxNzkyODUzODAzfQ:1xKGhH:N81b4ZTbaOR5HwYVsOB9FZmXBYLLFEj15nLYTZ2DcW8",
      "link_expires_in_hours": 24
    },
    "slides": 3
  }
}
```

`result`: file (file_id, name, download_url and the rest of a stored file), slides (how many), and pdf, the PDF's file, when pdf is true.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `invalid_input` | 400 | A slide lacks what its type needs, or its rows, values or ranges don't fit together. | The message names the slide and what to change. |
| `unsupported_type` | 400 | The template isn't a .pptx or .potx, or an image or logo isn't a PNG or JPEG. | Upload the right kind of file. |
| `not_found` | 404 | No file with that id on this account. | files_list shows them. |
| `deck_error` | 422 | The template doesn't open, or a slide could not be drawn. | Use another template, or change the slide the message names. |
| `deck_too_slow` | 422 | Making the deck took over a minute. | Send fewer slides at a time. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [documents_create_pdf](https://conecto.chat/tools/documents/documents_create_pdf.md): Makes a PDF from Markdown or HTML and saves it in the file store with a download link. $0.02 a call.
- [documents_convert_to_pdf](https://conecto.chat/tools/documents/documents_convert_to_pdf.md): Turns a Word, Excel, PowerPoint, OpenDocument, RTF, CSV, text, Markdown or HTML file into a PDF; the original stays. $0.02 a call.
- [documents_template_fields](https://conecto.chat/tools/documents/documents_template_fields.md): The placeholders in a Word (.docx) template, so you know what data filling it needs. Free up to 1,000,000 reads a month.
- [documents_fill_template](https://conecto.chat/tools/documents/documents_fill_template.md): Makes a new Word file from a .docx template, its placeholders filled from data. $0.02 a call.
- [documents_merge_pdfs](https://conecto.chat/tools/documents/documents_merge_pdfs.md): Makes one PDF from several in the store, in the order given. $0.01 a call.
- [documents_read_pdf](https://conecto.chat/tools/documents/documents_read_pdf.md): The text of a PDF in the store, page by page, up to 50 pages a call. Free up to 1,000,000 reads a month.
- [documents_page_images](https://conecto.chat/tools/documents/documents_page_images.md): The pages of a scanned PDF or a photo of a document as images to look at, up to 10 pages a call. $0.005 a call.
