Direct Start & Direct Complete

Memulai proses dan menyelesaikan task lewat body JSON flat biasa, tanpa format variables[] milik REST API Engine Camunda.

Gambaran Umum

Endpoint start process (/start) dan complete task (/complete) bawaan AlurKerja mengharuskan setiap variabel ditulis sebagai objek {name, value, type, valueInfo} — bentuk asli variabel REST API Engine Camunda:

{
  "variables": [
    { "name": "application_source", "value": "MOTION_BANK", "type": "String", "valueInfo": {} }
  ]
}

Direct Start dan Direct Complete adalah pasangan endpoint alternatif yang menerima body JSON flat seperti API pada umumnya — satu key per variabel:

{
  "application_source": "MOTION_BANK"
}

Tipe variabel Camunda disimpulkan otomatis dari tipe JSON tiap value, jadi pemanggil tidak perlu menuliskannya. Keduanya tidak menggantikan /start dan /complete — akses, constraint form, activity history, dan webhook process.started berjalan persis sama untuk kedua bentuk body.

Autentikasi

Sama seperti endpoint tasklist lainnya:

HeaderWajibKeterangan
AuthorizationYaBearer <token> — token pengguna/service yang berhak menjalankan proses atau task tersebut
x-act-envTidakNama environment, dipakai untuk resolve tenant kalau workspace punya lebih dari satu environment

Parameter query tenantId bersifat opsional dan hanya perlu diisi kalau environment/tenant tidak bisa diresolusi otomatis dari header di atas.

Direct Start Process

POST /api/v1/tasklist/{processName}/direct-start?tenantId={tenantId}
Content-Type: application/json
Authorization: Bearer <token>
Path parameterKeterangan
processNameKey/nama proses yang akan dijalankan, sama seperti pada /start

Contoh body:

{
  "application_source": "MOTION_BANK",
  "loan_amount": 15000000,
  "interest_rate": 2.5,
  "is_priority": true,
  "documents": ["ktp.pdf", "npwp.pdf"],
  "applicant": {
    "name": "John Doe",
    "score": 720
  }
}

Contoh response (identik dengan /start):

{
  "message": "Process BNPL started successfully",
  "status": 200,
  "data": {
    "process_instance_id": "a1b2c3d4-...",
    "process_definition_key": "BNPL",
    "process_definition_name": "BNPL Loan Application",
    "state": "ACTIVE",
    "started_at": "2026-09-16T09:30:00Z",
    "started_by": "budi.santoso"
  }
}

Variabel initiator (username pemanggil) tetap otomatis ditambahkan, sama seperti /start.

Direct Complete Task

POST /api/v1/tasklist/{processName}/tasks/{taskId}/direct-complete?tenantId={tenantId}
Content-Type: application/json
Authorization: Bearer <token>
Path parameterKeterangan
processNameKey/nama proses pemilik task
taskIdId task yang akan diselesaikan

Contoh body:

{
  "approval_status": "APPROVED",
  "approved_limit": 20000000
}

Contoh response (identik dengan /complete):

{
  "message": "Process BNPL task 12345 Completed  Successfully ",
  "status": 200,
  "data": {
    "hasNextUserTask": true,
    "nextTask": {
      "taskId": "67890",
      "taskName": "Verifikasi Dokumen",
      "assignee": "citra.putri",
      "assigneeEmail": "citra.putri@company.com"
    }
  }
}

Pemetaan Tipe JSON ke Tipe Variabel Camunda

Tipe value di JSONTipe variabel CamundaContoh
StringString"MOTION_BANK"
Angka bulatInteger atau Long (tergantung besar angkanya)15000000
Angka pecahanDouble2.5
true / falseBooleantrue
ArrayObject["ktp.pdf", "npwp.pdf"]
Object (nested JSON)Object{"name": "John Doe", "score": 720}

Variabel bertipe Object (array/nested JSON) disimpan Camunda dengan serialisasi Java bawaan (bukan sebagai teks JSON) — perilaku ini sama persis dengan yang terjadi kalau field itu dikirim lewat body variables[] versi lama dengan value berbentuk array/object.

Kapan Memakai yang Mana

/start dan /completedirect-start dan direct-complete
Bentuk bodyArray variables[] {name, value, type, valueInfo}JSON flat, satu key per variabel
Tipe variabelDitentukan sendiri lewat field typeDisimpulkan otomatis dari tipe JSON
valueInfo (mis. metadata file)DidukungTidak ada padanannya
Cocok untukPemanggil yang sudah terbiasa dengan format variabel REST API Engine CamundaIntegrasi pihak ketiga yang mengirim payload JSON seperti API pada umumnya