[{"data":1,"prerenderedAt":2418},["ShallowReactive",2],{"navigation_docs_en":3,"-en-external-sources-rest":427,"-en-external-sources-rest-surround":2413},[4,31,117,188,238,271,310,369,378],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":30},"Getting started","i-hugeicons-rocket-01","\u002Fen\u002Fgetting-started","en\u002F01.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"What is DDM?","\u002Fen\u002Fgetting-started\u002Fwhat-is-ddm","en\u002F01.getting-started\u002F01.what-is-ddm","i-hugeicons-information-circle",{"title":16,"path":17,"stem":18,"icon":19},"Account and sign-in","\u002Fen\u002Fgetting-started\u002Fsign-in","en\u002F01.getting-started\u002F02.sign-in","i-hugeicons-key-01",{"title":21,"path":22,"stem":23,"icon":24},"AI in DDM","\u002Fen\u002Fgetting-started\u002Fai-in-ddm","en\u002F01.getting-started\u002F03.ai-in-ddm","i-hugeicons-ai-magic",{"title":26,"path":27,"stem":28,"icon":29},"System status","\u002Fen\u002Fgetting-started\u002Fsystem-status","en\u002F01.getting-started\u002F04.system-status","i-hugeicons-activity-03",false,{"title":32,"icon":33,"path":34,"stem":35,"children":36,"page":30},"CMS","i-hugeicons-dashboard-square-01","\u002Fen\u002Fcms","en\u002F02.cms",[37,42,47,52,57,62,67,72,77,82,87,92,97,102,107,112],{"title":38,"path":39,"stem":40,"icon":41},"The CMS at a glance","\u002Fen\u002Fcms\u002Foverview","en\u002F02.cms\u002F01.overview","i-hugeicons-compass-01",{"title":43,"path":44,"stem":45,"icon":46},"Uploading documents","\u002Fen\u002Fcms\u002Fupload","en\u002F02.cms\u002F02.upload","i-hugeicons-upload-01",{"title":48,"path":49,"stem":50,"icon":51},"Categories","\u002Fen\u002Fcms\u002Fcategories","en\u002F02.cms\u002F03.categories","i-hugeicons-folder-tree",{"title":53,"path":54,"stem":55,"icon":56},"Editing documents","\u002Fen\u002Fcms\u002Fdocuments","en\u002F02.cms\u002F04.documents","i-hugeicons-file-edit",{"title":58,"path":59,"stem":60,"icon":61},"Searching and filtering","\u002Fen\u002Fcms\u002Fsearch-and-filters","en\u002F02.cms\u002F05.search-and-filters","i-hugeicons-search-01",{"title":63,"path":64,"stem":65,"icon":66},"Groups and permissions","\u002Fen\u002Fcms\u002Fgroups-and-permissions","en\u002F02.cms\u002F06.groups-and-permissions","i-hugeicons-user-multiple",{"title":68,"path":69,"stem":70,"icon":71},"Users","\u002Fen\u002Fcms\u002Fusers","en\u002F02.cms\u002F07.users","i-hugeicons-user-add-01",{"title":73,"path":74,"stem":75,"icon":76},"Approvals","\u002Fen\u002Fcms\u002Fapprovals","en\u002F02.cms\u002F08.approvals","i-hugeicons-checkmark-badge-01",{"title":78,"path":79,"stem":80,"icon":81},"Markets and translations","\u002Fen\u002Fcms\u002Fmarkets-and-translations","en\u002F02.cms\u002F09.markets-and-translations","i-hugeicons-globe-02",{"title":83,"path":84,"stem":85,"icon":86},"Note templates","\u002Fen\u002Fcms\u002Fnote-templates","en\u002F02.cms\u002F10.note-templates","i-hugeicons-layout-01",{"title":88,"path":89,"stem":90,"icon":91},"Usage and audit log","\u002Fen\u002Fcms\u002Fusage-and-audit","en\u002F02.cms\u002F11.usage-and-audit","i-hugeicons-chart-column",{"title":93,"path":94,"stem":95,"icon":96},"AI assistant","\u002Fen\u002Fcms\u002Fassistant","en\u002F02.cms\u002F12.assistant","i-hugeicons-sparkles",{"title":98,"path":99,"stem":100,"icon":101},"Settings","\u002Fen\u002Fcms\u002Fsettings","en\u002F02.cms\u002F13.settings","i-hugeicons-settings-02",{"title":103,"path":104,"stem":105,"icon":106},"Plans","\u002Fen\u002Fcms\u002Fplans","en\u002F02.cms\u002F14.plans","i-hugeicons-package",{"title":108,"path":109,"stem":110,"icon":111},"Feature requests","\u002Fen\u002Fcms\u002Ffeature-requests","en\u002F02.cms\u002F15.feature-requests","i-hugeicons-idea-01",{"title":113,"path":114,"stem":115,"icon":116},"Report a bug","\u002Fen\u002Fcms\u002Fbug-reports","en\u002F02.cms\u002F16.bug-reports","i-hugeicons-bug-01",{"title":118,"icon":119,"path":120,"stem":121,"children":122,"page":30},"App","i-hugeicons-smart-phone-01","\u002Fen\u002Fapp","en\u002F03.app",[123,128,133,138,143,147,152,157,162,167,170,173,176,179,184],{"title":124,"path":125,"stem":126,"icon":127},"Signing in and finding your way","\u002Fen\u002Fapp\u002Foverview","en\u002F03.app\u002F01.overview","i-hugeicons-login-03",{"title":129,"path":130,"stem":131,"icon":132},"Tabs and split view","\u002Fen\u002Fapp\u002Ftabs","en\u002F03.app\u002F02.tabs","i-hugeicons-layout-2-column",{"title":134,"path":135,"stem":136,"icon":137},"Finding and reading documents","\u002Fen\u002Fapp\u002Fdocuments","en\u002F03.app\u002F03.documents","i-hugeicons-file-01",{"title":139,"path":140,"stem":141,"icon":142},"Favorites","\u002Fen\u002Fapp\u002Ffavorites","en\u002F03.app\u002F04.favorites","i-hugeicons-favourite",{"title":144,"path":145,"stem":146,"icon":61},"Searching","\u002Fen\u002Fapp\u002Fsearch","en\u002F03.app\u002F05.search",{"title":148,"path":149,"stem":150,"icon":151},"Notes","\u002Fen\u002Fapp\u002Fnotes","en\u002F03.app\u002F06.notes","i-hugeicons-note-edit",{"title":153,"path":154,"stem":155,"icon":156},"Calendar and appointments","\u002Fen\u002Fapp\u002Fcalendar","en\u002F03.app\u002F07.calendar","i-hugeicons-calendar-03",{"title":158,"path":159,"stem":160,"icon":161},"Sending to customers","\u002Fen\u002Fapp\u002Foutbox","en\u002F03.app\u002F08.outbox","i-hugeicons-sent",{"title":163,"path":164,"stem":165,"icon":166},"Working offline","\u002Fen\u002Fapp\u002Foffline","en\u002F03.app\u002F09.offline","i-hugeicons-wifi-off-01",{"title":93,"path":168,"stem":169,"icon":96},"\u002Fen\u002Fapp\u002Fassistant","en\u002F03.app\u002F10.assistant",{"title":98,"path":171,"stem":172,"icon":101},"\u002Fen\u002Fapp\u002Fsettings","en\u002F03.app\u002F11.settings",{"title":108,"path":174,"stem":175,"icon":111},"\u002Fen\u002Fapp\u002Ffeature-requests","en\u002F03.app\u002F12.feature-requests",{"title":113,"path":177,"stem":178,"icon":116},"\u002Fen\u002Fapp\u002Fbug-reports","en\u002F03.app\u002F13.bug-reports",{"title":180,"path":181,"stem":182,"icon":183},"Desktop app","\u002Fen\u002Fapp\u002Fdesktop-app","en\u002F03.app\u002F14.desktop-app","i-hugeicons-computer",{"title":185,"path":186,"stem":187,"icon":119},"Mobile app","\u002Fen\u002Fapp\u002Fmobile-app","en\u002F03.app\u002F15.mobile-app",{"title":189,"icon":190,"path":191,"stem":192,"children":193,"page":30},"Sign-in & directories","i-hugeicons-security-check","\u002Fen\u002Fsign-in-and-directories","en\u002F04.sign-in-and-directories",[194,198,202,207,212,217,222,226,230,234],{"title":195,"path":196,"stem":197,"icon":19},"Sign-in methods","\u002Fen\u002Fsign-in-and-directories\u002Fsign-in-methods","en\u002F04.sign-in-and-directories\u002F01.sign-in-methods",{"title":199,"path":200,"stem":201,"icon":190},"Single sign-on","\u002Fen\u002Fsign-in-and-directories\u002Fsingle-sign-on","en\u002F04.sign-in-and-directories\u002F02.single-sign-on",{"title":203,"path":204,"stem":205,"icon":206},"Directory services (LDAP)","\u002Fen\u002Fsign-in-and-directories\u002Fdirectory-services","en\u002F04.sign-in-and-directories\u002F03.directory-services","i-hugeicons-hierarchy",{"title":208,"path":209,"stem":210,"icon":211},"Synchronisation and sign-in","\u002Fen\u002Fsign-in-and-directories\u002Fdirectory-sync","en\u002F04.sign-in-and-directories\u002F04.directory-sync","i-hugeicons-refresh",{"title":213,"path":214,"stem":215,"icon":216},"Microsoft Entra ID","\u002Fen\u002Fsign-in-and-directories\u002Fmicrosoft-entra-id","en\u002F04.sign-in-and-directories\u002F05.microsoft-entra-id","i-hugeicons-building-03",{"title":218,"path":219,"stem":220,"icon":221},"Okta","\u002Fen\u002Fsign-in-and-directories\u002Fokta","en\u002F04.sign-in-and-directories\u002F06.okta","i-hugeicons-finger-print",{"title":223,"path":224,"stem":225,"icon":81},"Google Workspace","\u002Fen\u002Fsign-in-and-directories\u002Fgoogle-workspace","en\u002F04.sign-in-and-directories\u002F07.google-workspace",{"title":227,"path":228,"stem":229,"icon":119},"Two-factor authentication","\u002Fen\u002Fsign-in-and-directories\u002Ftwo-factor-authentication","en\u002F04.sign-in-and-directories\u002F08.two-factor-authentication",{"title":231,"path":232,"stem":233,"icon":221},"Passkeys","\u002Fen\u002Fsign-in-and-directories\u002Fpasskeys","en\u002F04.sign-in-and-directories\u002F09.passkeys",{"title":235,"path":236,"stem":237,"icon":156},"Calendar access","\u002Fen\u002Fsign-in-and-directories\u002Fcalendar-access","en\u002F04.sign-in-and-directories\u002F10.calendar-access",{"title":239,"icon":240,"path":241,"stem":242,"children":243,"page":30},"MCP server","i-hugeicons-ai-network","\u002Fen\u002Fmcp-server","en\u002F05.mcp-server",[244,248,253,257,262,266],{"title":245,"path":246,"stem":247,"icon":240},"Overview","\u002Fen\u002Fmcp-server\u002Foverview","en\u002F05.mcp-server\u002F01.overview",{"title":249,"path":250,"stem":251,"icon":252},"Setup","\u002Fen\u002Fmcp-server\u002Fsetup","en\u002F05.mcp-server\u002F02.setup","i-hugeicons-plug-socket",{"title":254,"path":255,"stem":256,"icon":111},"What you can do with it","\u002Fen\u002Fmcp-server\u002Fuse-cases","en\u002F05.mcp-server\u002F03.use-cases",{"title":258,"path":259,"stem":260,"icon":261},"Tools","\u002Fen\u002Fmcp-server\u002Ftools","en\u002F05.mcp-server\u002F04.tools","i-hugeicons-wrench-01",{"title":263,"path":264,"stem":265,"icon":76},"Approving changes","\u002Fen\u002Fmcp-server\u002Fapproving-changes","en\u002F05.mcp-server\u002F05.approving-changes",{"title":267,"path":268,"stem":269,"icon":270},"Administration & security","\u002Fen\u002Fmcp-server\u002Fadmin-and-security","en\u002F05.mcp-server\u002F06.admin-and-security","i-hugeicons-shield-key",{"title":272,"icon":273,"path":274,"stem":275,"children":276,"page":30},"External sources","i-hugeicons-database-sync","\u002Fen\u002Fexternal-sources","en\u002F06.external-sources",[277,280,285,290,295,300,305],{"title":245,"path":278,"stem":279,"icon":273},"\u002Fen\u002Fexternal-sources\u002Foverview","en\u002F06.external-sources\u002F01.overview",{"title":281,"path":282,"stem":283,"icon":284},"SharePoint","\u002Fen\u002Fexternal-sources\u002Fsharepoint","en\u002F06.external-sources\u002F02.sharepoint","i-hugeicons-microsoft",{"title":286,"path":287,"stem":288,"icon":289},"OneDrive","\u002Fen\u002Fexternal-sources\u002Fonedrive","en\u002F06.external-sources\u002F03.onedrive","i-hugeicons-folder-cloud",{"title":291,"path":292,"stem":293,"icon":294},"Google Drive","\u002Fen\u002Fexternal-sources\u002Fgoogle-drive","en\u002F06.external-sources\u002F04.google-drive","i-hugeicons-google-drive",{"title":296,"path":297,"stem":298,"icon":299},"FTP \u002F SFTP","\u002Fen\u002Fexternal-sources\u002Fftp-sftp","en\u002F06.external-sources\u002F05.ftp-sftp","i-hugeicons-server-stack-01",{"title":301,"path":302,"stem":303,"icon":304},"REST interface","\u002Fen\u002Fexternal-sources\u002Frest","en\u002F06.external-sources\u002F06.rest","i-hugeicons-api",{"title":306,"path":307,"stem":308,"icon":309},"SOAP interface","\u002Fen\u002Fexternal-sources\u002Fsoap","en\u002F06.external-sources\u002F07.soap","i-hugeicons-source-code",{"title":311,"icon":304,"path":312,"stem":313,"children":314,"page":30},"Integration API","\u002Fen\u002Fintegration-api","en\u002F07.integration-api",[315,318,322,327,332,337,341,346,350,354,359,364],{"title":245,"path":316,"stem":317,"icon":14},"\u002Fen\u002Fintegration-api\u002Foverview","en\u002F07.integration-api\u002F01.overview",{"title":319,"path":320,"stem":321,"icon":19},"Authentication","\u002Fen\u002Fintegration-api\u002Fauthentication","en\u002F07.integration-api\u002F02.authentication",{"title":323,"path":324,"stem":325,"icon":326},"Conventions","\u002Fen\u002Fintegration-api\u002Fconventions","en\u002F07.integration-api\u002F03.conventions","i-hugeicons-book-open-01",{"title":328,"path":329,"stem":330,"icon":331},"Pushing documents","\u002Fen\u002Fintegration-api\u002Fpushing-documents","en\u002F07.integration-api\u002F04.pushing-documents","i-hugeicons-upload-02",{"title":333,"path":334,"stem":335,"icon":336},"Consuming content","\u002Fen\u002Fintegration-api\u002Fconsuming-content","en\u002F07.integration-api\u002F05.consuming-content","i-hugeicons-download-02",{"title":338,"path":339,"stem":340,"icon":137},"Reference: documents","\u002Fen\u002Fintegration-api\u002Freference-documents","en\u002F07.integration-api\u002F06.reference-documents",{"title":342,"path":343,"stem":344,"icon":345},"Reference: categories, tags, markets","\u002Fen\u002Fintegration-api\u002Freference-categories-tags","en\u002F07.integration-api\u002F07.reference-categories-tags","i-hugeicons-folder-01",{"title":347,"path":348,"stem":349,"icon":211},"Reference: sync manifest","\u002Fen\u002Fintegration-api\u002Freference-sync","en\u002F07.integration-api\u002F08.reference-sync",{"title":351,"path":352,"stem":353,"icon":309},"OpenAPI","\u002Fen\u002Fintegration-api\u002Fopenapi","en\u002F07.integration-api\u002F09.openapi",{"title":355,"path":356,"stem":357,"icon":358},"Changelog","\u002Fen\u002Fintegration-api\u002Fchangelog","en\u002F07.integration-api\u002F10.changelog","i-hugeicons-time-schedule",{"title":360,"path":361,"stem":362,"icon":363},"Reference: groups, markets, access","\u002Fen\u002Fintegration-api\u002Freference-groups-access","en\u002F07.integration-api\u002F11.reference-groups-access","i-hugeicons-user-lock-01",{"title":365,"path":366,"stem":367,"icon":368},"Moving from CMWS","\u002Fen\u002Fintegration-api\u002Fcmws","en\u002F07.integration-api\u002F12.cmws","i-hugeicons-arrow-reload-horizontal",{"title":370,"icon":371,"path":372,"stem":373,"children":374,"page":30},"What's new","i-hugeicons-gift","\u002Fen\u002Fwhats-new","en\u002F08.whats-new",[375],{"title":355,"path":376,"stem":377,"icon":358},"\u002Fen\u002Fwhats-new\u002Fchangelog","en\u002F08.whats-new\u002F01.changelog",{"title":379,"icon":299,"path":380,"stem":381,"children":382,"page":30},"Self-hosting","\u002Fen\u002Fself-hosting","en\u002F09.self-hosting",[383,386,390,395,399,404,408,413,418,422],{"title":245,"path":384,"stem":385,"icon":14},"\u002Fen\u002Fself-hosting\u002Foverview","en\u002F09.self-hosting\u002F01.overview",{"title":387,"path":388,"stem":389,"icon":106},"Docker Compose","\u002Fen\u002Fself-hosting\u002Fdocker-compose","en\u002F09.self-hosting\u002F02.docker-compose",{"title":391,"path":392,"stem":393,"icon":394},"Kubernetes","\u002Fen\u002Fself-hosting\u002Fkubernetes","en\u002F09.self-hosting\u002F03.kubernetes","i-hugeicons-cloud",{"title":396,"path":397,"stem":398,"icon":101},"Configuration","\u002Fen\u002Fself-hosting\u002Fconfiguration","en\u002F09.self-hosting\u002F04.configuration",{"title":400,"path":401,"stem":402,"icon":403},"Licence","\u002Fen\u002Fself-hosting\u002Flicence","en\u002F09.self-hosting\u002F05.licence","i-hugeicons-license",{"title":405,"path":406,"stem":407,"icon":211},"Updates","\u002Fen\u002Fself-hosting\u002Fupdates","en\u002F09.self-hosting\u002F06.updates",{"title":409,"path":410,"stem":411,"icon":412},"Postgres","\u002Fen\u002Fself-hosting\u002Fpostgres","en\u002F09.self-hosting\u002F07.postgres","i-hugeicons-database",{"title":414,"path":415,"stem":416,"icon":417},"Backups","\u002Fen\u002Fself-hosting\u002Fbackups","en\u002F09.self-hosting\u002F08.backups","i-hugeicons-database-restore",{"title":419,"path":420,"stem":421,"icon":261},"Troubleshooting","\u002Fen\u002Fself-hosting\u002Ftroubleshooting","en\u002F09.self-hosting\u002F09.troubleshooting",{"title":423,"path":424,"stem":425,"icon":426},"Firewall","\u002Fen\u002Fself-hosting\u002Ffirewall","en\u002F09.self-hosting\u002F10.firewall","i-hugeicons-firewall",{"id":428,"title":301,"body":429,"description":2406,"extension":2407,"links":2408,"meta":2409,"navigation":2410,"path":302,"seo":2411,"stem":303,"__hash__":2412},"docs_en\u002Fen\u002F06.external-sources\u002F06.rest.md",{"type":430,"value":431,"toc":2386},"minimark",[432,448,451,463,468,471,497,508,512,531,598,605,615,625,731,735,753,779,786,791,928,939,942,952,1034,1053,1057,1064,1232,1307,1320,1323,1352,1372,1388,1395,1399,1408,1538,1548,1555,1559,1562,1705,1716,1720,1733,1787,1799,1816,1820,1824,1830,1923,1936,1980,1984,1994,2008,2026,2041,2059,2062,2066,2073,2114,2126,2171,2185,2203,2216,2225,2228,2235,2258,2265,2295,2299,2361,2364,2382],[433,434,435,436,439,440,443,444,447],"p",{},"With the ",[437,438,301],"strong",{}," system type, DDM fetches documents from a system that offers them through an ",[437,441,442],{},"HTTP interface"," – a DMS, a PIM, a shop, your own application. Unlike with SharePoint or FTP, DDM does not know how this interface is built. You describe it in a ",[437,445,446],{},"request chain",": which addresses DDM calls, where in the response the list of documents is and what each value means.",[433,449,450],{},"That sounds more technical than the other sources – and it is. Expect to need somebody who knows the interface and has its documentation to hand.",[452,453,454,455,458,459,462],"note",{},"Available from the ",[437,456,457],{},"Enterprise"," plan – see ",[460,461,103],"a",{"href":104},".",[464,465,467],"h2",{"id":466},"what-the-interface-must-be-able-to-do","What the interface must be able to do",[433,469,470],{},"DDM needs two things from it:",[472,473,474,486],"ol",{},[475,476,477,478,481,482,485],"li",{},"A ",[437,479,480],{},"list"," of the documents as ",[437,483,484],{},"JSON"," (or XML) – with at least a name and an address where the file is.",[475,487,488,489,492,493,462],{},"The ",[437,490,491],{},"file"," itself at this address, retrievable with a simple ",[494,495,496],"code",{},"GET",[433,498,499,500,503,504,462],{},"Authentication is with ",[437,501,502],{},"one fixed header",", e.g. an API token. A sign-in that first fetches a token can be modelled as a step of its own – see ",[460,505,507],{"href":506},"#example-3-sign-in-first-then-fetch","Example 3",[464,509,511],{"id":510},"_1-add-the-source","1. Add the source",[433,513,514,515,517,518,520,521,524,525,527,528,462],{},"Under ",[437,516,98],{}," › ",[437,519,272],{},", add a source with ",[437,522,523],{},"New source",", give it a name and choose ",[437,526,301],{}," as the ",[437,529,530],{},"System type",[532,533,534,547],"table",{},[535,536,537],"thead",{},[538,539,540,544],"tr",{},[541,542,543],"th",{},"Field",[541,545,546],{},"What to enter",[548,549,550,565],"tbody",{},[538,551,552,558],{},[553,554,555],"td",{},[437,556,557],{},"Base URL",[553,559,560,561,564],{},"The interface's common address, e.g. ",[494,562,563],{},"https:\u002F\u002Fdms.company.com\u002Fapi\u002Fv1",". The steps' paths are appended to it",[538,566,567,572],{},[553,568,569],{},[437,570,571],{},"Authentication (header)",[553,573,574,577,578,581,582,585,586,589,590,593,594,597],{},[437,575,576],{},"One"," header in the format ",[494,579,580],{},"Name: Value",", e.g. ",[494,583,584],{},"Authorization: Bearer eyJhbGc…"," or ",[494,587,588],{},"X-API-Key: 7f3a…",". For Basic Auth: ",[494,591,592],{},"Authorization: Basic "," and ",[494,595,596],{},"user:password"," in Base64. Stored encrypted, never shown again",[433,599,600,601,604],{},"DDM sends this header ",[437,602,603],{},"only to the base URL"," – more precisely: to addresses with the same protocol, host and port. If a step calls another address or a file is on another server, the header is not sent there.",[606,607,608,609,611,612,614],"warning",{},"If you change the ",[437,610,557],{},", DDM deletes the stored ",[437,613,319],{}," – a token belongs to its server. Enter it again afterwards.",[433,616,617,618,621,622,624],{},"Click ",[437,619,620],{},"Test connection",". DDM calls the base URL with ",[494,623,496],{}," and the header.",[532,626,627,637],{},[535,628,629],{},[538,630,631,634],{},[541,632,633],{},"Message",[541,635,636],{},"What to do",[548,638,639,659,676,694,711,721],{},[538,640,641,646],{},[553,642,643],{},[437,644,645],{},"The interface answers (HTTP …).",[553,647,648,649,585,652,655,656,462],{},"The address is reachable. Even a ",[494,650,651],{},"404",[494,653,654],{},"405"," counts as „answers\" here – many interfaces have nothing at the base URL itself. Whether the actual calls work is only shown by ",[437,657,658],{},"Test chain",[538,660,661,666],{},[553,662,663],{},[437,664,665],{},"The interface rejected the credentials — check the authentication header.",[553,667,668,669,585,672,675],{},"Response ",[494,670,671],{},"401",[494,673,674],{},"403"," – the header is wrong or the token has expired.",[538,677,678,683],{},[553,679,680],{},[437,681,682],{},"The address redirects to … — please enter the target URL directly.",[553,684,685,686,689,690,693],{},"DDM does not follow redirects. Enter the address named as the base URL – often only ",[494,687,688],{},"https:\u002F\u002F"," or a ",[494,691,692],{},"\u002F"," at the end is missing.",[538,695,696,701],{},[553,697,698],{},[437,699,700],{},"This address may not be fetched (…).",[553,702,703,704,692,707,710],{},"The address is blocked – e.g. not ",[494,705,706],{},"http",[494,708,709],{},"https",", or with a hosted DDM an address on a private network.",[538,712,713,718],{},[553,714,715],{},[437,716,717],{},"The address does not answer — check the URL, the port and the firewall.",[553,719,720],{},"The server cannot be reached.",[538,722,723,728],{},[553,724,725],{},[437,726,727],{},"The stored authentication can no longer be decrypted — please enter it again.",[553,729,730],{},"Enter the header again.",[464,732,734],{"id":733},"_2-understanding-the-request-chain","2. Understanding the request chain",[433,736,514,737,740,741,744,745,748,749,752],{},[437,738,739],{},"Request chain & field mapping",", add one or more ",[437,742,743],{},"steps"," with ",[437,746,747],{},"+ Step",". Each step is ",[437,750,751],{},"one call"," to the interface. The steps run one after another:",[754,755,756,766,773],"ul",{},[475,757,758,759,762,763,765],{},"A step can ",[437,760,761],{},"iterate"," over a ",[437,764,480],{}," in its response – for each entry, the next step runs once.",[475,767,768,769,772],{},"A step can hand values on to the following ones as ",[437,770,771],{},"variables",", e.g. a folder's ID.",[475,774,477,775,778],{},[437,776,777],{},"field mapping"," says which value of the response is which detail of a document: name, file URL, category …",[433,780,781,782,785],{},"At the end, every entry of the ",[437,783,784],{},"last step that returned entries"," becomes a document – provided it has a name and a file URL.",[787,788,790],"h3",{"id":789},"a-step","A step",[532,792,793,802],{},[535,794,795],{},[538,796,797,799],{},[541,798,543],{},[541,800,801],{},"Meaning",[548,803,804,814,853,873,897,918],{},[538,805,806,811],{},[553,807,808],{},[437,809,810],{},"Name",[553,812,813],{},"For you, e.g. „List documents\"",[538,815,816,821],{},[553,817,818],{},[437,819,820],{},"Call",[553,822,823,824,826,827,826,830,585,833,836,837,840,841,844,845,848,849],{},"The method – ",[437,825,496],{},", ",[437,828,829],{},"POST",[437,831,832],{},"PUT",[437,834,835],{},"DELETE"," – and the ",[437,838,839],{},"Path",": relative to the base URL (",[494,842,843],{},"documents",") or a full address (",[494,846,847],{},"https:\u002F\u002F…",") – see ",[460,850,852],{"href":851},"#path-and-base-url","Path and base URL",[538,854,855,860],{},[553,856,857],{},[437,858,859],{},"Headers",[553,861,862,863,581,866,585,869,872],{},"Additional headers for this step, ",[437,864,865],{},"one per line",[494,867,868],{},"Accept: application\u002Fjson",[494,870,871],{},"X-Tenant: 42",". They are always sent, to other servers too, and take precedence over the source's",[538,874,875,880],{},[553,876,877],{},[437,878,879],{},"Body",[553,881,882,883,886,887,890,891,894,895],{},"Only with POST and PUT: the content of the request, e.g. JSON. DDM sets the matching ",[494,884,885],{},"Content-Type"," itself – ",[494,888,889],{},"application\u002Fjson"," for JSON, ",[494,892,893],{},"text\u002Fxml"," for XML –, unless the step names its own under ",[437,896,859],{},[538,898,899,904],{},[553,900,901],{},[437,902,903],{},"Iterate over list",[553,905,906,907,585,910,913,914,917],{},"Where in the response the list is, e.g. ",[494,908,909],{},"items",[494,911,912],{},"data.documents",". Empty = the whole response is ",[437,915,916],{},"one"," entry",[538,919,920,925],{},[553,921,922],{},[437,923,924],{},"Step active",[553,926,927],{},"The chain skips inactive steps",[433,929,930,931,934,935,938],{},"With the arrows ",[437,932,933],{},"Move up"," \u002F ",[437,936,937],{},"Move down"," you change the order.",[787,940,852],{"id":941},"path-and-base-url",[433,943,944,945,948,949,951],{},"A step's path always goes ",[437,946,947],{},"below"," the base URL – whether it starts with ",[494,950,692],{}," or not:",[532,953,954,965],{},[535,955,956],{},[538,957,958,960,962],{},[541,959,557],{},[541,961,839],{},[541,963,964],{},"DDM calls",[548,966,967,985,1001,1019],{},[538,968,969,973,980],{},[553,970,971],{},[494,972,563],{},[553,974,975,585,977],{},[494,976,843],{},[494,978,979],{},"\u002Fdocuments",[553,981,982],{},[494,983,984],{},"https:\u002F\u002Fdms.company.com\u002Fapi\u002Fv1\u002Fdocuments",[538,986,987,991,996],{},[553,988,989],{},[494,990,563],{},[553,992,993],{},[494,994,995],{},"?page=2",[553,997,998],{},[494,999,1000],{},"https:\u002F\u002Fdms.company.com\u002Fapi\u002Fv1?page=2",[538,1002,1003,1007,1015],{},[553,1004,1005],{},[494,1006,563],{},[553,1008,1009,585,1013],{},[1010,1011,1012],"em",{},"(empty)",[494,1014,692],{},[553,1016,1017],{},[494,1018,563],{},[538,1020,1021,1025,1030],{},[553,1022,1023],{},[494,1024,563],{},[553,1026,1027],{},[494,1028,1029],{},"https:\u002F\u002Fcdn.company.com\u002Fx",[553,1031,1032],{},[494,1033,1029],{},[433,1035,1036,1037,1040,1041,1044,1045,1048,1049,1052],{},"A document's ",[437,1038,1039],{},"File URL"," is different: it comes from your interface's response and is read like a link. If the interface returns ",[494,1042,1043],{},"\u002Ffiles\u002F4711",", DDM downloads ",[494,1046,1047],{},"https:\u002F\u002Fdms.company.com\u002Ffiles\u002F4711"," – from the server root, not below ",[494,1050,1051],{},"\u002Fapi\u002Fv1",". That is what interfaces mean by such addresses.",[787,1054,1056],{"id":1055},"paths-in-the-response","Paths in the response",[433,1058,1059,1060,1063],{},"You give the place where a value is as a ",[437,1061,1062],{},"dotted path"," – not JSONPath, not XPath:",[1065,1066,1071],"pre",{"className":1067,"code":1068,"language":1069,"meta":1070,"style":1070},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"data\": {\n    \"items\": [\n      { \"id\": 4711, \"title\": \"Pricelist 2026\", \"file\": { \"url\": \"\u002Ffiles\u002F4711\" }, \"tags\": [\"sales\"] }\n    ]\n  }\n}\n","json","",[494,1072,1073,1082,1101,1117,1214,1220,1226],{"__ignoreMap":1070},[1074,1075,1078],"span",{"class":1076,"line":1077},"line",1,[1074,1079,1081],{"class":1080},"sMK4o","{\n",[1074,1083,1085,1088,1092,1095,1098],{"class":1076,"line":1084},2,[1074,1086,1087],{"class":1080},"  \"",[1074,1089,1091],{"class":1090},"spNyl","data",[1074,1093,1094],{"class":1080},"\"",[1074,1096,1097],{"class":1080},":",[1074,1099,1100],{"class":1080}," {\n",[1074,1102,1104,1107,1110,1112,1114],{"class":1076,"line":1103},3,[1074,1105,1106],{"class":1080},"    \"",[1074,1108,909],{"class":1109},"sBMFI",[1074,1111,1094],{"class":1080},[1074,1113,1097],{"class":1080},[1074,1115,1116],{"class":1080}," [\n",[1074,1118,1120,1123,1126,1130,1132,1134,1137,1140,1142,1145,1147,1149,1151,1155,1157,1159,1161,1163,1165,1167,1170,1172,1176,1178,1180,1182,1184,1186,1189,1191,1194,1196,1198,1201,1203,1206,1208,1211],{"class":1076,"line":1119},4,[1074,1121,1122],{"class":1080},"      {",[1074,1124,1125],{"class":1080}," \"",[1074,1127,1129],{"class":1128},"sbssI","id",[1074,1131,1094],{"class":1080},[1074,1133,1097],{"class":1080},[1074,1135,1136],{"class":1128}," 4711",[1074,1138,1139],{"class":1080},",",[1074,1141,1125],{"class":1080},[1074,1143,1144],{"class":1128},"title",[1074,1146,1094],{"class":1080},[1074,1148,1097],{"class":1080},[1074,1150,1125],{"class":1080},[1074,1152,1154],{"class":1153},"sfazB","Pricelist 2026",[1074,1156,1094],{"class":1080},[1074,1158,1139],{"class":1080},[1074,1160,1125],{"class":1080},[1074,1162,491],{"class":1128},[1074,1164,1094],{"class":1080},[1074,1166,1097],{"class":1080},[1074,1168,1169],{"class":1080}," {",[1074,1171,1125],{"class":1080},[1074,1173,1175],{"class":1174},"swJcz","url",[1074,1177,1094],{"class":1080},[1074,1179,1097],{"class":1080},[1074,1181,1125],{"class":1080},[1074,1183,1043],{"class":1153},[1074,1185,1094],{"class":1080},[1074,1187,1188],{"class":1080}," },",[1074,1190,1125],{"class":1080},[1074,1192,1193],{"class":1128},"tags",[1074,1195,1094],{"class":1080},[1074,1197,1097],{"class":1080},[1074,1199,1200],{"class":1080}," [",[1074,1202,1094],{"class":1080},[1074,1204,1205],{"class":1153},"sales",[1074,1207,1094],{"class":1080},[1074,1209,1210],{"class":1080},"]",[1074,1212,1213],{"class":1080}," }\n",[1074,1215,1217],{"class":1076,"line":1216},5,[1074,1218,1219],{"class":1080},"    ]\n",[1074,1221,1223],{"class":1076,"line":1222},6,[1074,1224,1225],{"class":1080},"  }\n",[1074,1227,1229],{"class":1076,"line":1228},7,[1074,1230,1231],{"class":1080},"}\n",[532,1233,1234,1243],{},[535,1235,1236],{},[538,1237,1238,1240],{},[541,1239,839],{},[541,1241,1242],{},"gives",[548,1244,1245,1257,1272,1283,1298],{},[538,1246,1247,1252],{},[553,1248,1249],{},[494,1250,1251],{},"data.items",[553,1253,1254,1255],{},"the list – this goes into ",[437,1256,903],{},[538,1258,1259,1263],{},[553,1260,1261],{},[494,1262,1144],{},[553,1264,1265,1267,1268,1271],{},[494,1266,1154],{}," – relative to the ",[437,1269,1270],{},"single entry"," of the list",[538,1273,1274,1279],{},[553,1275,1276],{},[494,1277,1278],{},"file.url",[553,1280,1281],{},[494,1282,1043],{},[538,1284,1285,1290],{},[553,1286,1287],{},[494,1288,1289],{},"tags.0",[553,1291,1292,1294,1295],{},[494,1293,1205],{}," – numbers access lists, starting at ",[494,1296,1297],{},"0",[538,1299,1300,1304],{},[553,1301,1302],{},[1010,1303,1012],{},[553,1305,1306],{},"the whole entry",[433,1308,1309,1310,593,1312,1315,1316,1319],{},"Paths in ",[437,1311,771],{},[437,1313,1314],{},"field mappings"," always apply to ",[437,1317,1318],{},"one entry"," of the iterated list, not to the whole response.",[787,1321,1322],{"id":771},"Variables",[433,1324,514,1325,1328,1329,1332,1333,744,1336,1339,1340,1343,1344,1346,1347,1349,1350,1097],{},[437,1326,1327],{},"Variables for later steps",", set a ",[437,1330,1331],{},"Variable name"," and a ",[437,1334,1335],{},"JSON path",[437,1337,1338],{},"+ Variable",". In every later step you insert the value with ",[494,1341,1342],{},"{{name}}"," – in the ",[437,1345,839],{},", the ",[437,1348,859],{}," or the ",[437,1351,879],{},[754,1353,1354,1360,1366],{},[475,1355,1356,1357],{},"Path: ",[494,1358,1359],{},"folders\u002F{{folderId}}\u002Ffiles",[475,1361,1362,1363],{},"Header: ",[494,1364,1365],{},"Authorization: Bearer {{token}}",[475,1367,1368,1369],{},"Body: ",[494,1370,1371],{},"{ \"folder\": \"{{folderId}}\" }",[433,1373,1374,1375,826,1378,593,1380,1383,1384,1387],{},"DDM inserts the values appropriately: URL-encoded in the path, in the body as JSON or XML text depending on the content. A variable name may only contain unaccented letters, digits, ",[494,1376,1377],{},"_",[494,1379,462],{},[494,1381,1382],{},"-",". Under ",[437,1385,1386],{},"Incoming variables",", each step shows which variables the earlier ones provide; one it uses is highlighted.",[433,1389,1390,1391,1394],{},"A path that consists only of a variable containing a full address – ",[494,1392,1393],{},"{{nextPage}}"," – is called unchanged.",[787,1396,1398],{"id":1397},"field-mapping","Field mapping",[433,1400,514,1401,1404,1405,1097],{},[437,1402,1403],{},"Field mapping (JSON → attribute)",", map a path to a detail of the document with ",[437,1406,1407],{},"+ Mapping",[532,1409,1410,1421],{},[535,1411,1412],{},[538,1413,1414,1417,1419],{},[541,1415,1416],{},"Attribute",[541,1418,801],{},[541,1420],{},[548,1422,1423,1443,1456,1469,1491,1507,1523],{},[538,1424,1425,1430,1440],{},[553,1426,1427],{},[437,1428,1429],{},"Document name",[553,1431,1432,1433,1436,1437],{},"Name of the document in DDM. The ",[437,1434,1435],{},"File filter"," goes by this name – with extension, e.g. ",[494,1438,1439],{},"Pricelist.pdf",[553,1441,1442],{},"required",[538,1444,1445,1449,1454],{},[553,1446,1447],{},[437,1448,1039],{},[553,1450,1451,1452],{},"Where the file is – relative to the base URL or complete. DDM downloads it with ",[494,1453,496],{},[553,1455,1442],{},[538,1457,1458,1463,1466],{},[553,1459,1460],{},[437,1461,1462],{},"External id",[553,1464,1465],{},"An ID that never changes in your system. DDM uses it to recognise the document at the next sync, even if it has been renamed",[553,1467,1468],{},"strongly recommended",[538,1470,1471,1476,1489],{},[553,1472,1473],{},[437,1474,1475],{},"Category path",[553,1477,1478,1479,581,1481,1484,1485,1488],{},"The category, separated by ",[494,1480,692],{},[494,1482,1483],{},"Sales\u002FPrices",". Used according to the ",[437,1486,1487],{},"Category mapping"," in the import scope",[553,1490],{},[538,1492,1493,1498,1505],{},[553,1494,1495],{},[437,1496,1497],{},"File type",[553,1499,1500,1501,1504],{},"The MIME type, e.g. ",[494,1502,1503],{},"application\u002Fpdf",". Without it, whatever the server reports on download applies",[553,1506],{},[538,1508,1509,1514,1521],{},[553,1510,1511],{},[437,1512,1513],{},"External group",[553,1515,1516,1517],{},"A group from your system that is to get read access – see ",[460,1518,1520],{"href":1519},"#group-mapping","Group mapping",[553,1522],{},[538,1524,1525,1533,1536],{},[553,1526,1527,826,1530],{},[437,1528,1529],{},"Size (bytes)",[437,1531,1532],{},"Modified at",[553,1534,1535],{},"Can be mapped but have no effect – DDM takes the file's actual size and detects changes by content",[553,1537],{},[433,1539,1540,1541,1544,1545,1547],{},"Mappings in ",[437,1542,1543],{},"earlier"," steps apply to all entries that arise below them. So step 1 can, for example, provide the ",[437,1546,1475],{}," from the folder name, and step 2 the name and file URL of the files in it.",[1549,1550,1551,1552,1554],"tip",{},"Without an ",[437,1553,1462],{},", DDM recognises a document only by its name in its category. If your system renames it, a second one is created in DDM.",[787,1556,1558],{"id":1557},"transformations","Transformations",[433,1560,1561],{},"Every variable and every mapping can reshape the value before it is used:",[532,1563,1564,1574],{},[535,1565,1566],{},[538,1567,1568,1571],{},[541,1569,1570],{},"Transformation",[541,1572,1573],{},"Example",[548,1575,1576,1586,1607,1621,1640,1658,1685],{},[538,1577,1578,1583],{},[553,1579,1580],{},[437,1581,1582],{},"None",[553,1584,1585],{},"–",[538,1587,1588,1596],{},[553,1589,1590,934,1593],{},[437,1591,1592],{},"Lowercase",[437,1594,1595],{},"Uppercase",[553,1597,1598,1601,1602,934,1604],{},[494,1599,1600],{},"Sales"," → ",[494,1603,1205],{},[494,1605,1606],{},"SALES",[538,1608,1609,1614],{},[553,1610,1611],{},[437,1612,1613],{},"Trim whitespace",[553,1615,1616,1601,1619],{},[494,1617,1618],{},"Pricelist",[494,1620,1618],{},[538,1622,1623,1628],{},[553,1624,1625],{},[437,1626,1627],{},"Add prefix",[553,1629,1630,1633,1634,1601,1637],{},[494,1631,1632],{},"4711"," with prefix ",[494,1635,1636],{},"dms-",[494,1638,1639],{},"dms-4711",[538,1641,1642,1647],{},[553,1643,1644],{},[437,1645,1646],{},"Add suffix",[553,1648,1649,1651,1652,1601,1655,1657],{},[494,1650,1618],{}," with suffix ",[494,1653,1654],{},".pdf",[494,1656,1439],{}," – useful when the name has no extension",[538,1659,1660,1665],{},[553,1661,1662],{},[437,1663,1664],{},"Replace",[553,1666,1667,1670,1671,1670,1674,1670,1677,1601,1679,1682,1683],{},[437,1668,1669],{},"Search for"," ",[494,1672,1673],{},"\\",[437,1675,1676],{},"Replace with",[494,1678,692],{},[494,1680,1681],{},"Sales\\Prices"," becomes ",[494,1684,1483],{},[538,1686,1687,1692],{},[553,1688,1689],{},[437,1690,1691],{},"Cut at separator",[553,1693,1694,1695,1698,1699,1682,1702],{},"With separator ",[494,1696,1697],{},"?",": ",[494,1700,1701],{},"list.pdf?v=3",[494,1703,1704],{},"list.pdf",[433,1706,1707,1708,1711,1712,1715],{},"Beside each row, a ",[437,1709,1710],{},"preview"," shows what becomes of the ",[437,1713,1714],{},"first entry"," of the example response.",[464,1717,1719],{"id":1718},"_3-test-the-chain","3. Test the chain",[433,1721,617,1722,1724,1725,1728,1729,1732],{},[437,1723,658],{}," (or ",[437,1726,1727],{},"Test"," on a single step). DDM calls the steps ",[437,1730,1731],{},"without importing anything",", and shows",[754,1734,1735,1759,1766,1769,1780],{},[475,1736,1737,1738,826,1741,826,1744,826,1747,826,1750,826,1753,585,1756,1139],{},"a status per step: ",[437,1739,1740],{},"ok",[437,1742,1743],{},"failed",[437,1745,1746],{},"skipped",[437,1748,1749],{},"unreachable",[437,1751,1752],{},"rejected",[437,1754,1755],{},"redirected",[437,1757,1758],{},"address blocked",[475,1760,1761,1762,1765],{},"under ",[437,1763,1764],{},"Example response",", the step's response (the first 20,000 characters) – the basis for the previews,",[475,1767,1768],{},"how many records resulted,",[475,1770,1771,1772,1775,1776,1779],{},"in the ",[437,1773,1774],{},"Import scope"," under ",[437,1777,1778],{},"Structure preview",", which path would go into which category,",[475,1781,1761,1782,1346,1784,462],{},[437,1783,1520],{},[437,1785,1786],{},"Groups found",[433,1788,1789,1790,1792,1793,1795,1796,1798],{},"If a step fails (HTTP status 400 or above, or no response), the chain stops and the following steps are set to ",[437,1791,1746],{},". Beneath the failed step you see what came back – the status and the start of the response, e.g. the interface's error message. The ",[437,1794,1764],{}," keeps the last successful response, so the previews are not lost. You can also paste the ",[437,1797,1764],{}," by hand – e.g. from the interface's documentation – to prepare mappings before the connection is in place.",[433,1800,1801,1802,1805,1806,1808,1809,1812,1813,462],{},"Once the chain works, sync once with ",[437,1803,1804],{},"Sync now"," in the ",[437,1807,1774],{}," and switch on ",[437,1810,1811],{},"Source active"," – see ",[460,1814,245],{"href":1815},"\u002Fen\u002Fexternal-sources\u002Foverview#import-scope",[464,1817,1819],{"id":1818},"examples","Examples",[787,1821,1823],{"id":1822},"example-1-one-list-one-call","Example 1: One list, one call",[433,1825,1826,1827,1097],{},"The interface returns under ",[494,1828,1829],{},"GET \u002Fdocuments",[1065,1831,1833],{"className":1067,"code":1832,"language":1069,"meta":1070,"style":1070},"{ \"items\": [ { \"id\": \"4711\", \"title\": \"Pricelist.pdf\", \"url\": \"\u002Ffiles\u002F4711\", \"folder\": \"Sales\u002FPrices\" } ] }\n",[494,1834,1835],{"__ignoreMap":1070},[1074,1836,1837,1840,1842,1844,1846,1848,1850,1852,1854,1856,1858,1860,1862,1864,1866,1868,1870,1872,1874,1876,1878,1880,1882,1884,1886,1888,1890,1892,1894,1896,1898,1900,1902,1905,1907,1909,1911,1913,1915,1918,1921],{"class":1076,"line":1077},[1074,1838,1839],{"class":1080},"{",[1074,1841,1125],{"class":1080},[1074,1843,909],{"class":1090},[1074,1845,1094],{"class":1080},[1074,1847,1097],{"class":1080},[1074,1849,1200],{"class":1080},[1074,1851,1169],{"class":1080},[1074,1853,1125],{"class":1080},[1074,1855,1129],{"class":1109},[1074,1857,1094],{"class":1080},[1074,1859,1097],{"class":1080},[1074,1861,1125],{"class":1080},[1074,1863,1632],{"class":1153},[1074,1865,1094],{"class":1080},[1074,1867,1139],{"class":1080},[1074,1869,1125],{"class":1080},[1074,1871,1144],{"class":1109},[1074,1873,1094],{"class":1080},[1074,1875,1097],{"class":1080},[1074,1877,1125],{"class":1080},[1074,1879,1439],{"class":1153},[1074,1881,1094],{"class":1080},[1074,1883,1139],{"class":1080},[1074,1885,1125],{"class":1080},[1074,1887,1175],{"class":1109},[1074,1889,1094],{"class":1080},[1074,1891,1097],{"class":1080},[1074,1893,1125],{"class":1080},[1074,1895,1043],{"class":1153},[1074,1897,1094],{"class":1080},[1074,1899,1139],{"class":1080},[1074,1901,1125],{"class":1080},[1074,1903,1904],{"class":1109},"folder",[1074,1906,1094],{"class":1080},[1074,1908,1097],{"class":1080},[1074,1910,1125],{"class":1080},[1074,1912,1483],{"class":1153},[1074,1914,1094],{"class":1080},[1074,1916,1917],{"class":1080}," }",[1074,1919,1920],{"class":1080}," ]",[1074,1922,1213],{"class":1080},[433,1924,1925,1698,1928,1670,1930,826,1932,1670,1934,462],{},[437,1926,1927],{},"Step 1 – „Documents\"",[437,1929,496],{},[494,1931,843],{},[437,1933,903],{},[494,1935,909],{},[532,1937,1938,1946],{},[535,1939,1940],{},[538,1941,1942,1944],{},[541,1943,1335],{},[541,1945,1416],{},[548,1947,1948,1956,1964,1972],{},[538,1949,1950,1954],{},[553,1951,1952],{},[494,1953,1144],{},[553,1955,1429],{},[538,1957,1958,1962],{},[553,1959,1960],{},[494,1961,1175],{},[553,1963,1039],{},[538,1965,1966,1970],{},[553,1967,1968],{},[494,1969,1129],{},[553,1971,1462],{},[538,1973,1974,1978],{},[553,1975,1976],{},[494,1977,1904],{},[553,1979,1475],{},[787,1981,1983],{"id":1982},"example-2-first-the-folders-then-their-files","Example 2: First the folders, then their files",[433,1985,1986,1989,1990,1993],{},[494,1987,1988],{},"GET \u002Ffolders"," returns the folders, ",[494,1991,1992],{},"GET \u002Ffolders\u002F{id}\u002Ffiles"," the files of a folder.",[433,1995,1996,1698,1999,1670,2001,826,2004,1670,2006,462],{},[437,1997,1998],{},"Step 1 – „Folders\"",[437,2000,496],{},[494,2002,2003],{},"folders",[437,2005,903],{},[494,2007,909],{},[754,2009,2010,2018],{},[475,2011,2012,2013,2015,2016],{},"Variable ",[494,2014,1129],{}," = ",[494,2017,1129],{},[475,2019,2020,2021,1601,2024],{},"Mapping ",[494,2022,2023],{},"name",[437,2025,1475],{},[433,2027,2028,1698,2031,1670,2033,826,2036,1670,2038,462],{},[437,2029,2030],{},"Step 2 – „Files\"",[437,2032,496],{},[494,2034,2035],{},"folders\u002F{{id}}\u002Ffiles",[437,2037,903],{},[494,2039,2040],{},"files",[754,2042,2043],{},[475,2044,2045,2046,1601,2048,826,2050,1601,2052,826,2054,1601,2057],{},"Mappings ",[494,2047,1144],{},[437,2049,1429],{},[494,2051,1175],{},[437,2053,1039],{},[494,2055,2056],{},"fileId",[437,2058,1462],{},[433,2060,2061],{},"Step 2 runs once per folder from step 1; each file gets the category path of its folder.",[787,2063,2065],{"id":2064},"example-3-sign-in-first-then-fetch","Example 3: Sign in first, then fetch",[433,2067,2068,2069,2072],{},"After ",[494,2070,2071],{},"POST \u002Fauth\u002Ftoken",", the interface returns a short-lived token:",[1065,2074,2076],{"className":1067,"code":2075,"language":1069,"meta":1070,"style":1070},"{ \"access_token\": \"eyJhbGc…\", \"expires_in\": 3600 }\n",[494,2077,2078],{"__ignoreMap":1070},[1074,2079,2080,2082,2084,2087,2089,2091,2093,2096,2098,2100,2102,2105,2107,2109,2112],{"class":1076,"line":1077},[1074,2081,1839],{"class":1080},[1074,2083,1125],{"class":1080},[1074,2085,2086],{"class":1090},"access_token",[1074,2088,1094],{"class":1080},[1074,2090,1097],{"class":1080},[1074,2092,1125],{"class":1080},[1074,2094,2095],{"class":1153},"eyJhbGc…",[1074,2097,1094],{"class":1080},[1074,2099,1139],{"class":1080},[1074,2101,1125],{"class":1080},[1074,2103,2104],{"class":1090},"expires_in",[1074,2106,1094],{"class":1080},[1074,2108,1097],{"class":1080},[1074,2110,2111],{"class":1128}," 3600",[1074,2113,1213],{"class":1080},[433,2115,2116,1698,2119,1670,2121,826,2124,1097],{},[437,2117,2118],{},"Step 1 – „Sign in\"",[437,2120,829],{},[494,2122,2123],{},"auth\u002Ftoken",[437,2125,879],{},[1065,2127,2129],{"className":1067,"code":2128,"language":1069,"meta":1070,"style":1070},"{ \"client_id\": \"ddm\", \"client_secret\": \"…\" }\n",[494,2130,2131],{"__ignoreMap":1070},[1074,2132,2133,2135,2137,2140,2142,2144,2146,2149,2151,2153,2155,2158,2160,2162,2164,2167,2169],{"class":1076,"line":1077},[1074,2134,1839],{"class":1080},[1074,2136,1125],{"class":1080},[1074,2138,2139],{"class":1090},"client_id",[1074,2141,1094],{"class":1080},[1074,2143,1097],{"class":1080},[1074,2145,1125],{"class":1080},[1074,2147,2148],{"class":1153},"ddm",[1074,2150,1094],{"class":1080},[1074,2152,1139],{"class":1080},[1074,2154,1125],{"class":1080},[1074,2156,2157],{"class":1090},"client_secret",[1074,2159,1094],{"class":1080},[1074,2161,1097],{"class":1080},[1074,2163,1125],{"class":1080},[1074,2165,2166],{"class":1153},"…",[1074,2168,1094],{"class":1080},[1074,2170,1213],{"class":1080},[754,2172,2173,2180],{},[475,2174,2012,2175,2015,2178],{},[494,2176,2177],{},"token",[494,2179,2086],{},[475,2181,2182,2184],{},[437,2183,903],{},": empty",[433,2186,2187,1698,2190,1670,2192,826,2194,1670,2196,826,2198,1670,2200,2202],{},[437,2188,2189],{},"Step 2 – „Documents\"",[437,2191,496],{},[494,2193,843],{},[437,2195,859],{},[494,2197,1365],{},[437,2199,903],{},[494,2201,909],{},", mappings as in example 1.",[606,2204,2205,2206,2208,2209,2212,2213,2215],{},"What is in a step's ",[437,2207,879],{},", DDM stores ",[437,2210,2211],{},"unencrypted",", and every administrator can see it – unlike the ",[437,2214,571],{}," field. Only use this approach if the interface offers no fixed token, and give DDM its own credentials with read rights only.",[433,2217,2218,2219,2221,2222,2224],{},"The downloaded ",[437,2220,2040],{}," only get the header from ",[437,2223,571],{}," – not the token from step 1. If your server requires the token for the files too, the file URL itself must contain the access (such as a signed address), or the server must deliver files with the fixed header.",[464,2226,1520],{"id":2227},"group-mapping",[433,2229,2230,2231,2234],{},"If your interface returns a ",[437,2232,2233],{},"group"," for each document – a department, a role, a customer group –, DDM can turn it into read access:",[472,2236,2237,2243,2252],{},[475,2238,2239,2240,2242],{},"In the chain, map the group's path to the ",[437,2241,1513],{}," attribute.",[475,2244,617,2245,1383,2247,1346,2249,2251],{},[437,2246,658],{},[437,2248,1520],{},[437,2250,1786],{}," appear.",[475,2253,2254,2255,2257],{},"Click a group found (or ",[437,2256,1407],{}," and type its name) and choose the DDM group that gets it.",[433,2259,2260,2261,2264],{},"On sync, every document gets ",[437,2262,2263],{},"read access"," for the DDM group mapped to its external group – in addition to the permissions of its category. Upper and lower case do not matter.",[754,2266,2267,2282,2288],{},[475,2268,2269,2270,2273,2274,2277,2278,2281],{},"Without a mapping, with ",[437,2271,2272],{},"No group"," or with ",[437,2275,2276],{},"Mapping active"," switched off, the import grants ",[437,2279,2280],{},"no"," rights for this group.",[475,2283,2284,2285,2287],{},"Each document can have ",[437,2286,916],{}," external group.",[475,2289,2290,2291,2294],{},"The import only ",[437,2292,2293],{},"grants"," rights, it never withdraws them. If a document's group changes in your system, the old DDM group keeps its read access – withdraw it on the document if needed.",[464,2296,2298],{"id":2297},"limits","Limits",[532,2300,2301,2311],{},[535,2302,2303],{},[538,2304,2305,2308],{},[541,2306,2307],{},"Limit",[541,2309,2310],{},"Value",[548,2312,2313,2321,2329,2337,2345,2353],{},[538,2314,2315,2318],{},[553,2316,2317],{},"Calls per sync, all steps together",[553,2319,2320],{},"40",[538,2322,2323,2326],{},[553,2324,2325],{},"Entries per step",[553,2327,2328],{},"200",[538,2330,2331,2334],{},[553,2332,2333],{},"Size of a response",[553,2335,2336],{},"2 MB",[538,2338,2339,2342],{},[553,2340,2341],{},"Time per call",[553,2343,2344],{},"30 seconds (20 when testing)",[538,2346,2347,2350],{},[553,2348,2349],{},"Time per file download",[553,2351,2352],{},"60 seconds",[538,2354,2355,2358],{},[553,2356,2357],{},"Largest file",[553,2359,2360],{},"25 MB",[433,2362,2363],{},"DDM does not follow redirects (HTTP 3xx) – enter the target address directly.",[433,2365,2366,2367,2370,2371,2374,2375,2377,2378,2381],{},"There is no built-in ",[437,2368,2369],{},"paging"," (pagination): each step runs once per entry of the previous one, not „until nothing more comes\". If your interface returns pages, request pages as large as possible (e.g. ",[494,2372,2373],{},"?limit=200","), or model a fixed number of pages as steps of their own – for instance with the variable ",[494,2376,1393],{}," from the first page's response as the path of the second step. If the maximum number of calls is reached, the test reports ",[437,2379,2380],{},"Stopped at the maximum number of calls …","; split the source up then.",[2383,2384,2385],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1070,"searchDepth":1084,"depth":1084,"links":2387},[2388,2389,2390,2398,2399,2404,2405],{"id":466,"depth":1084,"text":467},{"id":510,"depth":1084,"text":511},{"id":733,"depth":1084,"text":734,"children":2391},[2392,2393,2394,2395,2396,2397],{"id":789,"depth":1103,"text":790},{"id":941,"depth":1103,"text":852},{"id":1055,"depth":1103,"text":1056},{"id":771,"depth":1103,"text":1322},{"id":1397,"depth":1103,"text":1398},{"id":1557,"depth":1103,"text":1558},{"id":1718,"depth":1084,"text":1719},{"id":1818,"depth":1084,"text":1819,"children":2400},[2401,2402,2403],{"id":1822,"depth":1103,"text":1823},{"id":1982,"depth":1103,"text":1983},{"id":2064,"depth":1103,"text":2065},{"id":2227,"depth":1084,"text":1520},{"id":2297,"depth":1084,"text":2298},"Take over documents from your own system through an HTTP\u002FJSON interface – with a request chain, variables and a field mapping.","md",null,{},{"icon":304},{"title":301,"description":2406},"fBQqNjFQj0WQWmgLv_OWN36qjVYLYqJtJk9AE2Ew7RA",[2414,2416],{"title":296,"path":297,"stem":298,"description":2415,"icon":299,"children":-1},"Take over documents from an FTP, FTPS or SFTP server – with a password or an SSH key.",{"title":306,"path":307,"stem":308,"description":2417,"icon":309,"children":-1},"Take over documents from a system with a SOAP web service – with a request chain, XML paths and a field mapping.",1793617721356]