Integration

Kordiam integration

Kordiam (formerly Desk-Net) newsroom planning: list, create and update stories and events (elements) with their tasks (assignments with formats, deadlines, assignees and done state) and publications (planned appearances on print or digital platforms, schedules, statuses, publishing), link elements to CMS copies, and manage the planning setup: platforms with their categories and types, groups, custom fields and their options, statuses, task formats, users, absences, shifts and daily shift notes. Not exposed: the token routes, the full replace of an element, and task cost (fees), task upload links and asset link URLs, which are not returned. Authentication is OAuth2 client credentials: an admin generates the client ID and secret on the API credentials page of the Kordiam app; access tokens are fetched automatically. API version 2.0; version 1.0 is deprecated. Rate limits answer 429 with a retryAfter value in seconds.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Kordiam.Built from the 117 Kordiam tools below, on the connection you add once.

What you can do with Kordiam

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Publication custom field option, 12 operations

  • create_publication_custom_field_optionCreate publication custom field optionPOSTAdds a choice option to a selection-type publication custom field for real (field ID from list_publication_custom_fields) and returns the option.
  • delete_publication_custom_field_optionDelete publication custom field optionDELETEDeletes one option of a publication custom field in Kordiam for real, addressed by option ID.
  • delete_publication_custom_field_option_by_external_idDelete publication custom field option by external idDELETEDeletes one option of a publication custom field in Kordiam for real, addressed by its externalId.
  • get_publication_custom_field_optionGet publication custom field optionGETReturns one option of a publication custom field by option ID, as listed in get_publication_custom_field options.
  • get_publication_custom_field_option_by_external_idGet publication custom field option by external idGETReturns one option of a publication custom field by the externalId it carries from your own system.
  • get_publication_custom_field_options_by_dateGet publication custom field options by dateGETReturns the options a selection-type publication custom field offers on one date (yyyy-MM-dd).
  • replace_publication_custom_field_optionReplace publication custom field optionPUTReplaces one option of a publication custom field, addressed by option ID: optional fields left out are cleared. Read it first with get_publication_custom_field_option.
  • replace_publication_custom_field_option_by_external_idReplace publication custom field option by external idPUTReplaces one option of a publication custom field addressed by its externalId: optional fields left out are cleared, externalId included, so send it back.
  • replace_publication_custom_field_options_by_dateReplace publication custom field options by datePUTReplaces, for real, which options of a selection-type publication custom field are offered on one date, by option ID. Options left out lose that date; an empty list clears it.
  • replace_publication_custom_field_options_by_date_external_idsReplace publication custom field options by date external idsPUTReplaces, for real, which options of a selection-type publication custom field are offered on one date, by option externalId. Options left out lose that date.
  • update_publication_custom_field_optionUpdate publication custom field optionPATCHChanges only the fields you send on one option of a publication custom field, addressed by option ID; fields left out keep their value.
  • update_publication_custom_field_option_by_external_idUpdate publication custom field option by external idPATCHChanges only the fields you send on one option of a publication custom field addressed by its externalId. Send externalId in the body only to change it.

Absence, 10 operations

  • create_absenceCreate absencePOSTCreates an absence in Kordiam for real and returns it with its new ID.
  • delete_absenceDelete absenceDELETEDeletes an absence in Kordiam for real, addressed by its Kordiam ID (from list_absences).
  • delete_absence_by_external_idDelete absence by external idDELETEDeletes an absence in Kordiam for real, addressed by its externalId.
  • get_absenceGet absenceGETReturns one absence by its Kordiam ID, as returned by list_absences.
  • get_absence_by_external_idGet absence by external idGETReturns one absence by the externalId it carries from your own system (set on create or update).
  • list_absencesList absencesGETLists the organization's absences, 20 per page by default (size up to 100). Page with cursor set to the returned nextCursor while hasMore is true.
  • replace_absenceReplace absencePUTReplaces an absence entirely, addressed by its Kordiam ID: optional fields you leave out are cleared. Read it first with get_absence and send every value back with your change.
  • replace_absence_by_external_idReplace absence by external idPUTReplaces an absence addressed by its externalId: optional fields left out are cleared, externalId included, so send it back. Read it first with get_absence_by_external_id.
  • update_absenceUpdate absencePATCHChanges only the fields you send on an absence, addressed by its Kordiam ID (from list_absences); fields left out keep their value.
  • update_absence_by_external_idUpdate absence by external idPATCHChanges only the fields you send on an absence addressed by its externalId; fields left out keep their value. Send externalId in the body only to change it.

Element custom field option, 9 operations

  • create_element_custom_field_optionCreate element custom field optionPOSTAdds a choice option to a selection-type story custom field for real (field ID from list_element_custom_fields) and returns the option.
  • delete_element_custom_field_optionDelete element custom field optionDELETEDeletes one option of a story custom field in Kordiam for real, addressed by option ID.
  • delete_element_custom_field_option_by_external_idDelete element custom field option by external idDELETEDeletes one option of a story custom field in Kordiam for real, addressed by its externalId.
  • get_element_custom_field_optionGet element custom field optionGETReturns one option of a story custom field by option ID, as listed in get_element_custom_field options.
  • get_element_custom_field_option_by_external_idGet element custom field option by external idGETReturns one option of a story custom field by the externalId it carries from your own system.
  • replace_element_custom_field_optionReplace element custom field optionPUTReplaces one option of a story custom field, addressed by option ID: optional fields left out are cleared. Read it first with get_element_custom_field_option.
  • replace_element_custom_field_option_by_external_idReplace element custom field option by external idPUTReplaces one option of a story custom field addressed by its externalId: optional fields left out are cleared, externalId included, so send it back.
  • update_element_custom_field_optionUpdate element custom field optionPATCHChanges only the fields you send on one option of a story custom field, addressed by option ID; fields left out keep their value.
  • update_element_custom_field_option_by_external_idUpdate element custom field option by external idPATCHChanges only the fields you send on one option of a story custom field addressed by its externalId. Send externalId in the body only to change it.

Task custom field option, 9 operations

  • create_task_custom_field_optionCreate task custom field optionPOSTAdds a choice option to a selection-type task custom field for real (field ID from list_task_custom_fields) and returns the option.
  • delete_task_custom_field_optionDelete task custom field optionDELETEDeletes one option of a task custom field in Kordiam for real, addressed by option ID.
  • delete_task_custom_field_option_by_external_idDelete task custom field option by external idDELETEDeletes one option of a task custom field in Kordiam for real, addressed by its externalId.
  • get_task_custom_field_optionGet task custom field optionGETReturns one option of a task custom field by option ID, as listed in get_task_custom_field options.
  • get_task_custom_field_option_by_external_idGet task custom field option by external idGETReturns one option of a task custom field by the externalId it carries from your own system.
  • replace_task_custom_field_optionReplace task custom field optionPUTReplaces one option of a task custom field, addressed by option ID: optional fields left out are cleared. Read it first with get_task_custom_field_option.
  • replace_task_custom_field_option_by_external_idReplace task custom field option by external idPUTReplaces one option of a task custom field addressed by its externalId: optional fields left out are cleared, externalId included, so send it back.
  • update_task_custom_field_optionUpdate task custom field optionPATCHChanges only the fields you send on one option of a task custom field, addressed by option ID; fields left out keep their value.
  • update_task_custom_field_option_by_external_idUpdate task custom field option by external idPATCHChanges only the fields you send on one option of a task custom field addressed by its externalId. Send externalId in the body only to change it.

Category, 7 operations

  • create_platform_categoryCreate platform categoryPOSTCreates a category (section) on a publication platform for real (platform ID from list_platforms) and returns it.
  • delete_categoryDelete categoryDELETEDeletes a category in Kordiam for real, addressed by its Kordiam ID (from list_platform_categories).
  • get_categoryGet categoryGETReturns one category by its Kordiam ID, as returned by list_platform_categories.
  • get_category_by_external_idGet category by external idGETReturns one category by the externalId it carries from your own system (set on create or update).
  • list_platform_categoriesList platform categoriesGETLists the categories (sections) of one publication platform (ID from list_platforms), 20 per page by default (size up to 100). Page with cursor set to nextCursor while hasMore is true.
  • replace_categoryReplace categoryPUTReplaces a category entirely, addressed by its Kordiam ID: optional fields you leave out are cleared. Read it first with get_category and send every value back with your change.
  • update_categoryUpdate categoryPATCHChanges only the fields you send on a category, addressed by its Kordiam ID (from list_platform_categories); fields left out keep their value.

Group, 7 operations

  • create_groupCreate groupPOSTCreates a group in Kordiam for real and returns it with its new ID.
  • delete_groupDelete groupDELETEDeletes a group in Kordiam for real, addressed by its Kordiam ID (from list_groups).
  • get_groupGet groupGETReturns one group by its Kordiam ID, as returned by list_groups.
  • get_group_by_external_idGet group by external idGETReturns one group by the externalId it carries from your own system (set on create or update).
  • list_groupsList groupsGETLists the organization's groups, 20 per page by default (size up to 100). Page with cursor set to the returned nextCursor while hasMore is true.
  • replace_groupReplace groupPUTReplaces a group entirely, addressed by its Kordiam ID: optional fields you leave out are cleared. Read it first with get_group and send every value back with your change.
  • update_groupUpdate groupPATCHChanges only the fields you send on a group, addressed by its Kordiam ID (from list_groups); fields left out keep their value.

Platform, 7 operations

  • create_platformCreate platformPOSTCreates a publication platform in Kordiam for real and returns it with its new ID.
  • delete_platformDelete platformDELETEDeletes a publication platform in Kordiam for real, addressed by its Kordiam ID (from list_platforms).
  • get_platformGet platformGETReturns one publication platform by its Kordiam ID, as returned by list_platforms.
  • get_platform_by_external_idGet platform by external idGETReturns one publication platform by the externalId it carries from your own system (set on create or update).
  • list_platformsList platformsGETLists the organization's publication platforms, 20 per page by default (size up to 100). Page with cursor set to the returned nextCursor while hasMore is true.
  • replace_platformReplace platformPUTReplaces a publication platform entirely, addressed by its Kordiam ID: optional fields you leave out are cleared. Read it first with get_platform and send every value back with your change.
  • update_platformUpdate platformPATCHChanges only the fields you send on a publication platform, addressed by its Kordiam ID (from list_platforms); fields left out keep their value.

Type, 7 operations

  • create_platform_typeCreate platform typePOSTCreates a publication type on a publication platform for real (platform ID from list_platforms) and returns it.
  • delete_typeDelete typeDELETEDeletes a publication type in Kordiam for real, addressed by its Kordiam ID (from list_platform_types).
  • get_typeGet typeGETReturns one publication type by its Kordiam ID, as returned by list_platform_types.
  • get_type_by_external_idGet type by external idGETReturns one publication type by the externalId it carries from your own system (set on create or update).
  • list_platform_typesList platform typesGETLists the publication types of one publication platform (ID from list_platforms), 20 per page by default (size up to 100). Page with cursor set to nextCursor while hasMore is true.
  • replace_typeReplace typePUTReplaces a publication type entirely, addressed by its Kordiam ID: optional fields you leave out are cleared. Read it first with get_type and send every value back with your change.
  • update_typeUpdate typePATCHChanges only the fields you send on a publication type, addressed by its Kordiam ID (from list_platform_types); fields left out keep their value.

Shift note, 6 operations

  • create_shift_noteCreate shift notePOSTCreates the daily note of a shift for one date, for real (shift ID from list_shifts).
  • create_shift_note_by_external_idCreate shift note by external idPOSTCreates the daily note of a shift, addressed by the shift externalId, for one date, for real.
  • get_shift_noteGet shift noteGETReturns the daily note of a shift for one date (yyyy-MM-dd), shift ID from list_shifts.
  • get_shift_note_by_external_idGet shift note by external idGETReturns the daily note of a shift, addressed by the shift externalId, for one date (yyyy-MM-dd).
  • replace_shift_noteReplace shift notePUTReplaces the daily note of a shift for one date, for real (shift ID from list_shifts).
  • replace_shift_note_by_external_idReplace shift note by external idPUTReplaces the daily note of a shift, addressed by the shift externalId, for one date, for real.

Shift, 5 operations

  • get_shiftGet shiftGETReturns one shift by its Kordiam ID, as returned by list_shifts.
  • get_shift_by_external_idGet shift by external idGETReturns one shift by the externalId it carries from your own system (set on create or update).
  • list_shiftsList shiftsGETLists the organization's shifts, 20 per page by default (size up to 100). Page with cursor set to the returned nextCursor while hasMore is true.
  • replace_shiftReplace shiftPUTReplaces a shift entirely, addressed by its Kordiam ID: optional fields you leave out are cleared. Read it first with get_shift and send every value back with your change.
  • update_shiftUpdate shiftPATCHChanges only the fields you send on a shift, addressed by its Kordiam ID (from list_shifts); fields left out keep their value.

Element, 4 operations

  • create_elementCreate elementPOSTCreates a story or event in Kordiam for real; confidential is required. Tasks and publications can be added here or later with create_task and create_publication.
  • get_elementGet elementGETReturns one story or event by ID (from list_elements) with its tasks, publications, custom fields, groups and status.
  • list_elementsList elementsGETLists stories and events (elements) with their tasks and publications, filtered by publication, creation, modification or deadline dates, group, platform or assignee. Cursor pagination: pass nextCursor back as cursor.
  • update_elementUpdate elementPATCHChanges only the fields you send on a story or event (ID from list_elements); fields left out keep their value. Returns the updated element.

Publication, 4 operations

  • create_publicationCreate publicationPOSTAdds a publication (a planned appearance on a platform) to a story or event for real; give platformId or categoryId. Returns the updated element. To publish, use publish_publication.
  • delete_publicationDelete publicationDELETEDeletes one publication from a story or event for real (IDs from get_element). The story or event itself stays, even when it was the last publication.
  • publish_publicationPublish publicationPOSTMarks one publication of a story or event as published, for real; Kordiam records the actual publish time. Returns the updated element.
  • update_publicationUpdate publicationPATCHChanges only the fields you send on one publication of a story or event; fields left out keep their value. Published status cannot be set here: use publish_publication.

Task, 4 operations

  • create_taskCreate taskPOSTAdds a task (an assignment such as text, photo or video) to a story or event for real; formatId (from list_task_formats) and confirmationStatusCode are required. Returns the updated element.
  • delete_taskDelete taskDELETEDeletes one task from a story or event for real (IDs from get_element). The story or event itself stays, even when it was the last task.
  • set_tasks_done_stateSet tasks done statePOSTMarks tasks of one story or event as done or not done, for real, in one call: tasks is a list of {taskId, done}. Returns the updated element.
  • update_taskUpdate taskPATCHChanges only the fields you send on one task of a story or event; fields left out keep their value. Changing the deadline date or assignee of a done task reopens it.

External element, 3 operations

  • link_external_elementLink external elementPOSTCreates or updates the link between a story or event and its copy in an external system (CMS), for real. Pass systemUrl to pick the system, else the organization default.
  • list_element_external_bindingsList element external bindingsGETLists every active external-system link (CMS copies) of one story or event (ID from list_elements).
  • unlink_external_elementUnlink external elementPOSTRemoves the link between a story or event and its copy in an external system, for real. Pass systemUrl to pick the system, else the organization default.

Publication schedule, 3 operations

  • delete_publication_scheduleDelete publication scheduleDELETERemoves the schedule of one publication for real; the publication goes back to undated.
  • get_publication_scheduleGet publication scheduleGETReturns the schedule of one publication: a single dated issue (kind single) or a recurring one (kind recurring), with optional exact time or time slot.
  • replace_publication_scheduleReplace publication schedulePUTReplaces the schedule of one publication for real: kind single needs date; kind recurring needs start, type (daily or manual) and for daily a weeklySchedule. Returns the updated element.

Publication status, 3 operations

  • get_publication_statusGet publication statusGETReturns one publication status by its Kordiam ID, as returned by list_publication_statuses.
  • list_platform_publication_statusesList platform publication statusesGETLists the publication statuses available on one publication platform (ID from list_platforms), 20 per page by default. Page with cursor set to nextCursor while hasMore is true.
  • list_publication_statusesList publication statusesGETLists the organization's publication statuses, 20 per page by default (size up to 100). Page with cursor set to the returned nextCursor while hasMore is true.

Element custom field, 2 operations

  • get_element_custom_fieldGet element custom fieldGETReturns one story custom field by its Kordiam ID, as returned by list_element_custom_fields.
  • list_element_custom_fieldsList element custom fieldsGETLists the organization's story custom fields, 20 per page by default (size up to 100). Page with cursor set to the returned nextCursor while hasMore is true.

Element status, 2 operations

  • get_element_statusGet element statusGETReturns one story status by its Kordiam ID, as returned by list_element_statuses.
  • list_element_statusesList element statusesGETLists the organization's story statuses, 20 per page by default (size up to 100). Page with cursor set to the returned nextCursor while hasMore is true.

Publication custom field, 2 operations

  • get_publication_custom_fieldGet publication custom fieldGETReturns one publication custom field by its Kordiam ID, as returned by list_publication_custom_fields.
  • list_publication_custom_fieldsList publication custom fieldsGETLists the organization's publication custom fields, 20 per page by default (size up to 100). Page with cursor set to the returned nextCursor while hasMore is true.

Task custom field, 2 operations

  • get_task_custom_fieldGet task custom fieldGETReturns one task custom field by its Kordiam ID, as returned by list_task_custom_fields.
  • list_task_custom_fieldsList task custom fieldsGETLists the organization's task custom fields, 20 per page by default (size up to 100). Page with cursor set to the returned nextCursor while hasMore is true.

Task format, 2 operations

  • get_task_formatGet task formatGETReturns one task format by its Kordiam ID, as returned by list_task_formats.
  • list_task_formatsList task formatsGETLists the organization's task formats, 20 per page by default (size up to 100). Page with cursor set to the returned nextCursor while hasMore is true.

Task status, 2 operations

  • get_task_statusGet task statusGETReturns one task status by its Kordiam ID, as returned by list_task_statuses.
  • list_task_statusesList task statusesGETLists the organization's task statuses, 20 per page by default (size up to 100). Page with cursor set to the returned nextCursor while hasMore is true.

User, 2 operations

  • get_userGet userGETReturns one user by its Kordiam ID, as returned by list_users.
  • list_usersList usersGETLists the organization's users (staff and, with includeExternal, freelancers) with name, email and groups, 20 per page by default (size up to 100). Page with cursor set to nextCursor.

Element custom field value, 1 operation

  • update_element_custom_field_valuesUpdate element custom field valuesPATCHSets custom field values on a story or event (ID from list_elements); only the fields listed change. Returns the updated element.

Platform manual schedule, 1 operation

  • delete_platform_manual_schedule_dateDelete platform manual schedule dateDELETEDeletes one manually entered publication date from a platform for real (IDs from get_platform, manualSchedule).

Task custom field value, 1 operation

  • update_task_custom_field_valuesUpdate task custom field valuesPATCHSets custom field values on one task of a story or event; only the fields listed change. Returns the updated element.

Use Kordiam from Claude Code, Cursor or Codex

Connect Kordiam in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Kordiam operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Kordiam

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Kordiam once

    Add your Kordiam connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Kordiam integration FAQ

What can you do with the Kordiam integration?

LiveContext exposes 117 operations on Kordiam, covering publication custom field option, absence, element custom field option and task custom field option.

Popular integrations

Browse the whole catalog