<mxfile host="app.diagrams.net" modified="2026-04-22T10:20:00.000Z" agent="Codex" version="25.0.2">
  <diagram id="employee-contract-signature-payroll-lifecycle" name="Employee-Contract-Signature-Payroll Lifecycle">
    <mxGraphModel dx="1788" dy="980" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2400" pageHeight="1800" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />

        <mxCell id="ct1" value="Employee - Contract - Signature - Payroll Lifecycle" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#0f172a;" vertex="1" parent="1">
          <mxGeometry x="40" y="20" width="860" height="30" as="geometry" />
        </mxCell>
        <mxCell id="ct2" value="Detailed people lifecycle: master setup, biodata, contract documents, digital signature, monthly assignment, BPJS, payroll." style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=12;fontColor=#475569;" vertex="1" parent="1">
          <mxGeometry x="40" y="52" width="1200" height="20" as="geometry" />
        </mxCell>

        <mxCell id="cl1" value="A. Foundation Master" style="swimlane;html=1;rounded=1;fillColor=#f8fafc;strokeColor=#cbd5e1;fontSize=16;fontStyle=1;startSize=32;" vertex="1" parent="1">
          <mxGeometry x="40" y="100" width="2280" height="170" as="geometry" />
        </mxCell>
        <mxCell id="cl2" value="B. Employee Master Record" style="swimlane;html=1;rounded=1;fillColor=#eff6ff;strokeColor=#bfdbfe;fontSize=16;fontStyle=1;startSize=32;" vertex="1" parent="1">
          <mxGeometry x="40" y="290" width="2280" height="250" as="geometry" />
        </mxCell>
        <mxCell id="cl3" value="C. Contract, Document &amp; Signature" style="swimlane;html=1;rounded=1;fillColor=#fffbeb;strokeColor=#fde68a;fontSize=16;fontStyle=1;startSize=32;" vertex="1" parent="1">
          <mxGeometry x="40" y="560" width="2280" height="300" as="geometry" />
        </mxCell>
        <mxCell id="cl4" value="D. Assignment, BPJS &amp; Payroll" style="swimlane;html=1;rounded=1;fillColor=#f0fdf4;strokeColor=#bbf7d0;fontSize=16;fontStyle=1;startSize=32;" vertex="1" parent="1">
          <mxGeometry x="40" y="880" width="2280" height="300" as="geometry" />
        </mxCell>

        <mxCell id="m1" value="master_client" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#64748b;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="90" y="150" width="170" height="54" as="geometry" />
        </mxCell>
        <mxCell id="m2" value="master_area&#xa;induk + sub area" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#64748b;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="320" y="145" width="190" height="64" as="geometry" />
        </mxCell>
        <mxCell id="m3" value="master_jabatan" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#64748b;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="570" y="150" width="170" height="54" as="geometry" />
        </mxCell>

        <mxCell id="m4" value="Create / Import Employee" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dbeafe;strokeColor=#2563eb;fontSize=13;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="110" y="370" width="190" height="54" as="geometry" />
        </mxCell>
        <mxCell id="m5" value="master_karyawans&#xa;NIK, finger, nama, JK, agama, phone, emergency, alamat KTP, alamat domisili" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#bfdbfe;strokeColor=#1d4ed8;fontSize=13;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="360" y="350" width="310" height="94" as="geometry" />
        </mxCell>
        <mxCell id="m6" value="Assign jabatan + area aktif" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#2563eb;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="730" y="370" width="190" height="54" as="geometry" />
        </mxCell>
        <mxCell id="m7" value="karyawan_area_histories&#xa;track perpindahan area per effective date" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#2563eb;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="980" y="360" width="260" height="74" as="geometry" />
        </mxCell>

        <mxCell id="m8" value="Offering Letter" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fef3c7;strokeColor=#d97706;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="110" y="650" width="170" height="54" as="geometry" />
        </mxCell>
        <mxCell id="m9" value="Contract Documents" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fef3c7;strokeColor=#d97706;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="330" y="650" width="180" height="54" as="geometry" />
        </mxCell>
        <mxCell id="m10" value="Supporting Documents" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fef3c7;strokeColor=#d97706;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="560" y="650" width="190" height="54" as="geometry" />
        </mxCell>
        <mxCell id="m11" value="Generate Signature Link" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff7ed;strokeColor=#ea580c;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="820" y="650" width="190" height="54" as="geometry" />
        </mxCell>
        <mxCell id="m12" value="master_karyawan_signature_requests&#xa;token, request_type, payload, expires_at, opened_at, signed_at" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fef3c7;strokeColor=#d97706;fontSize=13;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="1070" y="630" width="320" height="94" as="geometry" />
        </mxCell>
        <mxCell id="m13" value="Public employee-sign/{token}" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#d97706;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="1450" y="650" width="190" height="54" as="geometry" />
        </mxCell>
        <mxCell id="m14" value="Employee input&#xa;nama, email, HP, signature, acknowledge" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#d97706;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="1690" y="640" width="230" height="74" as="geometry" />
        </mxCell>
        <mxCell id="m15" value="Signed record tersimpan&#xa;signature_path, IP, user agent, status signed" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dcfce7;strokeColor=#16a34a;fontSize=13;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="1970" y="640" width="260" height="74" as="geometry" />
        </mxCell>

        <mxCell id="m16" value="master_profil_bulan_karyawans&#xa;assignment bulanan + salary cycle" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dcfce7;strokeColor=#15803d;fontSize=13;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="130" y="970" width="250" height="74" as="geometry" />
        </mxCell>
        <mxCell id="m17" value="payroll component overrides" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#15803d;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="430" y="980" width="210" height="54" as="geometry" />
        </mxCell>
        <mxCell id="m18" value="karyawan BPJS profile&#xa;+ enrolled components" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#15803d;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="710" y="970" width="210" height="74" as="geometry" />
        </mxCell>
        <mxCell id="m19" value="Attendance + SPL" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#15803d;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="980" y="980" width="170" height="54" as="geometry" />
        </mxCell>
        <mxCell id="m20" value="Payroll Engine" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#bbf7d0;strokeColor=#15803d;fontSize=13;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="1210" y="980" width="180" height="54" as="geometry" />
        </mxCell>
        <mxCell id="m21" value="payroll_payment_histories&#xa;+ payroll_payment_bpjs_details" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#15803d;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="1460" y="970" width="250" height="74" as="geometry" />
        </mxCell>
        <mxCell id="m22" value="Slip / Tax Proof / Export / THR" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#15803d;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="1780" y="980" width="240" height="54" as="geometry" />
        </mxCell>
        <mxCell id="m23" value="Catatan desain: payload signature request idealnya menyimpan snapshot biodata + isi dokumen pada saat link dibuat, agar hasil tanda tangan tidak berubah meski master data diedit setelahnya." style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8fafc;strokeColor=#94a3b8;fontSize=12;fontColor=#334155;" vertex="1" parent="1">
          <mxGeometry x="130" y="1080" width="1160" height="74" as="geometry" />
        </mxCell>

        <mxCell id="ce1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#64748b;" edge="1" parent="1" source="m1" target="m2">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#2563eb;" edge="1" parent="1" source="m2" target="m5">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#2563eb;" edge="1" parent="1" source="m3" target="m5">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#2563eb;" edge="1" parent="1" source="m4" target="m5">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#2563eb;" edge="1" parent="1" source="m5" target="m6">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#2563eb;" edge="1" parent="1" source="m6" target="m7">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#d97706;" edge="1" parent="1" source="m5" target="m8">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#d97706;" edge="1" parent="1" source="m5" target="m9">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#d97706;" edge="1" parent="1" source="m5" target="m10">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#ea580c;" edge="1" parent="1" source="m5" target="m11">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#ea580c;" edge="1" parent="1" source="m11" target="m12">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#ea580c;" edge="1" parent="1" source="m12" target="m13">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#ea580c;" edge="1" parent="1" source="m13" target="m14">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#16a34a;" edge="1" parent="1" source="m14" target="m15">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#15803d;" edge="1" parent="1" source="m5" target="m16">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#15803d;" edge="1" parent="1" source="m16" target="m17">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#15803d;" edge="1" parent="1" source="m5" target="m18">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#15803d;" edge="1" parent="1" source="m16" target="m19">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#15803d;" edge="1" parent="1" source="m17" target="m20">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#15803d;" edge="1" parent="1" source="m18" target="m20">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#15803d;" edge="1" parent="1" source="m19" target="m20">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#15803d;" edge="1" parent="1" source="m20" target="m21">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ce23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#15803d;" edge="1" parent="1" source="m21" target="m22">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
