Pushing content
The three push workflows in the inklet SDK — Auto, Manual, and Hardcode — and what each one decides for you.
inklet.push.* is the high-level entry point. Each method takes assets,
creates a Content, uploads any binaries, retries a failed upload once, confirms
the Content, and hands back the result.
The three methods differ in how much of the decision you keep and whether inklet AI processes the assets.
| Chooses the display | Lays out the content | Plan | Assets | |
|---|---|---|---|---|
push.auto | inklet | inklet AI | Pro | 1–50, any type |
push.manual | You | inklet AI | Pro | 1–50, any type |
push.hardcode | You | You | Free or Pro | exactly 1 PNG or JPEG |
See Plans and AI features for authorization behavior and upgrade handling.
Shared options
Every push accepts:
| Option | Type | Notes |
|---|---|---|
assets | InkletAsset[] | At least one. Build them with inklet.assets.*. |
title | string | Optional label, shown in the dashboard. |
intent | string | Optional sentence of direction for the layout. |
idempotencyKey | string | Optional. Generated if omitted, and always returned. |
push.manual and push.hardcode additionally require displayId.
Shared result
All three return the same shape:
Prop
Type
presentationIds is commonly empty on return, and state is commonly
processing. That is success, not failure — rendering happens after the call.
See Lifecycle.
What intent is for
intent is a sentence of direction, not a template and not a prompt for prose.
It steers how inklet arranges what you sent:
intent: "Make the key update easy to scan"
intent: "Lead with the number, keep the chart secondary"
intent: "This is a reference sheet — density over drama"It is optional. Without it, inklet infers a layout from the assets themselves.
Assets
Build assets through inklet.assets.* so they are validated in your process,
before a request is made:
inklet.assets.text("Milk, eggs, coffee");
inklet.assets.link("https://example.com/report");
inklet.assets.image({ data, filename: "chart.png", contentType: "image/png" });
inklet.assets.file({ data, filename: "menu.pdf", contentType: "application/pdf" });Limits: 10 MiB per binary asset, 50 assets per Content. See Assets for accepted content types.