PageSourceSearch

https://workcentrix.de/login

html workcentrix.de collected 2026-10-08 08:04:23 UTC 23,352 bytes, 466 lines download raw bytes

1<!doctype html>
2<html lang="de">
3<head>
4    <link rel="preconnect" href="https://consent.workcentrix.de" crossorigin>
5<link rel="dns-prefetch" href="https://consent.workcentrix.de">
6
7
8    <!-- CCM19  -->
9<script src="https://consent.workcentrix.de/ccm19/public/app.js?apiKey=eeaa7be142edeb5b47b4ad7af612159ecb9b5c4911cdc987&amp;domain=d35b205" referrerpolicy="origin"></script>
9
10    <meta charset="utf-8">
11    <meta name="viewport" content="width=device-width, initial-scale=1">
12
13    <!-- CSRF Token -->
14    <meta name="csrf-token" content="YK515TsWQBN9w3q5ctVMcmgFvjjnjtKTA4pgwjkJ">
15    <meta name="description" content="workcentrix ist Ihr Partner für ECM, Dokumentenmanagement und digitale Prozessautomatisierung. Zertifizierter Amagno-Partner mit über 10 Jahren Erfahrung.">
16
17    <meta name="robots" content="index, follow">
18
19    <meta name="keywords" content="Dokumentenmanagement, DMS, Amagno, Rechnungsverarbeitung, Vertragsmanagement, digitale Personalakte, GoBD, DSGVO, Workflow-Automatisierung, workcentrix">
20
21
22
23<link rel="canonical" href="https://workcentrix.de/login">
24
25
26<title>workcentrix</title>
27
28
29<link rel="icon" type="image/x-icon" href="https://workcentrix.de/images/favicon.ico" sizes="any">
30<link rel="icon" type="image/png" sizes="192x192" href="https://workcentrix.de/images/icon-192.png">
31<link rel="icon" type="image/png" sizes="96x96" href="https://workcentrix.de/images/icon-96.png">
32<link rel="apple-touch-icon" sizes="180x180" href="https://workcentrix.de/images/apple-touch-icon.png">
33
34<meta name="twitter:title" content="workcentrix" />
35<meta name="twitter:description" content="workcentrix ist Ihr Partner für ECM, Dokumentenmanagement und digitale Prozessautomatisierung. Zertifizierter Amagno-Partner mit über 10 Jahren Erfahrung." />
36
37    <meta name="twitter:card" content="summary_large_image" />
38    <meta name="twitter:image" content="https://workcentrix.de/images/twitter-card.png" />
39    <meta property="og:image" content="https://workcentrix.de/images/facebook-card.png" />
40
41<meta property="og:title" content="workcentrix" />
42<meta property="og:url" content="https://workcentrix.de/login" />
43
44<meta property="og:description" content="workcentrix ist Ihr Partner für ECM, Dokumentenmanagement und digitale Prozessautomatisierung. Zertifizierter Amagno-Partner mit über 10 Jahren Erfahrung." />
45
46<!-- Fonts (Inter, locally hosted – see resources/css/styles.css @font-face) -->
47<link rel="preload" href="https://workcentrix.de/fonts/inter/inter-latin-wght-normal-NRMW37G5.woff2" as="font" type="font/woff2" crossorigin>
48
49<!-- Scripts -->
50<link rel="preload" as="style" href="https://workcentrix.de/build/assets/app-BU2ZhHHY.css" /><link rel="stylesheet" href="https://workcentrix.de/build/assets/app-BU2ZhHHY.css" data-navigate-track="reload" />
51
52<!-- Livewire Styles --><style >[wire\:loading][wire\:loading], [wire\:loading\.delay][wire\:loading\.delay], [wire\:loading\.list-item][wire\:loading\.list-item], [wire\:loading\.inline-block][wire\:loading\.inline-block], [wire\:loading\.inline][wire\:loading\.inline], [wire\:loading\.block][wire\:loading\.block], [wire\:loading\.flex][wire\:loading\.flex], [wire\:loading\.table][wire\:loading\.table], [wire\:loading\.grid][wire\:loading\.grid], [wire\:loading\.inline-flex][wire\:loading\.inline-flex] {display: none;}[wire\:loading\.delay\.none][wire\:loading\.delay\.none], [wire\:loading\.delay\.shortest][wire\:loading\.delay\.shortest], [wire\:loading\.delay\.shorter][wire\:loading\.delay\.shorter], [wire\:loading\.delay\.short][wire\:loading\.delay\.short], [wire\:loading\.delay\.default][wire\:loading\.delay\.default], [wire\:loading\.delay\.long][wire\:loading\.delay\.long], [wire\:loading\.delay\.longer][wire\:loading\.delay\.longer], [wire\:loading\.delay\.longest][wire\:loading\.delay\.longest] {display: none;}[wire\:offline][wire\:offline] {display: none;}[wire\:dirty]:not(textarea):not(input):not(select) {display: none;}:root {--livewire-progress-bar-color: #2299dd;}[x-cloak] {display: none !important;}[wire\:cloak] {display: none !important;}dialog#livewire-error::backdrop {background-color: rgba(0, 0, 0, .6);}</style>
53</head>
54<body class="text-primary-900">
55    <div id="app">
56
57        <div class="w-full">
58            <div class="flex flex-col-reverse flex-wrap md:flex-nowrap md:flex-row">
59                 <div class="md:basis-3/5 flex flex-col">
60                     <div class="hidden md:block">
61                         <a href="https://workcentrix.de">
62                            <img src="https://workcentrix.de/images/logo_dark.svg" class="inline-block h-6 m-6" alt="Logo" />
63                         </a>
64                     </div>
65
66                     <div class="flex flex-col py-2 md:p-10 gap-4 justify-center h-full items-center">
67            <div class="card w-full md:max-w-xl bg-base-100 shadow-xl p-4 md:p-8">
68
69                                    <div wire:key="lw-1264556146-0" wire:snapsh
69ot="{&quot;data&quot;:{&quot;recaptcha&quot;:null,&quot;displayingTwoFactorForm&quot;:false,&quot;twoFactorCode&quot;:&quot;&quot;,&quot;email&quot;:&quot;&quot;,&quot;oneTimePassword&quot;:&quot;&quot;,&quot;isFixedEmail&quot;:false,&quot;redirectTo&quot;:&quot;\/dashboard&quot;,&quot;displayingEmailForm&quot;:true},&quot;memo&quot;:{&quot;id&quot;:&quot;nrbVOUF9L81kj9NZ24Ft&quot;,&quot;name&quot;:&quot;auth.login.one-time-password-login&quot;,&quot;path&quot;:&quot;login&quot;,&quot;method&quot;:&quot;GET&quot;,&quot;release&quot;:&quot;a-a-a&quot;,&quot;children&quot;:[],&quot;scripts&quot;:[],&quot;assets&quot;:[],&quot;errors&quot;:[],&quot;locale&quot;:&quot;de&quot;,&quot;islands&quot;:[]},&quot;checksum&quot;:&quot;f0a199f3a1b53fa0e290de1c91566e17d72f8016f98938888cdc8446f0273b7d&quot;}" wire:effects="{&quot;partials&quot;:[]}" wire:id="nrbVOUF9L81kj9NZ24Ft" wire:name="auth.login.one-time-password-login">
70    <p class="text-xs mt-2 text-end">Noch kein Konto? <a class="text-primary-500 font-bold" href="https://workcentrix.de/register">Registrieren</a></p>
71
72    <form wire:submit="submitEmail" class="mt-4 space-y-6">
73        <div>
74            <fieldset class="fieldset w-full" wire:model="email">
75    <!--[if BLOCK]><![endif]-->        <legend class="fieldset-legend font-medium">E-Mail-Adresse</legend>
76    <!--[if ENDBLOCK]><![endif]-->    <input type="email" class="input w-full" placeholder="" name="" required autofocus  autocomplete="email"   id="email" wire:model="email"/>
77</fieldset>
78
79            <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
80            <p class="mt-2 text-sm text-gray-600">
81                Geben Sie Ihre E-Mail-Adresse ein, um fortzufahren.
82            </p>
83
84            <!--[if BLOCK]><![endif]-->
85    
86    <div wire:ignore
87         x-data="{
88            setPayload(p) { $wire.set('recaptcha', p ?? null); },
89            reset() {
90                const w = $el.querySelector('altcha-widget');
91                if (w && typeof w.reset === 'function') w.reset();
92                $wire.set('recaptcha', null);
93            }
94         }"
95         x-on:reset-recaptcha.window="reset()"
96         x-on:verified.capture="setPayload($event.detail?.payload)"
97         x-on:statechange.capture="if ($event.detail?.state === 'verified') setPayload($event.detail?.payload)"
98         class="my-4">
99
100        <altcha-widget
101            challenge="https://workcentrix.de/altcha/challenge"
102            name="altcha"
103            language="de"
104        ></altcha-widget>
105    </div>
106
107    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
108<!--[if ENDBLOCK]><![endif]-->
109        </div>
110
111        <div>
112            <!--[if BLOCK]><![endif]--><button
113    class="inline-block drop-shadow-xl cursor-pointer leading-6 focus:ring-4 focus:outline-none focus:ring-secondary-300 rounded-full text-sm font-medium px-4 py-2 text-center transition hover:scale-103  text-primary-50 bg-primary-500 hover:bg-primary-600 focus:ring-primary-300 dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800 inline-block w-full! my-2" type="submit"
114    class="text-primary-50 bg-primary-500 hover:bg-primary-600 focus:ring-primary-300 dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800 inline-block w-full! my-2" type="submit"
115    
116>
117    Weiter
118</button>
119<!--[if ENDBLOCK]><![endif]-->        </div>
120    </form>
121</div>
122                
123            </div>
124        </div>
125                 </div>
126                <div class="md:basis-2/5 md:min-h-screen md:bg-linear-to-r md:from-primary-400 md:to-primary-700 flex flex-col md:text-white text-primary-900 text-center md:text-left left-shadow">
127                    <div class="flex justify-between md:justify-end">
128                        <div class="md:hidden">
129                            <a href="https://workcentrix.de">
130                                <img src="https://workcentrix.de/images/logo_dark.svg" class="inline-block h-6 m-6" alt="Logo" />
131                            </a>
132                        </div>
133
134                        <div class="self-end text-primary-200 m-4 text-xs">
135                            <a
136    class="leading-6 text-sm px-4 py-2 text-center hover:opacity-90 flex items-center text-primary-100" href="https://workcentrix.de"
137    href="https://workcentrix.de" class="flex items-center text-primary-100"
138>
139    &lt; zurück zur Startseite
140</a>
141                        </div>
142                    </div>
143
144                    <div class="py-4 md:px-12 md:pt-36 h-full">
145            <h1 class="text-5xl md:text-6xl leading-xxs text-3xl! md:text-4xl! font-semibold!">
146    Anmelden.
147</h1>
148            <p class="mt-4">
149                Schön, Sie wieder zu sehen :)
150            </p>
151        </div>
152                </div>
153            </div>
154        </div>
155
156        <link rel="modulepreload" as="script" href="https://workcentrix.de/build/assets/app-YvzYIDTG.js" />
156<script type="module" src="https://workcentrix.de/build/assets/app-YvzYIDTG.js" data-navigate-track="reload"></script>
156
157
158
159<script>
160        !function(t,e){var o,n,p,r;e.__SV||(window.posthog && window.posthog.__loaded)||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="Mi Ri init Vi Gi Rr Wi Ji Bi capture calculateEventProperties tn register register_once register_for_session unregister unregister_for_session an getFeatureFlag getFeatureFlagPayload getFeatureFlagResult isFeatureEnabled reloadFeatureFlags updateFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSurveysLoaded onSessionId getSurveys getActiveMatchingSurveys renderSurvey displaySurvey cancelPendingSurvey canRenderSurvey canRenderSurveyAsync un identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset setIdentity clearIdentity get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException addExceptionStep captureLog startExceptionAutocapture stopExceptionAutocapture loadToolbar get_property getSessionProperty nn Xi createPersonProfile setInternalOrTestUser sn Hi cn opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing get_explicit_consent_status is_capturing clear_opt_in_out_capturing Ki debug Lr rn getPageViewId captureTraceFeedback captureTraceMetric Di".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
161
162        posthog.init("phc_vNKYFRtFPKwVvePMK9EVmshWQZPDUNGXJkQXVu4qmxfQ", {
163            api_host: "https:\/\/analytics.workcentrix.de",
164            defaults: '2026-01-30',
165            person_profiles: 'identified_only',
166            cookieless_mode: 'on_reject',      // ohne Consent zählen, ohne zu speichern
167            opt_out_capturing_by_default: true, // Default = cookieless, bis CCM19 entscheidet
168            autocapture: false,
169            disable_session_recording: true,    // nur nach Einwilligung, siehe Bridge
170            capture_pageview: false,            // Pageview feuert die Bridge manuell – mit Content-Metadaten
171        });
172    </script>
172
173
174    
175    
175<script>
176        (function () {
177            var EMBEDDING = String("phAnalytics").trim().toLowerCase();
178            var RECORDING = true;
179
180            // Zuletzt angewandter Zustand ('in'/'out'). CCM19 feuert
181            // ccm19EmbeddingAccepted EINMAL PRO EMBEDDING und bei jedem
182            // Seitenaufruf erneut — ohne diese Sperre würde jedes fremde
183            // Embedding eine erneute Umschaltung (inkl. Reset) auslösen.
184            var applied = null;
185
186            // Ob der initiale $pageview schon draußen ist. Steuert, ob eine
187            // SPÄTE Einwilligung (über den CCM19-Dialog) den Pageview mit echter
188            // Identität nachzieht – beim synchronen opt-in vor dem ersten
189            // Pageview trägt der initiale Pageview die Identität bereits selbst.
190            var initialPageviewSent = false;
191
192            // Content-Metadaten (slug/type/category) aus dem [data-wcx-content]-
193            // Element; reisen so ohne Template-Verdrahtung am Pageview mit.
194            function wcxContentProps() {
195                var el = document.querySelector('[data-wcx-content]');
196                var props = {};
197                if (!el) {
198                    return props;
199                }
200                Object.keys(el.dataset).forEach(function (key) {
201                    if (key.indexOf('content') === 0) {
202                        props[key.replace(/([A-Z])/g, '_$1').toLowerCase()] = el.dataset[key];
203                    }
204                });
205                return props;
206            }
207
208            // Genau ein manueller $pageview (Auto-Pageview ist per
209            // capture_pageview:false aus). Funktioniert in beiden Zuständen –
210            // cookieless wie eingewilligt – und trägt die Content-Metadaten.
211            function capturePageview() {
212                posthog.capture('$pageview', Object.assign(
213                    { locale: "de" },
214                    wcxContentProps()
215                ));
216            }
217
218            // Kampagnen-Cluster der Seite (Meta-Tag aus dem Head) als
219            // Super-Property registrieren, damit JEDES Event dieser Seite
220            // (Pageview, Scroll, Download-Klick) das Cluster trägt.
221            // register() gilt für alle FOLGENDEN Events der Session — auf einer
222            // Seite ohne Cluster muss die Property daher wieder weg, sonst
223            // klebt sie an Events fremder Seiten.
224            function registerCampaignCluster() {
225                var meta = document.querySelector('meta[name="wcx:campaign-cluster"]');
226                var clusters = (meta ? meta.content.split(',') : [])
227                    .map(function (value) { return value.trim(); })
228                    .filter(Boolean);
229
230                if (clusters.length) {
231                    posthog.register({ wcx_campaign_cluster: clusters });
232                } else {
233                    posthog.unregister('wcx_campaign_cluster');
234                }
235            }
236
237            function matches(value) {
238                return typeof value === 'string' && value.trim().toLowerCase() === EMBEDDING;
239            }
240
241            function isAccepted() {
242                var list = (window.CCM && Array.isArray(window.CCM.acceptedEmbeddings))
243                    ? window.CCM.acceptedEmbeddings
244                    : [];
245
246                // CCM19 liefert [{id, name}, …]; ältere Stände auch Strings.
247                return list.some(function (e) {
248                    if (!e) {
249                        return false;
250                    }
251
252                    return typeof e === 'string' ? matches(e) : (matches(e.name) || matches(e.id));
253                });
254            }
255
256            function optIn() {
257                if (applied === 'in') {
258                    return;
259                }
260                applied = 'in';
261
262                // Wechselt intern von der Cookieless-Sentinel-ID auf eine echte
263                // Identität. captureEventName:null unterdrückt ein $opt_in-Event.
264                posthog.opt_in_capturing({ captureEventName: null });
265
266                if (RECORDING) {
267                    posthog.startSessionRecording();
268                }
269
270                // Späte Einwilligung: Pageview mit echter Identität nachziehen.
271                // Vorher das Cluster erneut registrieren — der Wechsel der
272                // Identität kann die Super-Properties abgeräumt haben.
273                if (initialPageviewSent) {
274                    registerCampaignCluster();
275                    capturePageview();
276                }
277            }
278
279            function applyConsent() {
280                // CCM.ucid ist die Consent-ID und bleibt null, solange der
281                // Besucher nicht entschieden hat. ACHTUNG: Die CCM19-API kennt
282                // KEINE Property `consent`+`Id` — eine Prüfung darauf ist immer
283                // falsy, die Bridge läuft dann jedes Mal in den Early-Return und
284                // alles bleibt cookieless.
285                // Ohne Entscheidung bewusst NICHTS tun: der Default ist bereits
286                // cookieless, und jeder Aufruf hier würde eine Präferenz
287                // persistieren.
288                if (!window.CCM || !window.CCM.ucid) {
289                    return;
290                }
291
292                if (isAccepted()) {
293                    optIn();
294                    return;
295                }
296
297                if (applied === 'out') {
298                    return;
299                }
300                applied = 'out';
301
302                // Zurück auf cookieless (bzw. Rücknahme einer früheren Zustimmung).
303                posthog.opt_out_capturing();
304                posthog.stopSessionRecording();
305            }
306
307            // Beim Einzel-Event nur zustimmen, nie ablehnen: die Events kommen
308            // pro Embedding, ein fremdes Embedding sagt nichts über PostHog aus.
309            window.addEventListener('ccm19EmbeddingAccepted', function (event) {
310                if (event && event.detail && matches(event.detail.name)) {
311                    optIn();
312                } else {
313                    applyConsent();
314                }
315            });
316
317            // Vollständige Auswertung nur bei stabilem Gesamtzustand — inkl.
318            // Widerruf, wenn der Besucher im Dialog abwählt und speichert.
319            window.addEventListener('ccm19WidgetLoaded', applyConsent);
320            window.addEventListener('ccm19WidgetClosed', applyConsent);
321
322            // Wichtigster Pfad: CCM19 steht im <head> und ist hier bereits
323            // initialisiert. Erst den Consent-Zustand festlegen (setzt ggf. die
324            // echte Identität), dann GENAU EINEN initialen $pageview feuern – mit
325            // Metadaten und passender Identität (cookieless oder eingewilligt).
326            // Reihenfolge: erst Consent (opt_out_capturing() räumt die
327            // Persistenz und damit registrierte Properties ab), dann das
328            // Cluster registrieren, dann der Pageview — der trägt es so bereits.
329            applyConsent();
330            registerCampaignCluster();
331            capturePageview();
332            initialPageviewSent = true;
333        })();
334
335    </script>
335
336
337
338<script>
339(function () {
340    var KEYS = ["gclid","li_fat_id","utm_source","utm_medium","utm_campaign","utm_content"];
341    var PREFIX = "attr_";
342    var STORAGE_PREFIX = 'wcx_attr_';
343    var TTL = 90 * 24 * 60 * 60 * 1000; // 90 Tage
344
345    function store() {
346        try {
347            return window.localStorage;
348        } catch (e) {
349            return null; // Privat-Modus o. ä. — dann eben ohne Persistenz.
350        }
351    }
352
353    function remember() {
354        var storage = store();
355
356        if (!storage) {
357            return;
358        }
359
360        var params = new URLSearchParams(window.location.search);
361
362        KEYS.forEach(function (key) {
363            var value = params.get(key);
364
365            if (value) {
366                storage.setItem(STORAGE_PREFIX + key, JSON.stringify({ v: value.slice(0, 255), t: Date.now() }));
367            }
368        });
369    }
370
371    function read(key) {
372        var storage = store();
373
374        if (!storage) {
375            return null;
376        }
377
378        var raw = storage.getItem(STORAGE_PREFIX + key);
379
380        if (!raw) {
381            return null;
382        }
383
384        try {
385            var entry = JSON.parse(raw);
386
387            if (!entry || typeof entry.v !== 'string' || Date.now() - entry.t > TTL) {
388                storage.removeItem(STORAGE_PREFIX + key);
389
390                return null;
391            }
392
393            return entry.v;
394        } catch (e) {
395            storage.removeItem(STORAGE_PREFIX + key);
396
397            return null;
398        }
399    }
400
401    function fill() {
402        KEYS.forEach(function (key) {
403            var value = read(key);
404
405            if (value === null) {
406                return;
407            }
408
409            document.querySelectorAll('input[name="' + PREFIX + key + '"]').forEach(function (input) {
410                if (input.value === value) {
411                    return;
412                }
413
414                input.value = value;
415
416                // Livewire bindet die Felder per wire:model und übernimmt den
417                // Wert erst, wenn ein input-Event kommt.
418                input.dispatchEvent(new Event('input', { bubbles: true }));
419            });
420        });
421    }
422
423    remember();
424
425    if (document.readyState === 'loading') {
426        document.addEventListener('DOMContentLoaded', fill);
427    } else {
428        fill();
429    }
430
431    // Livewire-Komponenten (und SPA-Navigation) rendern ihre Felder später neu.
432    document.addEventListener('livewire:initialized', fill);
433    document.addEventListener('livewire:navigated', function () {
434        remember();
435        fill();
436    });
437})();
438</script>
438
439
440
441<script>
442    (function () {
443        var sources = [
444            'https://crm.workcentrix.de/im_livechat/loader/1',
445            'https://crm.workcentrix.de/im_livechat/assets_embed.js',
446        ];
447
448        function loadLivechat() {
449            sources.forEach(function (src) {
450                var script = document.createElement('script');
451                script.src = src;
452                script.async = false; // preserve execution order
453                document.body.appendChild(script);
454            });
455        }
456
457        window.setTimeout(loadLivechat, 20000);
458    })();
459</script>
459
460
461
462    
463<script src="https://workcentrix.de/livewire-ea5a3bd0/livewire.min.js?id=ab6b028c"   data-csrf="YK515TsWQBN9w3q5ctVMcmgFvjjnjtKTA4pgwjkJ" data-module-url="https://workcentrix.de/livewire-ea5a3bd0" data-update-uri="https://workcentrix.de/livewire-ea5a3bd0/update" data-navigate-once="true"></script>
463
464    </div>
465</body>
466</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.