A new domain mapping is created from the Domains tab. The dialog starts with the direction (outgoing or incoming), then asks for the target system integration and the source and target domains.
Time report mappings expose the same trigger actions but the edit modal includes an extra date-range section.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Twine Integrations","colors":{"primary":"#7600ff","light":"#ad66ff","dark":"#7600ff"},"logo":{"light":"https://mintcdn.com/entwineab/W0WCY-b2dvTokvLn/logo/light.svg?fit=max\u0026auto=format\u0026n=W0WCY-b2dvTokvLn\u0026q=85\u0026s=7e70d0ec35e8816f98a512eafa2ad35b","dark":"https://mintcdn.com/entwineab/W0WCY-b2dvTokvLn/logo/dark.svg?fit=max\u0026auto=format\u0026n=W0WCY-b2dvTokvLn\u0026q=85\u0026s=bcf15f923005d67de257a74c061db962"},"favicon":"https://mintcdn.com/entwineab/OPi-j2jbIEGoK6fy/favicon.svg?fit=max\u0026auto=format\u0026n=OPi-j2jbIEGoK6fy\u0026q=85\u0026s=190facce372d84ae3de157af3da0688e","navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"},{"href":"https://app-stage.twine.se","label":"Stage"}],"primary":{"type":"button","label":"App","href":"https://app.twine.se"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"twine.se","icon":"globe","href":"https://www.twine.se"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"entwineab","hasAudioNarration":false,"actualSubdomain":"entwineab","customDomains":["docs.twine.se"],"gitSource":{"type":"github","owner":"twine-se","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6acf668b4788a74327b72032","collectionId":"027bd1b7-2940-449a-bfcf-f8ccfca1f9a2","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6acf668b4788a74327b72032"},"entitlements":{},"buildId":"6acf668b4788a74327b72032","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API Reference","count":149},{"language":"default","tag":"Data Engine","count":86},{"language":"default","tag":"Integrations","count":72},{"language":"default","tag":"Flow Engine","count":41},{"language":"default","tag":"Platform","count":33},{"language":"default","tag":"Assigns","count":28},{"language":"default","tag":"Flow Control","count":19},{"language":"default","tag":"Transformation","count":19},{"language":"default","tag":"Changelog","count":18},{"language":"default","tag":"HRIS","count":14}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"backoffice/configuration/domain-mappings","slug":"/backoffice/configuration/domain-mappings","pageMetadata":{"title":"Domain Mappings","description":"Configuring domain mappings in the backoffice","href":"/backoffice/configuration/domain-mappings"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Configuring domain mappings in the backoffice\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const Callout=({highlightKey,children})=>null;const AnnotatedShot=({id,children})=>{const screenshots={\"domain-mappings.sync-trigger-actions-employee\":{path:`images/backoffice/configuration/domain-mappings/sync-trigger-actions-employee.png`,caption:`Each sync trigger exposes action buttons for an ad-hoc sync and for editing the trigger configuration.`,w:2880,h:1800,highlights:[{key:`sync-now`,description:`Fires an immediate one-off sync without waiting for the next scheduled run. Handy when you want to see the effect of a configuration change right away.`,x:.8854,y:.5056,w:.025,h:.0511},{key:`edit`,description:`Opens the edit modal where the schedule, parent trigger, scheduled toggles, and any domain-specific settings for this trigger can be adjusted.`,x:.916,y:.5056,w:.025,h:.04}]},\"domain-mappings.sync-trigger-edit-employee\":{path:`images/backoffice/configuration/domain-mappings/sync-trigger-edit-employee.png`,caption:`The Edit Sync Trigger modal for a non-time-report mapping.`,w:900,h:1124,highlights:[{key:`cron-enabled`,description:`Controls whether the trigger fires automatically. When it is turned off, the trigger only runs if someone starts it manually.`,x:.0556,y:.3149,w:.2336,h:.0783},{key:`cron-expression`,description:`Standard cron syntax that determines when the trigger runs while the schedule is enabled.`,x:.3247,y:.3149,w:.6198,h:.1103},{key:`scheduled-toggles`,description:`Queues future flips of the enable state. Useful for pausing a trigger during a maintenance window and having it re-enable itself afterwards without manual intervention.`,x:.0556,y:.468,w:.8889,h:.2349},{key:`parent-trigger`,description:`Chains this trigger to run immediately after another one completes, so dependent syncs always happen in the right order.`,x:.0556,y:.7456,w:.8889,h:.1032}]},\"domain-mappings.sync-trigger-actions-time-report\":{path:`images/backoffice/configuration/domain-mappings/sync-trigger-actions-time-report.png`,caption:`Time-report mappings expose the same sync trigger actions as other domains.`,w:2880,h:1800,highlights:[{key:`sync-now`,description:`Fires an immediate sync. On time-report mappings this first opens a small dialog for picking the date range to pull before the sync actually runs.`,x:.8854,y:.5056,w:.025,h:.0511},{key:`edit`,description:`Opens the edit modal. For a time-report mapping this exposes an extra section for the default date range the scheduled sync should cover.`,x:.916,y:.5056,w:.025,h:.04}]},\"domain-mappings.sync-trigger-edit-time-report\":{path:`images/backoffice/configuration/domain-mappings/sync-trigger-edit-time-report.png`,caption:`The Edit Sync Trigger modal for a time-report mapping exposes an extra date-range section.`,w:900,h:1388,highlights:[{key:`cron-enabled`,description:`Controls whether the trigger fires automatically. When it is turned off, the trigger only runs if someone starts it manually.`,x:.0556,y:.255,w:.2336,h:.0634},{key:`cron-expression`,description:`Standard cron syntax that determines when the trigger runs while the schedule is enabled.`,x:.3247,y:.255,w:.6198,h:.0893},{key:`scheduled-toggles`,description:`Queues future flips of the enable state. Useful for pausing a trigger during a maintenance window and having it re-enable itself afterwards without manual intervention.`,x:.0556,y:.379,w:.8889,h:.1902},{key:`parent-trigger`,description:`Chains this trigger to run immediately after another one completes, so dependent syncs always happen in the right order.`,x:.0556,y:.6037,w:.8889,h:.0836},{key:`time-report-settings`,description:`Defines which date range the sync should pull time reports for. The start and end dates can each be either a fixed date or a dynamic expression evaluated at run time.`,x:.0556,y:.7219,w:.8889,h:.1556}]},\"domain-mappings.employee-outgoing\":{path:`images/backoffice/configuration/domain-mappings/employee-outgoing.png`,caption:`An outgoing Employee → Employee mapping pushes Twine employee data into a target system.`,w:2880,h:1800},\"domain-mappings.time-report\":{path:`images/backoffice/configuration/domain-mappings/time-report.png`,caption:`Time report mappings include a dedicated time-code mapping section alongside the standard configuration.`,w:2880,h:1800,highlights:[{key:`time-code-mapping`,description:`Appears only on time report to time report mappings. Lines up each time code in the source system with the matching Twine time code so reported hours land in the right bucket downstream.`,x:.1778,y:.4256,w:.4,h:.5567}]},\"jobs.details\":{path:`images/backoffice/daily-operations/jobs/details.png`,caption:`The Job Details page shows everything about a single sync job — its metadata, status, descendants, and streaming logs.`,w:2880,h:1800},\"system-integration-settings.authentication\":{path:`images/backoffice/configuration/system-integration-settings/authentication.png`,caption:`The Authentication sub-tab holds credentials and a sharable authentication URL generator.`,w:2880,h:1800,highlights:[{key:`generate-url-button`,description:`Generates a one-time shareable URL that lets a customer without a Twine login enter their own credentials. The link stays valid for five days.`,x:.816,y:.3378,w:.1555,h:.04}]},\"system-integration-settings.authentication-url-generated\":{path:`images/backoffice/configuration/system-integration-settings/authentication-url-generated.png`,caption:`After clicking Generate Authentication URL, the card displays the shareable link with a copy button.`,w:872,h:948,highlights:[{key:`copy-button`,description:`Copies the generated link to the clipboard so it can be pasted into an email or chat to the customer.`,x:.8945,y:.692,w:.0275,h:.0253}]},\"system-integration-settings.general\":{path:`images/backoffice/configuration/system-integration-settings/general.png`,caption:`The General sub-tab holds system-specific settings that are not credentials.`,w:2880,h:1800,highlights:[{key:`system-specific-card`,description:`Holds configuration that is specific to the connected system and unrelated to authentication. The exact fields depend on which integration is selected.`,x:.6861,y:.2633,w:.3028,h:.28}]},\"system-integration-settings.time-reports\":{path:`images/backoffice/configuration/system-integration-settings/time-reports.png`,caption:`The Time Reports \u0026 Types sub-tab configures how source time codes map to Twine time codes.`,w:2880,h:1800,highlights:[{key:`refresh-button`,description:`Re-fetches the current time-type catalogue from the connected system so the mapping list picks up anything that has been added or removed upstream.`,x:.3896,y:.9144,w:.1529,h:.04}]},\"system-integrations.admin\":{path:`images/backoffice/configuration/system-integrations/admin.png`,caption:`The Admin tab exposes destructive and one-shot administrative actions for a system integration.`,w:2880,h:1800},\"system-integrations.domains-overview\":{path:`images/backoffice/configuration/system-integrations/domains-overview.png`,caption:`The Domains tab lists outgoing and incoming domain mappings for this system integration.`,w:2880,h:1800,highlights:[{key:`create-button`,description:`Opens a dialog where you pick the direction, target integration, and source and target domains for a new mapping.`,x:.8297,y:.2633,w:.1592,h:.04}]},\"system-integrations.domains-create-dialog\":{path:`images/backoffice/configuration/system-integrations/domains-create-dialog.png`,caption:`The Create Domain Mapping dialog starts with the direction radio and an empty form.`,w:900,h:964},\"system-integrations.domains-create-dialog-filled\":{path:`images/backoffice/configuration/system-integrations/domains-create-dialog-filled.png`,caption:`Once a target system integration and source/target domains are selected, the Create button unlocks.`,w:900,h:964},\"anomalies.list\":{path:`images/backoffice/daily-operations/anomalies/list.png`,caption:`The Anomalies page lists issues grouped by severity, system, and status.`,w:2880,h:1800},\"entity-matcher.integration-overview\":{path:`images/backoffice/configuration/entity-matcher/integration-overview.png`,caption:`The Entity Matcher is accessed from the overview page of a System Integration.`,w:2880,h:1800},\"entity-matcher.filter-form\":{path:`images/backoffice/configuration/entity-matcher/filter-form.png`,caption:`Select a domain and match field before searching for entity matches.`,w:1536,h:300},\"entity-matcher.search-results\":{path:`images/backoffice/configuration/entity-matcher/search-results.png`,caption:`Local entities on the left, remote candidate entities in the dropdowns on the right.`,w:1536,h:800},\"integrations.alexis_hr.system-settings\":{path:`images/integrations/screenshots/alexis_hr/system-settings.png`,caption:`The system-specific settings tab for Alexis HR on its configured integration.`,w:2880,h:1800},\"jobs.list\":{path:`images/backoffice/daily-operations/jobs/list.png`,caption:`The Jobs page shows sync jobs with their type, domain, status, and creation time.`,w:2880,h:1800},\"notifications.settings\":{path:`images/backoffice/configuration/notifications/settings.png`,caption:`Notification settings control which events trigger alerts and who receives them.`,w:2880,h:1800},\"roles.list\":{path:`images/backoffice/configuration/roles/list.png`,caption:`The Roles page lets you define roles and the rules that govern access within an organization.`,w:2880,h:1800},\"roles.quick-start-wizard\":{path:`images/backoffice/configuration/roles/quick-start-wizard.png`,caption:`The Quick start wizard creates a preconfigured Org admin or Org user role in one step.`,w:1060,h:928},\"roles.detail-sheet\":{path:`images/backoffice/configuration/roles/detail-sheet.png`,caption:`Clicking a role opens a detail sheet showing metadata, tokens, and a link to manage rules.`,w:2880,h:1800},\"roles.rules-page\":{path:`images/backoffice/configuration/roles/rules-page.png`,caption:`The rules page shows all rules for a role. Expanding a rule reveals its TERLs.`,w:2880,h:1800},\"roles.edit-rule\":{path:`images/backoffice/configuration/roles/edit-rule.png`,caption:`The rule editor lets you configure a rule name, policy, actions, and TERLs.`,w:1344,h:1232},\"roles.tokens-add-form\":{path:`images/backoffice/configuration/roles/tokens-add-form.png`,caption:`Add a new API or refresh token to a role by filling in the name and type.`,w:1344,h:1800},\"roles.token-created\":{path:`images/backoffice/configuration/roles/token-created.png`,caption:`After creating a token, copy it immediately — it is only shown once.`,w:1344,h:1800},\"roles.tokens-list\":{path:`images/backoffice/configuration/roles/tokens-list.png`,caption:`The Tokens table shows every active API and refresh token for the role.`,w:1344,h:1800},\"roles.token-revoked\":{path:`images/backoffice/configuration/roles/token-revoked.png`,caption:`Revoking a token immediately invalidates it. Revoked tokens disappear from the list.`,w:1344,h:1800},\"roles.add-terl\":{path:`images/backoffice/configuration/roles/add-terl.png`,caption:`Click \"Add new TERL\" to add a resource target to a rule.`,w:1344,h:1536},\"system-data.employee-detail\":{path:`images/backoffice/data/system-data/employee-detail.png`,caption:`Selecting an employee opens a detail view with properties, metadata, and source data inspection tools.`,w:2880,h:1800},\"system-data.time-reports-employee\":{path:`images/backoffice/data/system-data/time-reports-employee.png`,caption:`Filter time reports by employee and date range to see reported time across a specific period.`,w:2880,h:1800},\"system-data.employees-list\":{path:`images/backoffice/data/system-data/employees-list.png`,caption:`The Employees table shows every employee ingested from the connected source systems.`,w:2880,h:1800},\"system-data.time-reports\":{path:`images/backoffice/data/system-data/time-reports.png`,caption:`Time Reports displays a calendar-style grid of reported time, grouped by employee or time code.`,w:2880,h:1800},\"system-integration-settings.metadata\":{path:`images/backoffice/configuration/system-integration-settings/metadata.png`,caption:`The Metadata sub-tab shows system-specific metadata fetched from the source system.`,w:2880,h:1800},\"templates.list\":{path:`images/backoffice/configuration/templates/list.png`,caption:`Mapping Templates define how data from a source system is mapped into Twine.`,w:2880,h:1800}};const shot=screenshots[id];if(!shot)return _jsxs(`div`,{style:{color:`#dc2626`,padding:`12px`,border:`1px solid #dc2626`,borderRadius:`6px`,fontSize:`13px`,margin:`24px 0`},children:[`Screenshot not found: `,_jsx(`code`,{children:id})]});if(!shot.highlights||shot.highlights.length===0)return _jsxs(`div`,{style:{color:`#dc2626`,padding:`12px`,border:`1px solid #dc2626`,borderRadius:`6px`,fontSize:`13px`,margin:`24px 0`},children:[`No highlights defined for: `,_jsx(`code`,{children:id})]});const keyToIndex={};shot.highlights.forEach((hl,i)=>{keyToIndex[hl.key]=i});const authoredChildren=children?(Array.isArray(children)?children:[children]).filter(Boolean):[];const authoredMap={};authoredChildren.forEach(child=>{if(child\u0026\u0026child.props\u0026\u0026child.props.highlightKey){authoredMap[child.props.highlightKey]=child.props.children}});const hoverRules=shot.highlights.map(hl=>`.as-container:has(.as-callout-`+hl.key+`:hover) .as-hl-`+hl.key+` { opacity: 1; border-color: var(--colors-primary, #7600ff); }`).join(`\n `);return _jsxs(_Fragment,{children:[_jsx(`style`,{children:`\n .as-container {\n display: grid;\n grid-template-columns: 3fr 2fr;\n gap: 24px;\n align-items: start;\n margin: 24px 0;\n }\n .as-image-col {\n position: sticky;\n top: 80px;\n max-height: calc(100vh - 100px);\n overflow: auto;\n }\n .as-image-wrap {\n position: relative;\n width: 100%;\n padding: 0;\n font-size: 0;\n line-height: 0;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid rgb(var(--primary-light) / .15);\n box-shadow: 0 1px 3px rgb(0 0 0 / .06);\n }\n .as-image-wrap > img {\n position: absolute;\n inset: 0;\n display: block;\n width: 100%;\n height: 100%;\n object-fit: fill;\n padding: 0;\n margin: 0;\n border: 0;\n }\n .as-highlight {\n position: absolute;\n border: 2px solid rgb(var(--primary-light) / .6);\n border-radius: 4px;\n opacity: 0.35;\n transition: opacity 0.2s ease, border-color 0.2s ease;\n pointer-events: none;\n transform: translate(-8px, -8px);\n padding: 8px;\n box-sizing: content-box;\n }\n .as-highlight-badge {\n position: absolute;\n top: -10px;\n left: -10px;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: var(--colors-primary, #7600ff);\n color: #fff;\n font-size: 11px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n }\n .as-callout-col {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 8px 0;\n }\n .as-callout:hover {\n border-color: var(--colors-primary, #7600ff) !important;\n background: rgb(var(--primary-light) / .08) !important;\n }\n ${hoverRules}\n @media (max-width: 720px) {\n .as-container {\n grid-template-columns: 1fr;\n }\n .as-image-col {\n position: static;\n max-height: none;\n overflow: visible;\n }\n }\n `}),_jsxs(`div`,{className:`as-container`,children:[_jsxs(`div`,{className:`as-image-col`,children:[_jsxs(`div`,{className:`as-image-wrap`,style:{aspectRatio:`${shot.w} / ${shot.h}`},children:[_jsx(`img`,{src:`/${shot.path}`,alt:shot.caption||``,style:{position:`absolute`,inset:0,display:`block`,width:`100%`,height:`100%`,objectFit:`fill`}}),shot.highlights.map((hl,i)=>_jsx(`div`,{className:`as-highlight as-hl-${hl.key}`,style:{left:hl.x*100+`%`,top:hl.y*100+`%`,width:hl.w*100+`%`,height:hl.h*100+`%`},children:_jsx(`span`,{className:`as-highlight-badge`,children:i+1})},hl.key))]}),shot.caption\u0026\u0026_jsx(`div`,{style:{marginTop:`8px`,fontSize:`13px`,color:`var(--colors-content-secondary, #6b7280)`,textAlign:`center`,fontStyle:`italic`},children:shot.caption})]}),_jsx(`div`,{className:`as-callout-col`,children:shot.highlights.map((hl,i)=>_jsxs(`div`,{className:`as-callout as-callout-${hl.key}`,style:{display:`flex`,gap:`12px`,padding:`14px 16px`,borderRadius:`8px`,border:`1px solid rgb(var(--primary-light) / .15)`,background:`rgb(var(--primary-light) / .04)`,cursor:`default`,transition:`border-color 0.15s, background 0.15s`},children:[_jsx(`span`,{style:{display:`inline-flex`,alignItems:`center`,justifyContent:`center`,width:`24px`,height:`24px`,borderRadius:`50%`,background:`var(--colors-primary, #7600ff)`,color:`#fff`,fontSize:`12px`,fontWeight:700,flexShrink:0},children:i+1}),_jsx(`div`,{style:{fontSize:`14px`,lineHeight:1.5,color:`inherit`},children:authoredMap[hl.key]||hl.description})]},hl.key))})]})]})};const Shot=({id,caption})=>{const screenshots={\"domain-mappings.sync-trigger-actions-employee\":{path:`images/backoffice/configuration/domain-mappings/sync-trigger-actions-employee.png`,caption:`Each sync trigger exposes action buttons for an ad-hoc sync and for editing the trigger configuration.`,w:2880,h:1800,highlights:[{key:`sync-now`,description:`Fires an immediate one-off sync without waiting for the next scheduled run. Handy when you want to see the effect of a configuration change right away.`,x:.8854,y:.5056,w:.025,h:.0511},{key:`edit`,description:`Opens the edit modal where the schedule, parent trigger, scheduled toggles, and any domain-specific settings for this trigger can be adjusted.`,x:.916,y:.5056,w:.025,h:.04}]},\"domain-mappings.sync-trigger-edit-employee\":{path:`images/backoffice/configuration/domain-mappings/sync-trigger-edit-employee.png`,caption:`The Edit Sync Trigger modal for a non-time-report mapping.`,w:900,h:1124,highlights:[{key:`cron-enabled`,description:`Controls whether the trigger fires automatically. When it is turned off, the trigger only runs if someone starts it manually.`,x:.0556,y:.3149,w:.2336,h:.0783},{key:`cron-expression`,description:`Standard cron syntax that determines when the trigger runs while the schedule is enabled.`,x:.3247,y:.3149,w:.6198,h:.1103},{key:`scheduled-toggles`,description:`Queues future flips of the enable state. Useful for pausing a trigger during a maintenance window and having it re-enable itself afterwards without manual intervention.`,x:.0556,y:.468,w:.8889,h:.2349},{key:`parent-trigger`,description:`Chains this trigger to run immediately after another one completes, so dependent syncs always happen in the right order.`,x:.0556,y:.7456,w:.8889,h:.1032}]},\"domain-mappings.sync-trigger-actions-time-report\":{path:`images/backoffice/configuration/domain-mappings/sync-trigger-actions-time-report.png`,caption:`Time-report mappings expose the same sync trigger actions as other domains.`,w:2880,h:1800,highlights:[{key:`sync-now`,description:`Fires an immediate sync. On time-report mappings this first opens a small dialog for picking the date range to pull before the sync actually runs.`,x:.8854,y:.5056,w:.025,h:.0511},{key:`edit`,description:`Opens the edit modal. For a time-report mapping this exposes an extra section for the default date range the scheduled sync should cover.`,x:.916,y:.5056,w:.025,h:.04}]},\"domain-mappings.sync-trigger-edit-time-report\":{path:`images/backoffice/configuration/domain-mappings/sync-trigger-edit-time-report.png`,caption:`The Edit Sync Trigger modal for a time-report mapping exposes an extra date-range section.`,w:900,h:1388,highlights:[{key:`cron-enabled`,description:`Controls whether the trigger fires automatically. When it is turned off, the trigger only runs if someone starts it manually.`,x:.0556,y:.255,w:.2336,h:.0634},{key:`cron-expression`,description:`Standard cron syntax that determines when the trigger runs while the schedule is enabled.`,x:.3247,y:.255,w:.6198,h:.0893},{key:`scheduled-toggles`,description:`Queues future flips of the enable state. Useful for pausing a trigger during a maintenance window and having it re-enable itself afterwards without manual intervention.`,x:.0556,y:.379,w:.8889,h:.1902},{key:`parent-trigger`,description:`Chains this trigger to run immediately after another one completes, so dependent syncs always happen in the right order.`,x:.0556,y:.6037,w:.8889,h:.0836},{key:`time-report-settings`,description:`Defines which date range the sync should pull time reports for. The start and end dates can each be either a fixed date or a dynamic expression evaluated at run time.`,x:.0556,y:.7219,w:.8889,h:.1556}]},\"domain-mappings.employee-outgoing\":{path:`images/backoffice/configuration/domain-mappings/employee-outgoing.png`,caption:`An outgoing Employee → Employee mapping pushes Twine employee data into a target system.`,w:2880,h:1800},\"domain-mappings.time-report\":{path:`images/backoffice/configuration/domain-mappings/time-report.png`,caption:`Time report mappings include a dedicated time-code mapping section alongside the standard configuration.`,w:2880,h:1800,highlights:[{key:`time-code-mapping`,description:`Appears only on time report to time report mappings. Lines up each time code in the source system with the matching Twine time code so reported hours land in the right bucket downstream.`,x:.1778,y:.4256,w:.4,h:.5567}]},\"jobs.details\":{path:`images/backoffice/daily-operations/jobs/details.png`,caption:`The Job Details page shows everything about a single sync job — its metadata, status, descendants, and streaming logs.`,w:2880,h:1800},\"system-integration-settings.authentication\":{path:`images/backoffice/configuration/system-integration-settings/authentication.png`,caption:`The Authentication sub-tab holds credentials and a sharable authentication URL generator.`,w:2880,h:1800,highlights:[{key:`generate-url-button`,description:`Generates a one-time shareable URL that lets a customer without a Twine login enter their own credentials. The link stays valid for five days.`,x:.816,y:.3378,w:.1555,h:.04}]},\"system-integration-settings.authentication-url-generated\":{path:`images/backoffice/configuration/system-integration-settings/authentication-url-generated.png`,caption:`After clicking Generate Authentication URL, the card displays the shareable link with a copy button.`,w:872,h:948,highlights:[{key:`copy-button`,description:`Copies the generated link to the clipboard so it can be pasted into an email or chat to the customer.`,x:.8945,y:.692,w:.0275,h:.0253}]},\"system-integration-settings.general\":{path:`images/backoffice/configuration/system-integration-settings/general.png`,caption:`The General sub-tab holds system-specific settings that are not credentials.`,w:2880,h:1800,highlights:[{key:`system-specific-card`,description:`Holds configuration that is specific to the connected system and unrelated to authentication. The exact fields depend on which integration is selected.`,x:.6861,y:.2633,w:.3028,h:.28}]},\"system-integration-settings.time-reports\":{path:`images/backoffice/configuration/system-integration-settings/time-reports.png`,caption:`The Time Reports \u0026 Types sub-tab configures how source time codes map to Twine time codes.`,w:2880,h:1800,highlights:[{key:`refresh-button`,description:`Re-fetches the current time-type catalogue from the connected system so the mapping list picks up anything that has been added or removed upstream.`,x:.3896,y:.9144,w:.1529,h:.04}]},\"system-integrations.admin\":{path:`images/backoffice/configuration/system-integrations/admin.png`,caption:`The Admin tab exposes destructive and one-shot administrative actions for a system integration.`,w:2880,h:1800},\"system-integrations.domains-overview\":{path:`images/backoffice/configuration/system-integrations/domains-overview.png`,caption:`The Domains tab lists outgoing and incoming domain mappings for this system integration.`,w:2880,h:1800,highlights:[{key:`create-button`,description:`Opens a dialog where you pick the direction, target integration, and source and target domains for a new mapping.`,x:.8297,y:.2633,w:.1592,h:.04}]},\"system-integrations.domains-create-dialog\":{path:`images/backoffice/configuration/system-integrations/domains-create-dialog.png`,caption:`The Create Domain Mapping dialog starts with the direction radio and an empty form.`,w:900,h:964},\"system-integrations.domains-create-dialog-filled\":{path:`images/backoffice/configuration/system-integrations/domains-create-dialog-filled.png`,caption:`Once a target system integration and source/target domains are selected, the Create button unlocks.`,w:900,h:964},\"anomalies.list\":{path:`images/backoffice/daily-operations/anomalies/list.png`,caption:`The Anomalies page lists issues grouped by severity, system, and status.`,w:2880,h:1800},\"entity-matcher.integration-overview\":{path:`images/backoffice/configuration/entity-matcher/integration-overview.png`,caption:`The Entity Matcher is accessed from the overview page of a System Integration.`,w:2880,h:1800},\"entity-matcher.filter-form\":{path:`images/backoffice/configuration/entity-matcher/filter-form.png`,caption:`Select a domain and match field before searching for entity matches.`,w:1536,h:300},\"entity-matcher.search-results\":{path:`images/backoffice/configuration/entity-matcher/search-results.png`,caption:`Local entities on the left, remote candidate entities in the dropdowns on the right.`,w:1536,h:800},\"integrations.alexis_hr.system-settings\":{path:`images/integrations/screenshots/alexis_hr/system-settings.png`,caption:`The system-specific settings tab for Alexis HR on its configured integration.`,w:2880,h:1800},\"jobs.list\":{path:`images/backoffice/daily-operations/jobs/list.png`,caption:`The Jobs page shows sync jobs with their type, domain, status, and creation time.`,w:2880,h:1800},\"notifications.settings\":{path:`images/backoffice/configuration/notifications/settings.png`,caption:`Notification settings control which events trigger alerts and who receives them.`,w:2880,h:1800},\"roles.list\":{path:`images/backoffice/configuration/roles/list.png`,caption:`The Roles page lets you define roles and the rules that govern access within an organization.`,w:2880,h:1800},\"roles.quick-start-wizard\":{path:`images/backoffice/configuration/roles/quick-start-wizard.png`,caption:`The Quick start wizard creates a preconfigured Org admin or Org user role in one step.`,w:1060,h:928},\"roles.detail-sheet\":{path:`images/backoffice/configuration/roles/detail-sheet.png`,caption:`Clicking a role opens a detail sheet showing metadata, tokens, and a link to manage rules.`,w:2880,h:1800},\"roles.rules-page\":{path:`images/backoffice/configuration/roles/rules-page.png`,caption:`The rules page shows all rules for a role. Expanding a rule reveals its TERLs.`,w:2880,h:1800},\"roles.edit-rule\":{path:`images/backoffice/configuration/roles/edit-rule.png`,caption:`The rule editor lets you configure a rule name, policy, actions, and TERLs.`,w:1344,h:1232},\"roles.tokens-add-form\":{path:`images/backoffice/configuration/roles/tokens-add-form.png`,caption:`Add a new API or refresh token to a role by filling in the name and type.`,w:1344,h:1800},\"roles.token-created\":{path:`images/backoffice/configuration/roles/token-created.png`,caption:`After creating a token, copy it immediately — it is only shown once.`,w:1344,h:1800},\"roles.tokens-list\":{path:`images/backoffice/configuration/roles/tokens-list.png`,caption:`The Tokens table shows every active API and refresh token for the role.`,w:1344,h:1800},\"roles.token-revoked\":{path:`images/backoffice/configuration/roles/token-revoked.png`,caption:`Revoking a token immediately invalidates it. Revoked tokens disappear from the list.`,w:1344,h:1800},\"roles.add-terl\":{path:`images/backoffice/configuration/roles/add-terl.png`,caption:`Click \"Add new TERL\" to add a resource target to a rule.`,w:1344,h:1536},\"system-data.employee-detail\":{path:`images/backoffice/data/system-data/employee-detail.png`,caption:`Selecting an employee opens a detail view with properties, metadata, and source data inspection tools.`,w:2880,h:1800},\"system-data.time-reports-employee\":{path:`images/backoffice/data/system-data/time-reports-employee.png`,caption:`Filter time reports by employee and date range to see reported time across a specific period.`,w:2880,h:1800},\"system-data.employees-list\":{path:`images/backoffice/data/system-data/employees-list.png`,caption:`The Employees table shows every employee ingested from the connected source systems.`,w:2880,h:1800},\"system-data.time-reports\":{path:`images/backoffice/data/system-data/time-reports.png`,caption:`Time Reports displays a calendar-style grid of reported time, grouped by employee or time code.`,w:2880,h:1800},\"system-integration-settings.metadata\":{path:`images/backoffice/configuration/system-integration-settings/metadata.png`,caption:`The Metadata sub-tab shows system-specific metadata fetched from the source system.`,w:2880,h:1800},\"templates.list\":{path:`images/backoffice/configuration/templates/list.png`,caption:`Mapping Templates define how data from a source system is mapped into Twine.`,w:2880,h:1800}};const shot=screenshots[id];if(!shot)return _jsxs(`div`,{style:{color:`#dc2626`,padding:`12px`,border:`1px solid #dc2626`,borderRadius:`6px`,fontSize:`13px`,margin:`24px 0`},children:[`Screenshot not found: `,_jsx(`code`,{children:id})]});const displayCaption=caption||shot.caption;return _jsxs(`figure`,{style:{margin:`24px 0`},children:[_jsx(`img`,{src:`/${shot.path}`,alt:displayCaption||``,style:{width:`100%`,height:`auto`,borderRadius:`8px`,border:`1px solid rgb(var(--primary-light) / .15)`,boxShadow:`0 1px 3px rgb(0 0 0 / .06)`,display:`block`}}),displayCaption\u0026\u0026_jsx(`figcaption`,{style:{marginTop:`8px`,fontSize:`13px`,color:`var(--colors-content-secondary, #6b7280)`,textAlign:`center`,fontStyle:`italic`},children:displayCaption})]})};function _createMdxContent(props){const _components={a:`a`,p:`p`,..._provideComponents(),...props.components},{Heading,Note,_MdxComponentBoundary}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsx(Note,{children:_jsx(_components.p,{children:`This page is part of an early release. Content is being filled in.`})}),`\n`,_jsx(Heading,{level:`2`,id:`domain-mappings-overview`,children:`Domain mappings overview`}),`\n`,_jsxs(_components.p,{children:[`The Domains tab on a `,_jsx(_components.a,{href:`/platform/system-integrations`,children:`System Integration`}),` lists all outgoing and incoming domain mappings for that integration.`]}),`\n`,_jsx(_MdxComponentBoundary,{name:`AnnotatedShot`,children:_jsx(AnnotatedShot,{id:`system-integrations.domains-overview`})}),`\n`,_jsx(Heading,{level:`3`,id:`creating-a-domain-mapping`,children:`Creating a domain mapping`}),`\n`,_jsx(_components.p,{children:`A new domain mapping is created from the Domains tab. The dialog starts with the direction (outgoing or incoming), then asks for the target system integration and the source and target domains.`}),`\n`,_jsx(_MdxComponentBoundary,{name:`Shot`,children:_jsx(Shot,{id:`system-integrations.domains-create-dialog`})}),`\n`,_jsx(_MdxComponentBoundary,{name:`Shot`,children:_jsx(Shot,{id:`system-integrations.domains-create-dialog-filled`})}),`\n`,_jsx(Heading,{level:`2`,id:`employee-mapping`,children:`Employee mapping`}),`\n`,_jsx(_MdxComponentBoundary,{name:`Shot`,children:_jsx(Shot,{id:`domain-mappings.employee-outgoing`})}),`\n`,_jsx(Heading,{level:`2`,id:`time-report-mapping`,children:`Time Report mapping`}),`\n`,_jsx(_MdxComponentBoundary,{name:`AnnotatedShot`,children:_jsx(AnnotatedShot,{id:`domain-mappings.time-report`})}),`\n`,_jsx(Heading,{level:`2`,id:`sync-triggers`,children:`Sync Triggers`}),`\n`,_jsx(_components.p,{children:`Each domain mapping has one or more sync triggers that control when data flows.`}),`\n`,_jsx(_MdxComponentBoundary,{name:`AnnotatedShot`,children:_jsx(AnnotatedShot,{id:`domain-mappings.sync-trigger-actions-employee`})}),`\n`,_jsx(Heading,{level:`3`,id:`editing-a-sync-trigger`,children:`Editing a sync trigger`}),`\n`,_jsx(_MdxComponentBoundary,{name:`AnnotatedShot`,children:_jsx(AnnotatedShot,{id:`domain-mappings.sync-trigger-edit-employee`})}),`\n`,_jsx(Heading,{level:`3`,id:`time-report-sync-triggers`,children:`Time Report sync triggers`}),`\n`,_jsx(_components.p,{children:`Time report mappings expose the same trigger actions but the edit modal includes an extra date-range section.`}),`\n`,_jsx(_MdxComponentBoundary,{name:`AnnotatedShot`,children:_jsx(AnnotatedShot,{id:`domain-mappings.sync-trigger-actions-time-report`})}),`\n`,_jsx(_MdxComponentBoundary,{name:`AnnotatedShot`,children:_jsx(AnnotatedShot,{id:`domain-mappings.sync-trigger-edit-time-report`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{Callout,AnnotatedShot,Shot,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Domain Mappings","description":"Configuring domain mappings in the backoffice","href":"/backoffice/configuration/domain-mappings"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[143,30235,")=>null;const AnnotatedShot=()=>null;const Shot=()=>null;fun"]]},"mdxExtracts":{"tableOfContents":[{"title":"Domain mappings overview","slug":"domain-mappings-overview","depth":2,"children":[{"title":"Creating a domain mapping","slug":"creating-a-domain-mapping","depth":3,"children":[]}]},{"title":"Employee mapping","slug":"employee-mapping","depth":2,"children":[]},{"title":"Time Report mapping","slug":"time-report-mapping","depth":2,"children":[]},{"title":"Sync Triggers","slug":"sync-triggers","depth":2,"children":[{"title":"Editing a sync trigger","slug":"editing-a-sync-trigger","depth":3,"children":[]},{"title":"Time Report sync triggers","slug":"time-report-sync-triggers","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"entwineab","siteName":"Twine Integrations","title":"Domain Mappings - Twine Integrations","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-06T07:25:25.829Z","originalFileLocation":"backoffice/configuration/domain-mappings.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Configuring domain mappings in the backoffice\">\u003cmeta data-mint-head name=\"application-name\" content=\"Twine Integrations\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/entwineab/8LV-a3cLiAT4An4I/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/entwineab/8LV-a3cLiAT4An4I/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/entwineab/8LV-a3cLiAT4An4I/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/entwineab/8LV-a3cLiAT4An4I/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/entwineab/8LV-a3cLiAT4An4I/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/entwineab/8LV-a3cLiAT4An4I/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/entwineab/8LV-a3cLiAT4An4I/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/entwineab/8LV-a3cLiAT4An4I/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/entwineab/8LV-a3cLiAT4An4I/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Domain Mappings - Twine Integrations\">\u003cmeta data-mint-head property=\"og:description\" content=\"Configuring domain mappings in the backoffice\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Twine Integrations\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.twine.se/backoffice/configuration/domain-mappings\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://entwineab.mintlify.app/_mintlify/api/og/v2?division=Configuration\u0026amp;title=Domain+Mappings\u0026amp;description=Configuring+domain+mappings+in+the+backoffice\u0026amp;theme=30a0ce2375f0bc6afd332c94\u0026amp;signature=c21e67c34bcc836c3065e839b260a7b7aa4c9913bd9b23b4a61f2663a31a3cc9\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Domain Mappings - Twine Integrations\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Configuring domain mappings in the backoffice\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://entwineab.mintlify.app/_mintlify/api/og/v2?division=Configuration\u0026amp;title=Domain+Mappings\u0026amp;description=Configuring+domain+mappings+in+the+backoffice\u0026amp;theme=30a0ce2375f0bc6afd332c94\u0026amp;signature=c21e67c34bcc836c3065e839b260a7b7aa4c9913bd9b23b4a61f2663a31a3cc9\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/entwineab/8LV-a3cLiAT4An4I/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Twine Integrations\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7600ff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.twine.se/backoffice/configuration/domain-mappings\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/backoffice/configuration/domain-mappings.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.twine.se/#organization\",\"name\":\"Twine Integrations\",\"url\":\"https://docs.twine.se\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/entwineab/W0WCY-b2dvTokvLn/logo/light.svg?fit=max\u0026auto=format\u0026n=W0WCY-b2dvTokvLn\u0026q=85\u0026s=7e70d0ec35e8816f98a512eafa2ad35b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.twine.se#website\",\"name\":\"Twine Integrations\",\"url\":\"https://docs.twine.se\",\"publisher\":{\"@id\":\"https://docs.twine.se/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.twine.se/backoffice/configuration/domain-mappings#webpage\",\"url\":\"https://docs.twine.se/backoffice/configuration/domain-mappings\",\"name\":\"Domain Mappings\",\"description\":\"Configuring domain mappings in the backoffice\",\"dateModified\":\"2026-07-06T07:25:25.829Z\",\"isPartOf\":{\"@id\":\"https://docs.twine.se#website\"},\"breadcrumb\":{\"@id\":\"https://docs.twine.se/backoffice/configuration/domain-mappings#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.twine.se/backoffice/configuration/domain-mappings#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Configuration\",\"item\":\"https://docs.twine.se/backoffice/configuration/system-integrations\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Domain Mappings\",\"item\":\"https://docs.twine.se/backoffice/configuration/domain-mappings\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.twine.se/backoffice/configuration/domain-mappings#article\",\"headline\":\"Domain Mappings\",\"name\":\"Domain Mappings\",\"description\":\"Configuring domain mappings in the backoffice\",\"url\":\"https://docs.twine.se/backoffice/configuration/domain-mappings\",\"mainEntityOfPage\":{\"@id\":\"https://docs.twine.se/backoffice/configuration/domain-mappings#webpage\"},\"dateModified\":\"2026-07-06T07:25:25.829Z\",\"publisher\":{\"@id\":\"https://docs.twine.se/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.twine.se#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Twine Integrations\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Twine Integrations","nav":{"global":{"anchors":[{"anchor":"twine.se","icon":"globe","href":"https://www.twine.se"}]},"tabs":[{"tab":"Overview","pages":[{"title":"Overview","href":"/overview"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations"}]},{"tab":"Platform","pages":[{"title":"Platform","href":"/platform"}]},{"tab":"Backoffice","groups":[{"group":"Backoffice","pages":[{"title":"Backoffice","sidebarTitle":"Overview","href":"/backoffice"}]},{"group":"Daily operations","pages":[{"title":"Working with Anomalies","href":"/backoffice/daily-operations/anomalies"},{"title":"Inspecting Jobs","href":"/backoffice/daily-operations/jobs"}]},{"group":"Configuration","pages":[{"title":"System Integrations","description":"Configuring a system integration in the backoffice","href":"/backoffice/configuration/system-integrations"},{"title":"Domain Mappings","href":"/backoffice/configuration/domain-mappings"},{"title":"Entity Matcher","description":"Establishing the initial mapping between local and remote entities","href":"/backoffice/configuration/entity-matcher"},{"title":"Templates","href":"/backoffice/configuration/templates"},{"title":"Configuring Notifications","href":"/backoffice/configuration/notifications"}]},{"group":"Data","pages":[{"title":"System Data","href":"/backoffice/data/system-data"}]}]},{"tab":"Flow Engine","pages":[{"title":"Flow Engine","href":"/flow-engine"}]},{"tab":"Data Engine","pages":[{"title":"Data Engine","href":"/data-engine"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]}]},"title":"Domain Mappings - Twine Integrations","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":[],"chunks":[]}