Plan & track
Lists, boards & tablesTimeline & GanttCalendar
Organize
Spaces, folders & listsCustom fieldsSubtasks, checklists & dependencies
Collaborate
Comments & @mentionsDocs & wikisPublic forms
Automate & connect
AutomationsREST APIBuilt-in MCP server
Solutions
For agenciesFor software teamsFor small business
Resources
Help Documentation Blog Support
More
All features Pricing Roadmap Security ContactSign In Sign Up Free

Help Documentation  / Automate & connect

Embedded Apps

Register an app to embed this workspace's live My Tasks, Inbox, list or task views inside your own site or intranet — scoped to one Space if you choose.

The Embedded Apps admin page showing a registered app's allowed origins, space scope, and the copyable embed snippet.

Register an app once, then drop the snippet into your own site.

What it does

Register your own site or application to embed this workspace's live My Tasks, Inbox, or a specific list or task view — real data, not a static export, restricted to the origins and Space you allow.

Who needs it

A company embedding its workspace inside a client portal, an intranet, or a product they've already built, without giving every user a login inside IterDone itself.

Why use it

Users show up already matched to the right workspace member by email, identities are cryptographically signed by your own backend, and a workspace-scoped app can never reach any tenant but the one that registered it.

How it works

Admin > Embedded Apps lets you embed this workspace's My Tasks, Inbox, or a specific list or task view inside your own application or intranet. Click + Register app to create one.

  • App name — a label for the registration.
  • Allowed origins — a comma-separated list of the exact origins allowed to embed the modules. Nothing renders on a site that isn't listed here.
  • Scope — leave it as "Entire workspace," or restrict the app to one Space. When a Space is picked, the My Tasks and Inbox modules only ever show that Space's items, and a list or task outside it can't be embedded with that app's key at all.

Registering an app gives you a public app key, an embed secret, and a snippet to drop into your page:

<script src="…/embed/task-embed.js" data-app-key="pkembed_…"
data-identity='…' async></script>
<div data-task-module="my-tasks"></div>

The data-identity value is a small JSON payload your own backend signs with the embed secret (HMAC-SHA256 over the tenant id, external user id, email and an expiry — never done in the browser), so your site vouches for who's logging in. Users are matched to workspace members by email; the external tenant id must exactly equal this workspace's slug, since a self-registered app is permanently pinned to the one workspace that created it — it can never provision or reach any other tenant. Rotate secret issues a new embed secret while keeping the old one valid for 24 hours, so you can roll it on your backend without an outage; Delete stops every embed using that app immediately without touching the workspace's own data.

Ready when your team is.

Create your workspace, bring your work across, and get the afternoon back. Iterate until done.

Start Free Nothing to install. Productive on day one. Already have an account? Sign in

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.