Integration

XTRF Home Portal integration

XTRF (sold by XTM as XTM XTRF) is a business management platform for translation agencies. Through the Home Portal API an agent can manage clients and their contact persons, read vendors, create and update Smart projects and quotes (languages, deadlines, notes, custom fields, files, receivables and payables, status) and their jobs, work with Classic projects, quotes and tasks, create client and vendor invoices and record payments, manage project groups, read dictionaries, users and services, record exchange rates, run macros, read saved views and subscribe webhooks. Not exposed: view configuration, reports, license and mail or FTP settings, passwords and sign-in tokens, file downloads and invoice documents, sensitive client and trusted vendor lists, dictionary editing, CAT tool and prospecting routes. instance_url is the address of your XTRF platform (for example https://yourcompany.s.xtrf.eu, or a self-hosted one). Authentication is a Home Portal access token, generated for a user under Configuration, User Management, Users, Access Tokens, sent in the X-AUTH-ACCESS-TOKEN header; the Home Portal API is part of selected XTRF plans.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in XTRF Home Portal.Built from the 148 XTRF Home Portal tools below, on the connection you add once.

What you can do with XTRF Home Portal

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.

Custom field, 8 operations

  • get_classic_project_custom_fieldsGet classic project custom fieldsGETReturns the custom fields of a Classic project, each with its type, name, key and value.
  • get_client_custom_fieldsGet client custom fieldsGETReturns the custom fields of a client, each with its type, name, key and value.
  • get_project_custom_fieldsGet project custom fieldsGETReturns the custom fields of a Smart project, each with its type, name, key and value.
  • get_quote_custom_fieldsGet quote custom fieldsGETReturns the custom fields of a Smart quote, each with its type, name, key and value.
  • get_vendor_custom_fieldsGet vendor custom fieldsGETReturns the custom fields of a vendor, each with its type, name, key and value.
  • list_custom_field_configurationList custom field configurationGETReturns the custom field configuration: key, name, type, selection items, default value, scope (where it applies), services and visibility of each field. scope filters the list.
  • update_classic_project_custom_fieldsUpdate classic project custom fieldsPUTUpdates custom fields of a Classic project. Send a list of {"type", "key", "value"} entries as returned by get_classic_project_custom_fields; a date value is {"time": <epoch ms>}.
  • update_client_custom_fieldsUpdate client custom fieldsPUTUpdates custom fields of a client. Send a list of {"type", "key", "value"} entries as returned by get_client_custom_fields; a DATE value is {"time": <epoch ms>}.

Id, 8 operations

  • list_classic_project_idsList classic project idsGETReturns the internal ids of Classic projects (a list of numbers), optionally only those modified since a moment.
  • list_classic_quote_idsList classic quote idsGETReturns the internal ids of Classic quotes (a list of numbers), optionally only those modified since a moment.
  • list_client_idsList client idsGETReturns the internal ids of clients (a list of numbers), filtered by an exact name, an exact e-mail or a last-modification moment.
  • list_client_invoice_idsList client invoice idsGETReturns the internal ids of client invoices (a list of numbers), optionally only those modified since a moment.
  • list_client_person_idsList client person idsGETReturns the internal ids of clients' contact persons (a list of numbers), optionally only those modified since a moment.
  • list_vendor_idsList vendor idsGETReturns the internal ids of vendors (a list of numbers), optionally only those modified since a moment.
  • list_vendor_invoice_idsList vendor invoice idsGETReturns the internal ids of vendor invoices (a list of numbers), optionally only those modified since a moment.
  • list_vendor_person_idsList vendor person idsGETReturns the internal ids of vendors' contact persons (a list of numbers), optionally only those modified since a moment.

Invoice, 8 operations

  • create_client_invoiceCreate client invoicePOSTCreates client invoices (FINAL or DRAFT) from Classic project tasks. Tasks are grouped by client and currency, so several invoices can be created; returns their ids.
  • create_vendor_invoiceCreate vendor invoicePOSTCreates vendor invoices from jobs. Jobs are grouped by vendor and currency, so several invoices can be created; returns their ids. A job already invoiced makes the call fail.
  • delete_client_invoiceDelete client invoiceDELETEDeletes a client invoice, by its internal id.
  • delete_vendor_invoiceDelete vendor invoiceDELETEDeletes a vendor invoice, by its internal id.
  • get_client_invoiceGet client invoiceGETReturns a client invoice: number, type, status, client and billing details, currency, gross and net totals, dates and payment terms. embed=tasks adds the invoiced tasks.
  • get_vendor_invoiceGet vendor invoiceGETReturns a vendor invoice: draft, final and internal numbers, status, payment status, vendor, currency, gross total, jobs value, dates and notes from the vendor.
  • list_client_invoicesList client invoicesGETLists client invoices in every status, drafts and not-ready ones included. Use updatedSince to get only those changed since a moment.
  • list_vendor_invoicesList vendor invoicesGETLists vendor invoices in every status, drafts and not-ready ones included. Use updatedSince to get only those changed since a moment.

Contact, 5 operations

  • get_client_contactGet client contactGETReturns the contact details of a client: e-mails (primary, cc, additional), phones, fax, sms and websites.
  • get_client_person_contactGet client person contactGETReturns the contact details of a client contact person: e-mails, phones, fax and sms.
  • get_vendor_contactGet vendor contactGETReturns the contact details of a vendor: e-mails (primary, cc, additional), phones, fax, sms and websites.
  • get_vendor_person_contactGet vendor person contactGETReturns the contact details of a vendor contact person: e-mails, phones, fax and sms.
  • update_client_contactUpdate client contactPUTReplaces the contact details of a client: e-mails (primary, cc, additional), phones, fax, sms and websites.

Customer, 5 operations

  • create_clientCreate clientPOSTCreates a client. name, fullName and contact.emails.primary are required; addresses, status, responsible people, categories and other fields can be set too. Returns the created client.
  • delete_clientDelete clientDELETEDeletes a client from XTRF, by its internal id.
  • get_clientGet clientGETReturns a client: number, names, status, notes, billing and correspondence addresses, contact, responsible people, accounting, categories, industries and custom fields. embed=persons adds its contact persons.
  • list_clientsList clientsGETLists every client as id and name. Use updatedSince to get only clients changed since a moment, and excludeErased to leave out erased clients.
  • update_clientUpdate clientPUTUpdates a client: only the fields sent are changed, and id must repeat customerId. Contact persons are managed with the person tools, custom fields with update_client_custom_fields.

Date, 4 operations

  • get_classic_project_datesGet classic project datesGETReturns the dates of a Classic project: start date, deadline, actual start and actual delivery, each as {"time": <epoch ms>}.
  • get_client_invoice_datesGet client invoice datesGETReturns the dates of a client invoice: draft, final, invoice and payment due dates, each as {"time": <epoch ms>}.
  • get_task_datesGet task datesGETReturns the dates of a Classic task: start date, deadline, actual start and actual delivery, each as {"time": <epoch ms>}.
  • update_classic_project_datesUpdate classic project datesPUTUpdates the dates of a Classic project (start date, deadline, actual start, actual delivery), each sent as {"time": <epoch ms>}.

File, 4 operations

  • list_classic_job_filesList classic job filesGETReturns the input and output files of a job of a Classic project: id, name, size and last modification.
  • list_project_filesList project filesGETLists the files added to a Smart project (files with a category and languages): id, name, size, category, languages, who added it, link URL and sent-to-client status.
  • list_quote_filesList quote filesGETLists the files added to a Smart quote (files with a category and languages).
  • list_task_filesList task filesGETReturns the files of a Classic task: input files by category, output files, bundles, files per job and preview files.

Finance, 4 operations

  • get_classic_project_financeGet classic project financeGETReturns the finance of a Classic project: currency, total agreed and total cost, profit and margin, and its receivables and payables.
  • get_classic_quote_financeGet classic quote financeGETReturns the finance of a Classic quote: currency, totals, profit and margin, and its receivables and payables.
  • get_project_financeGet project financeGETReturns the finance of a Smart project: currency, total agreed and total cost, profit and margin, and its receivables and payables.
  • get_quote_financeGet quote financeGETReturns the finance of a Smart quote: currency, totals, profit and margin, and its receivables and payables.

Payment, 4 operations

  • add_client_invoice_paymentAdd client invoice paymentPOSTRecords a payment on a client invoice; XTRF recalculates its payment status (not paid, partially paid, fully paid).
  • add_vendor_invoice_paymentAdd vendor invoice paymentPOSTRecords a payment to a vendor on its account and assigns it to the vendor invoice.
  • list_client_invoice_paymentsList client invoice paymentsGETLists the payments recorded on a client invoice: amount, date, payment method and notes.
  • list_vendor_invoice_paymentsList vendor invoice paymentsGETLists the payments recorded on a vendor invoice: amount, date, payment method and notes.

Person, 4 operations

  • create_client_personCreate client personPOSTCreates a contact person for a client. name, customerId and contact.emails.primary are needed; lastName, position, gender and native languages can be set too.
  • delete_client_personDelete client personDELETEDeletes a client contact person, by its internal id.
  • get_client_personGet client personGETReturns a client contact person: names, client, position, gender, native languages, contact, custom fields and activity dates.
  • get_vendor_personGet vendor personGETReturns a vendor contact person: names, vendor, position, gender, native languages, contact and custom fields.

Project, 4 operations

  • create_classic_projectCreate classic projectPOSTCreates a Classic project for a client with a Classic service, specialization, languages, dates, instructions, responsible people and input files. A Smart service id answers 400; use create_project for Smart.
  • create_projectCreate projectPOSTCreates a Smart project for a client with a Smart service and a name; set languages, deadline, notes and files afterwards with the update_project_* and file tools. A Classic service id answers 400.
  • get_classic_projectGet classic projectGETReturns a Classic project: number, name, client, contact person, status, dates, finance totals, categories, project manager, specialization and custom fields. embed=tasks adds its tasks. A Smart project id answers 400.
  • get_projectGet projectGETReturns a Smart project: number, name, status, client, service, dates, notes, volume, languages, confirmation status and project manager. A Classic project id answers 400.

Add link, 3 operations

  • add_job_delivered_file_linkAdd job delivered file linkPOSTAdds file links to a Smart project as links delivered in a job; each needs a url and a category, plus languages when the category depends on them.
  • add_project_file_linksAdd project file linksPOSTAdds file links to a Smart project as added by the project manager; each needs a url and a category, plus languages when the category depends on them.
  • add_quote_file_linksAdd quote file linksPOSTAdds file links to a Smart quote as added by the project manager; each needs a url and a category, plus languages when the category depends on them.

Job, 3 operations

  • get_jobGet jobGETReturns a job of a Smart project or quote: number, name, status, step, languages, vendor and price profile, dates, shared and delivered file ids, instructions and purchase order status.
  • list_project_jobsList project jobsGETLists the jobs of a Smart project, each with its status, step, languages, vendor, dates and files.
  • list_quote_jobsList quote jobsGETLists the jobs of a Smart quote, each with its status, step, languages, vendor, dates and files.

Project group, 3 operations

  • create_project_groupCreate project groupPOSTCreates a project group (a set of projects and quotes followed together, with a budget) for some clients.
  • get_project_groupGet project groupGETReturns a project group: number, name, status, clients, linked Classic and Smart projects and quotes, categories, and its budget, totals, profit and margin.
  • list_project_groupsList project groupsGETLists the project groups with their number, name, status, clients, linked Classic and Smart projects and quotes, and financial summary.

Quote, 3 operations

  • create_quoteCreate quotePOSTCreates a Smart quote for a client with a Smart service and a name; set languages, dates and notes afterwards with the update_quote_* tools. A Classic service id answers 400.
  • get_classic_quoteGet classic quoteGETReturns a Classic quote: number, name, client, status, dates, finance, tasks and custom fields. A Smart quote id answers 400.
  • get_quoteGet quoteGETReturns a Smart quote: number, name, status, client, service, creation, expiry and expected delivery dates, notes, volume, languages and project manager. A Classic quote id answers 400.

Receivable, 3 operations

  • add_classic_project_receivableAdd classic project receivablePOSTAdds a receivable (an amount charged to the client) to a Classic project, for example type SIMPLE with a job type, rate, quantity, calculation unit and the task it belongs to.
  • add_project_receivableAdd project receivablePOSTAdds a receivable (an amount charged to the client) to a Smart project, for example type SIMPLE with a job type, language pair, rate, quantity and calculation unit.
  • add_quote_receivableAdd quote receivablePOSTAdds a receivable (an amount charged to the client) to a Smart quote, for example type SIMPLE with a job type, language pair, rate, quantity and calculation unit.

Subscription, 3 operations

  • create_webhook_subscriptionCreate webhook subscriptionPOSTSubscribes a URL to an XTRF event (for example job_status_changed or quote_created); XTRF then calls the URL on each event. Returns the subscription id.
  • delete_webhook_subscriptionDelete webhook subscriptionDELETEDeletes a webhook subscription.
  • list_webhook_subscriptionsList webhook subscriptionsGETLists the webhook subscriptions. XTRF removes a subscription whose URL stops working (for example answers 404), so check it here and subscribe again when needed.

Active, 2 operations

  • list_active_dictionary_valuesList active dictionary valuesGETReturns the active values of one dictionary (languages, countries, currencies, specializations, job types, calculation units...), each with its id and name. nameEquals finds one by exact name.
  • list_active_servicesList active servicesGETLists the active services (workflows), each with its id and whether it is a Classic or Smart service. Use a Classic service id with create_classic_project and a Smart one with create_project.

Address, 2 operations

  • get_client_addressGet client addressGETReturns the billing address of a client: address lines, city, postal code, province and country ids.
  • update_client_addressUpdate client addressPUTUpdates the billing address of a client. Send countryId and provinceId as ids from list_active_dictionary_values (types country and province).

Exchange rate, 2 operations

  • add_currency_exchange_rateAdd currency exchange ratePOSTRecords a new exchange rate for a currency, applying from dateFrom.
  • get_currency_exchange_ratesGet currency exchange ratesGETReturns the exchange rates recorded for a currency, with the date each applies from and where it came from.

Payable, 2 operations

  • add_classic_project_payableAdd classic project payablePOSTAdds a payable (an amount owed to a vendor) to a Classic project, for example type SIMPLE with the job, rate, quantity and calculation unit.
  • add_project_payableAdd project payablePOSTAdds a payable (an amount owed to a vendor) to a Smart project, for example type SIMPLE with the job, language pair, rate, quantity and calculation unit.

Send, 2 operations

  • send_classic_quote_for_confirmationSend classic quote for confirmationPOSTSends a Classic quote to the client for confirmation: its status becomes SENT and the quote document is sent to the client.
  • send_vendor_invoiceSend vendor invoicePOSTSends a vendor invoice to the vendor.

Start, 2 operations

  • start_classic_quoteStart classic quotePOSTStarts a Classic quote, by its internal id.
  • start_taskStart taskPOSTStarts a Classic task of a project or quote, by its internal id.

Status, 2 operations

  • change_vendor_invoice_statusChange vendor invoice statusPOSTChanges the status of a vendor invoice: POSTPONED, TO_BE_SENT, SENT, CONFIRMED or BILL_CREATED.
  • update_classic_job_statusUpdate classic job statusPUTChanges the status of a job to OPEN, ACCEPTED, STARTED, READY or CANCELLED; a transition XTRF does not allow answers 400 Bad Request. For jobs of Classic projects.

User, 2 operations

  • get_userGet userGETReturns a Home Portal user: names, e-mail, login, position, group and time zone.
  • list_usersList usersGETLists every Home Portal user as id and name.

Vendor, 2 operations

  • assign_classic_job_vendorAssign classic job vendorPUTAssigns a vendor to a job of a Classic project through a vendor price profile, optionally recalculating the rates.
  • assign_job_vendorAssign job vendorPUTAssigns a vendor to a job of a Smart project through a vendor price profile.

Add, 1 operation

  • add_project_filesAdd project filesPUTAdds files uploaded with upload_project_file to a Smart project, each with its category (required) and languages or language pairs when the category depends on them.

All, 1 operation

  • list_dictionary_valuesList dictionary valuesGETReturns all values of one dictionary, active and inactive, each with its id, name and active flag. nameEquals finds one by exact name.

Browser, 1 operation

  • browse_viewBrowse viewGETReturns the rows of a saved Home Portal view (for example a list of projects with its filter and columns): the column definitions, pagination and, per row, the record id and the column values.

Budget code, 1 operation

  • list_client_budget_codesList client budget codesGETReturns the budget codes available for a client (a list of strings).

By alia, 1 operation

  • get_client_by_aliasGet client by aliasGETFinds a client by the alias it has in an external system connected to XTRF and returns the same details as get_client.

Client contact, 1 operation

  • get_project_client_contactsGet project client contactsGETReturns the client contact persons of a Smart project: the primary contact and the additional ones.

Competency, 1 operation

  • list_vendor_competenciesList vendor competenciesGETReturns the language combinations a vendor works in.

Deliverable, 1 operation

  • list_project_deliverable_filesList project deliverable filesGETLists the files of a Smart project ready to deliver to the client: added in a job of the last process step, verified when required, and from a job in Ready status.

Delivered, 1 operation

  • list_job_delivered_filesList job delivered filesGETLists the files delivered in a Smart job: id, name, size, category, languages, who added it and in which step, link URL and sent-to-client status.

Dictionary, 1 operation

  • get_dictionary_valueGet dictionary valueGETReturns one value of a dictionary by its id: name, active, preferred and default flags (and symbol and ISO code for a currency).

For, 1 operation

  • list_browser_viewsList browser viewsGETLists the saved views available for a kind of record (for example project), with their ids; pass an id to browse_view.

For external id, 1 operation

  • get_project_by_external_idGet project by external idGETReturns a Smart project by the external identifier set by an integration, with the same details as get_project.

Input, 1 operation

  • add_task_input_filesAdd task input filesPOSTAdds an input file to a Classic task, from a token returned by upload_temporary_file or from a URL, with its category.

Invitation, 1 operation

  • send_vendor_portal_invitationsSend vendor portal invitationsPOSTSends invitations to the Vendor Portal to a vendor and its contact persons.

Language, 1 operation

  • list_client_languagesList client languagesGETReturns the languages offered to a client in the Client Portal, as ids and names.

Link project, 1 operation

  • link_projects_to_groupLink projects to groupPUTAdds Classic projects (projectIds) and Smart projects (smartProjectIds) to a project group.

Me, 1 operation

  • get_current_userGet current userGETReturns the user that owns the access token: names, e-mail, login, position, group and time zone.

Payment term, 1 operation

  • get_client_invoice_payment_termsGet client invoice payment termsGETReturns the payment terms of a client invoice: their name and description.

Progress, 1 operation

  • get_task_progressGet task progressGETReturns the progress of a Classic task: its status (for example opened or ready) and its current workflow phase, the first phase with jobs not ready yet.

Provider, 1 operation

  • get_vendorGet vendorGETReturns a vendor (a translator or agency working for you): number, names, status, notes, addresses, contact, language competencies and custom fields. embed=persons adds its contact persons.

Run, 1 operation

  • run_macroRun macroPOSTRuns an XTRF macro on a list of record ids (ids), with optional params. Synchronous by default; async=true returns an action id and status and result URLs instead.

Send reminder, 1 operation

  • send_client_invoice_reminderSend client invoice reminderPOSTSends a payment reminder for a client invoice to the client.

Shared work file, 1 operation

  • list_job_shared_work_filesList job shared work filesGETLists the files shared with a Smart job as work files.

Specialization, 1 operation

  • list_client_specializationsList client specializationsGETReturns the specializations offered to a client in the Client Portal, as ids and names.

Task, 1 operation

  • create_classic_project_taskCreate classic project taskPOSTCreates a task in a Classic project. languageCombination, specializationId and workflowId are required; name, PO number, dates, instructions, people and files (tokens from upload_temporary_file) are optional.

Unlink project, 1 operation

  • unlink_projects_from_groupUnlink projects from groupPUTRemoves Classic projects (projectIds) and Smart projects (smartProjectIds) from a project group.

Showing the first 120 of 148 endpoints. The rest are in the product, searchable from the workflow builder and from chat.

Use XTRF Home Portal from Claude Code, Cursor or Codex

Connect XTRF Home Portal in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its XTRF Home Portal 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 XTRF Home Portal

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect XTRF Home Portal once

    Add your XTRF Home Portal 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.

XTRF Home Portal integration FAQ

What can you do with the XTRF Home Portal integration?

LiveContext exposes 148 operations on XTRF Home Portal, covering custom field, id, invoice and contact.

Popular integrations

Browse the whole catalog