CRM Sumber Daya Teknik
Bangun dengan AI Agent
Backend CRM Sumber Daya Teknik

Templat Backend CRM Sumber Daya Teknik
Profil Insinyur, Sertifikasi, Alokasi Proyek, dan Pelacakan Jam Tagihan

Backend CRM sumber daya teknik yang siap diproduksi di Back4app dengan kelas Pengguna, Profil Insinyur, Sertifikasi, Proyek, Alokasi, dan Jam Tagihan. Gunakan untuk melacak penempatan, kredensial, dan waktu tagihan tanpa membangun ulang backend.

Panduan Utama Staf

Template ini memberikan Anda backend CRM sumber daya teknik dengan catatan EngineerProfile, Sertifikasi, Proyek, Alokasi, dan Jam yang Dapat Ditagih sehingga koordinator dapat beralih dari mempermainkan spreadsheet ke alur kerja yang terstruktur.

  1. Staf yang sadar akan EngineerProfileModel catatan User dan EngineerProfile agar keputusan penugasan dapat menghormati disiplin, statusPekerjaan, dan tarifPerJam.
  2. Pemeriksaan kedaluwarsa SertifikasiLacak Sertifikasi terhadap setiap EngineerProfile sehingga staf dapat disaring berdasarkan issuedOn, expiresOn, dan status sebelum booking.
  3. Perencanaan alokasi ProyekGunakan Alokasi untuk menghubungkan EngineerProfile ke Proyek dengan allocationPercent, assignmentRole, dan rentang tanggal.

Apa Itu Template CRM Sumber Daya Teknik?

Ketika masalah CRM sumber daya teknik bersifat sensitif, kontrol akses adalah bagian dari produk — bukan pemikiran kedua yang dipasang di akhir. Biaya muncul dalam panggilan balik dan kredit. Alur kerja CRM sumber daya teknik di sini jelas dalam data: EngineerProfile, Certification, Project, Allocation, dan BillableHour di Back4app menggantikan catatan ad-hoc dengan kemajuan yang terstruktur dan dapat dicari. Skema mencakup User (username, email, password, role), EngineerProfile (user, fullName, discipline, employmentStatus), Certification (engineer, certificationName, issuer, status), Project (projectCode, projectName, clientName, projectManager), Allocation (engineer, project, allocationPercent), dan BillableHour (engineer, project, workDate, hours, billingStatus) dengan pelacakan otorisasi dan penugasan yang terintegrasi. Hubungkan frontend pilihan Anda dan kirim lebih cepat.

Terbaik untuk:

Dasbor penyediaan teknikAlat alokasi sumber dayaSistem pelacakan sertifikasiAplikasi pencatatan jam yang dapat dibayarPeluncuran MVPTim yang memilih BaaS untuk produk perencanaan sumber daya

CRM Sumber Daya Teknik: snapshot backend

tim CRM sumber daya teknik memenangkan ketika pekerjaan rutin membosankan: rekaman yang dapat diprediksi, kepemilikan yang jelas, dan peringatan sebelum masalah kecil menjadi insiden.

Setiap kartu teknologi di sini dipetakan ke model yang sama EngineerProfile, Sertifikasi, dan Proyek — pilih tumpukan tanpa menegosiasi kembali kontrak backend Anda.

Fitur Pengelolaan Staf Engineer

Setiap kartu teknologi di pusat ini menggunakan skema backend CRM sumber daya teknik yang sama dengan User, EngineerProfile, Certification, Project, Allocation, dan BillableHour.

Pengelolaan profil Engineer

EngineerProfile menyimpan fullName, discipline, employmentStatus, dan hourlyRate.

Pelacakan sertifikasi

Tautan sertifikasi engineer, certificationName, issuedOn, expiresOn, dan status.

Perencanaan alokasi proyek

Alokasi menghubungkan engineer, project, allocationPercent, startDate, dan assignmentRole.

Penghitungan jam yang dapat ditagih

BillableHour mencatat engineer, proyek, tanggal kerja, jam, dan status penagihan.

Mengapa Membangun Backend CRM Sumber Daya Teknik Anda dengan Back4app?

Back4app memberi Anda User, EngineerProfile, Project, Allocation, dan BillableHour primitif sehingga tim Anda dapat fokus pada keputusan staf dan pelaporan pemanfaatan alih-alih plumbing backend.

  • Kontrol sertifikasi dan penugasan: Kelas EngineerProfile dan Sertifikasi memungkinkan Anda untuk menyaring berdasarkan disiplin, employmentStatus, dan expiresOn sebelum Alokasi disimpan.
  • Pengelolaan proyek dan jejak audit: Rekor Proyek dan Alokasi menangkap projectCode, projectManager, allocationPercent, dan assignmentRole untuk setiap pemesanan.
  • Visibilitas jam yang dapat ditagih: Baris BillableHour menghubungkan jam kembali ke engineer, proyek, alokasi, dan submittedBy, yang menjadikan pelaporan terfokus pada pekerjaan yang sebenarnya.

Bangun dan sesuaikan alur pengelolaan staf dengan cepat menggunakan satu kontrak backend di semua platform.

Manfaat Inti CRM

Backend CRM sumber daya teknik yang membantu koordinator bergerak lebih cepat tanpa kehilangan kendali data staf.

Keputusan staf yang lebih cepat

Mulai dari kelas User dan EngineerProfile alih-alih membangun kembali tabel daftar dan kredensial dari awal.

Risiko alokasi yang lebih rendah

Gunakan bidang Alokasi seperti allocationPercent, startDate, dan endDate untuk melihat penugasan yang tumpang tindih sebelum mencapai jadwal produksi.

Pelaporan jam yang dapat ditagih lebih bersih

BillableHour.hours dan billingStatus menjaga catatan waktu tetap konsisten untuk pelaporan dan penagihan.

Akses yang sadar izin

Gunakan ACL/CLP agar hanya staf yang disetujui yang dapat mengedit rekam EngineerProfile, Project, Allocation, dan BillableHour.

Model data yang dapat diulang

Simpan sertifikasi, penugasan proyek, dan log kerja dalam satu skema yang dapat tumbuh dengan disiplin atau kantor baru.

Pengaturan backend yang dibantu AI

Hasilkan kerangka backend dan panduan integrasi dengan cepat menggunakan satu prompt terstruktur.

Siap meluncurkan aplikasi CRM sumber daya teknik Anda?

Biarkan Agen AI Back4app membangun backend CRM sumber daya teknik Anda dan menghasilkan pelacakan Pengguna, ProfilInsinyur, Sertifikasi, Proyek, Alokasi, dan JamTerkait dari satu perintah.

Gratis memulai — 50 perintah Agen AI/bulan, tanpa memerlukan kartu kredit

Tumpukan Teknik

Semua yang termasuk dalam template backend CRM sumber daya teknik ini.

Frontend
13+ teknologi
Backend
Back4app
Basis Data
MongoDB
Otentikasi
Otentikasi bawaan + sesi
API
REST dan GraphQL
Realtime
Live Queries

Diagram ER Rekayasa

Model hubungan entitas untuk skema backend CRM sumber daya rekayasa.

Lihat sumber diagram
Mermaid
erDiagram
    User ||--o{ EngineerProfile : "linked account"
    EngineerProfile ||--o{ Certification : "holds"
    User ||--o{ Project : "project manager"
    EngineerProfile ||--o{ Allocation : "assigned"
    Project ||--o{ Allocation : "receives"
    EngineerProfile ||--o{ BillableHour : "logs"
    Project ||--o{ BillableHour : "charged to"
    Allocation ||--o{ BillableHour : "context"
    User ||--o{ BillableHour : "submitted by"

    User {
        String objectId PK
        String username
        String email
        String password
        String role
        Date createdAt
        Date updatedAt
    }

    EngineerProfile {
        String objectId PK
        String userId FK
        String fullName
        String discipline
        String employmentStatus
        String primaryLocation
        Number hourlyRate
        Date createdAt
        Date updatedAt
    }

    Certification {
        String objectId PK
        String engineerId FK
        String certificationName
        String issuer
        String certificationNumber
        Date issuedOn
        Date expiresOn
        String status
        String documentUrl
        Date createdAt
        Date updatedAt
    }

    Project {
        String objectId PK
        String projectCode
        String projectName
        String clientName
        String status
        Date startDate
        Date endDate
        String projectManagerId FK
        String requiredDiscipline
        Date createdAt
        Date updatedAt
    }

    Allocation {
        String objectId PK
        String engineerId FK
        String projectId FK
        Number allocationPercent
        Date startDate
        Date endDate
        String assignmentRole
        String status
        String notes
        Date createdAt
        Date updatedAt
    }

    BillableHour {
        String objectId PK
        String engineerId FK
        String projectId FK
        String allocationId FK
        Date workDate
        Number hours
        String taskCode
        String billingStatus
        String submittedById FK
        String notes
        Date createdAt
        Date updatedAt
    }

Aliran Integrasi Staf

Aliran runtime yang khas untuk otentikasi, pencarian daftar ProfilInsinyur, pemeriksaan Sertifikasi, perencanaan Alokasi, dan entri JamTagih.

Lihat sumber alur kerja
Mermaid
sequenceDiagram
  participant User
  participant App as Engineering Firm Resource CRM App
  participant Back4app as Back4app Cloud

  User->>App: Sign in to review staffing and time entries
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  User->>App: Open engineer roster
  App->>Back4app: GET /classes/EngineerProfile?include=user&order=fullName
  Back4app-->>App: EngineerProfile rows

  User->>App: Check expiring credentials
  App->>Back4app: GET /classes/Certification?where={"status":"Expiring"}
  Back4app-->>App: Certification list

  User->>App: Assign engineer to project
  App->>Back4app: POST /classes/Allocation
  Back4app-->>App: Allocation objectId

  User->>App: Submit billable hours
  App->>Back4app: POST /classes/BillableHour
  Back4app-->>App: BillableHour objectId

  App->>Back4app: Subscribe to allocation and hour updates
  Back4app-->>App: Live query events

Kamus Bidang

Referensi tingkat bidang penuh untuk setiap kelas dalam skema CRM sumber daya teknik.

BidangTipeDeskripsiDiperlukan
objectIdStringAuto-generated unique identifierOtomatis
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringRole of the user (e.g., administrator, coordinator, engineer, clientLead)
createdAtDateAuto-generated creation timestampOtomatis
updatedAtDateAuto-generated last-update timestampOtomatis

7 bidang di User

Keamanan untuk Rekaman Staf

Bagaimana strategi ACL dan CLP mengamankan akun pengguna, profil engineer, data sertifikasi, alokasi proyek, dan entri jam billable.

Kontrol profil milik pengguna

Hanya pengguna yang masuk yang dapat memperbarui atau menghapus profil mereka sendiri; catatan engineer tetap dibatasi untuk staf yang berwenang.

Integritas sertifikasi dan alokasi

Hanya koordinator atau admin yang dapat membuat atau mengubah catatan Sertifikasi dan Alokasi; gunakan Cloud Code untuk menolak penugasan yang kedaluwarsa atau bertentangan.

Persetujuan jam terbatas

Batasi edit BillableHour setelah persetujuan sehingga jam tetap dapat diaudit untuk manajer proyek dan pengguna keuangan.

Skema JSON

Definisi skema JSON mentah siap untuk disalin ke Back4app atau digunakan sebagai referensi implementasi.

JSON
{
  "classes": [
    {
      "className": "User",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "EngineerProfile",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "user": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "fullName": {
          "type": "String",
          "required": true
        },
        "discipline": {
          "type": "String",
          "required": true
        },
        "employmentStatus": {
          "type": "String",
          "required": true
        },
        "primaryLocation": {
          "type": "String",
          "required": false
        },
        "hourlyRate": {
          "type": "Number",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Certification",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "engineer": {
          "type": "Pointer",
          "required": true,
          "targetClass": "EngineerProfile"
        },
        "certificationName": {
          "type": "String",
          "required": true
        },
        "issuer": {
          "type": "String",
          "required": true
        },
        "certificationNumber": {
          "type": "String",
          "required": false
        },
        "issuedOn": {
          "type": "Date",
          "required": true
        },
        "expiresOn": {
          "type": "Date",
          "required": false
        },
        "status": {
          "type": "String",
          "required": true
        },
        "documentUrl": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Project",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "projectCode": {
          "type": "String",
          "required": true
        },
        "projectName": {
          "type": "String",
          "required": true
        },
        "clientName": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "startDate": {
          "type": "Date",
          "required": false
        },
        "endDate": {
          "type": "Date",
          "required": false
        },
        "projectManager": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "requiredDiscipline": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Allocation",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "engineer": {
          "type": "Pointer",
          "required": true,
          "targetClass": "EngineerProfile"
        },
        "project": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Project"
        },
        "allocationPercent": {
          "type": "Number",
          "required": true
        },
        "startDate": {
          "type": "Date",
          "required": true
        },
        "endDate": {
          "type": "Date",
          "required": false
        },
        "assignmentRole": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "BillableHour",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "engineer": {
          "type": "Pointer",
          "required": true,
          "targetClass": "EngineerProfile"
        },
        "project": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Project"
        },
        "allocation": {
          "type": "Pointer",
          "required": false,
          "targetClass": "Allocation"
        },
        "workDate": {
          "type": "Date",
          "required": true
        },
        "hours": {
          "type": "Number",
          "required": true
        },
        "taskCode": {
          "type": "String",
          "required": false
        },
        "billingStatus": {
          "type": "String",
          "required": true
        },
        "submittedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

Bangun dengan Agen AI

Gunakan Agen AI Back4app untuk menghasilkan aplikasi CRM sumber daya teknik yang nyata dari templat ini, termasuk frontend, backend, otentikasi, dan alur insinyur, sertifikasi, alokasi, dan jam yang dapat ditagih.

Agen AI Back4app
Siap untuk membangun
Buat backend aplikasi CRM sumber daya teknik di Back4app dengan skema dan perilaku persis ini.

Skema:
1. Pengguna (gunakan bawaan Back4app): objectId, username (String, wajib), email (String, wajib), password (String, wajib), role (String, wajib), createdAt, updatedAt.
2. ProfilInsinyur: objectId, pengguna (Pointer<User>, wajib), namaLengkap (String, wajib), disiplin (String, wajib), statusPekerjaan (String, wajib), lokasiUtama (String, opsional), tarifPerJam (Number, opsional), createdAt, updatedAt.
3. Sertifikasi: objectId, insinyur (Pointer<EngineerProfile>, wajib), namaSertifikasi (String, wajib), penerbit (String, wajib), nomorSertifikasi (String, opsional), tanggalDiterbitkan (Date, wajib), tanggalKedaluwarsa (Date, opsional), status (String, wajib), documentUrl (String, opsional), createdAt, updatedAt.
4. Proyek: objectId, kodeProyek (String, wajib), namaProyek (String, wajib), namaKlien (String, wajib), status (String, wajib), tanggalMulai (Date, opsional), tanggalSelesai (Date, opsional), manajerProyek (Pointer<User>, wajib), disiplinDibutuhkan (String, opsional), createdAt, updatedAt.
5. Alokasi: objectId, insinyur (Pointer<EngineerProfile>, wajib), proyek (Pointer<Project>, wajib), persenAlokasi (Number, wajib), tanggalMulai (Date, wajib), tanggalSelesai (Date, opsional), peranTugas (String, wajib), status (String, wajib), catatan (String, opsional), createdAt, updatedAt.
6. JamDapatDitagih: objectId, insinyur (Pointer<EngineerProfile>, wajib), proyek (Pointer<Project>, wajib), alokasi (Pointer<Allocation>, opsional), tanggalKerja (Date, wajib), jam (Number, wajib), kodeTugas (String, opsional), statusTagih (String, wajib), diajukanOleh (Pointer<User>, wajib), catatan (String, opsional), createdAt, updatedAt.

Keamanan:
- Hanya pengguna yang masuk yang dapat memperbarui/menghapus profil mereka sendiri.
- Hanya koordinator atau admin yang dapat mengedit Sertifikasi dan Alokasi.
- Manajer proyek dapat membaca staf proyek dan menyetujui atau menolak baris JamDapatDitagih untuk proyek mereka.
- Insinyur dapat melihat profilInsinyur mereka sendiri, alokasi, dan sertifikasi, serta mengajukan entri JamDapatDitagih mereka sendiri.
- Gunakan ACL dan CLP agar insinyur tidak mengedit catatan Sertifikasi atau JamDapatDitagih insinyur lain.

Perilaku:
- Akses berbasis login dan sesi.
- Daftar insinyur dengan disiplin dan statusPekerjaan.
- Lacak sertifikasi yang valid atau kedaluwarsa.
- Tugas insinyur ke proyek dengan persenAlokasi dan rentang tanggal.
- Catat jam yang dapat ditagih berdasarkan tanggalKerja, jam, kodeTugas, dan statusTagih.

Kirim:
- konfigurasi aplikasi Back4app, skema, izin, dan alur kerja sampel untuk staf, pelacakan kredensial, dan penangkapan waktu.

Tekan tombol di bawah untuk membuka Agen dengan prompt templat ini yang telah diisi sebelumnya.

Ini adalah prompt dasar tanpa sufiks teknologi. Anda dapat menyesuaikan tumpukan frontend yang dihasilkan setelahnya.

Terapkan dalam hitungan menit50 permintaan gratis / bulanTidak memerlukan kartu kredit

API Sandbox

Coba REST dan GraphQL endpoint terhadap skema sumber daya CRM teknik. Respons menggunakan data tiruan dan tidak memerlukan akun Back4app.

Memuat playground…

Menggunakan skema yang sama seperti template ini.

Pilih Teknologi Anda

Perluas setiap kartu untuk melihat cara mengintegrasikan EngineerProfile, Sertifikasi, dan Proyek dengan tumpukan pilihan Anda.

Flutter Sumber Daya Rekayasa CRM Backend

React Sumber Daya Rekayasa CRM Backend

React Native Sumber Daya Rekayasa CRM Backend

Next.js Sumber Daya Rekayasa CRM Backend

JavaScript Sumber Daya Rekayasa CRM Backend

Android Sumber Daya Rekayasa CRM Backend

iOS Sumber Daya Rekayasa CRM Backend

Vue Sumber Daya Rekayasa CRM Backend

Angular Sumber Daya Rekayasa CRM Backend

GraphQL Sumber Daya Rekayasa CRM Backend

REST API Sumber Daya Rekayasa CRM Backend

PHP Sumber Daya Rekayasa CRM Backend

.NET Sumber Daya Rekayasa CRM Backend

Apa yang Anda Dapatkan dengan Setiap Teknologi

Setiap tumpukan menggunakan skema backend CRM sumber daya teknik dan kontrak API yang sama.

Data daftar teknik yang terpadu

Kelola catatan Pengguna, ProfilInsinyur, Sertifikasi, Proyek, Alokasi, dan JamTerkena dengan satu skema yang konsisten.

Staf yang sadar sertifikasi

Saring berdasarkan disiplin dan tanggal kedaluwarsa sebelum menugaskan insinyur ke pekerjaan proyek.

Pelacakan jam yang dapat ditagih untuk keuangan

Tangkap baris JamTerkena untuk mendukung laporan jam yang disetujui dan pemanfaatan.

Aturan alokasi untuk koordinator

Tentukan siapa yang dapat membuat penugasan, mengubah tanggal, atau menyetujui jam.

Perbandingan Kerangka CRM Teknik

Bandingkan kecepatan pengaturan, gaya SDK, dan dukungan AI di semua teknologi yang didukung.

KerangkaWaktu PengaturanManfaat CRM TeknikJenis SDKDukungan AI
Sekitar 5 menitBasis kode tunggal untuk daftar insinyur dan alokasi di mobile dan web.SDK TertulisPenuh
Kurang dari 5 menitDasbor web cepat untuk perencanaan sumber daya teknik.SDK yang DiketikPenuh
~3–7 menitAplikasi mobile lintas platform untuk penempatan staf dan entri waktu.SDK yang DiketikPenuh
Pengaturan cepat (5 menit)Aplikasi web yang dirender di server untuk koordinator teknik.SDK yang DiketikPenuh
~3–5 menitIntegrasi web ringan untuk alur kerja CRM.SDK yang DiketikPenuh
Sekitar 5 menitAplikasi Android asli untuk perencanaan insinyur dan proyek.SDK TertulisPenuh
Kurang dari 5 menitAplikasi iOS asli untuk tim teknik di lapangan.SDK TertulisPenuh
~3–7 menitUI web Reactive untuk tinjauan sertifikasi dan alokasi.SDK TertulisPenuh
Pengaturan cepat (5 menit)Aplikasi web perusahaan untuk manajemen sumber daya.SDK yang telah diketikPenuh
Kurang dari 2 menitAPI GraphQL yang fleksibel untuk data insinyur dan alokasi yang terstruktur.GraphQL APIPenuh
Pengaturan cepat (2 menit)Integrasi REST API untuk alur kerja pengadaan staf.REST APIPenuh
~3 menitBackend PHP sisi server untuk otomatisasi CRM.REST APIPenuh
~3–7 menitBackend .NET untuk penjadwalan sumber daya.SDK TipePenuh

Waktu pengaturan mencerminkan durasi yang diharapkan dari pengenalan proyek hingga kueri alokasi atau insinyur pertama menggunakan skema template ini.

Pertanyaan Staf

Pertanyaan umum tentang membangun backend CRM sumber daya teknik dengan template ini.

Bagaimana tim CRM sumber daya teknik harus membagi tanggung jawab tanpa membocorkan data di antara peran?
Alur kerja CRM sumber daya teknik mana yang paling diuntungkan dari tugas terstruktur dibandingkan catatan bebas?
Apakah lapisan CRM sumber daya teknik ini dapat berkembang dengan jenis materi dan saluran intake baru?
Bagaimana cara memuat insinyur dan proyek dengan Flutter?
Bagaimana cara saya mengelola alokasi sumber daya dengan Next.js Server Actions?
Dapatkah React Native menyimpan alokasi dan entri waktu secara offline?
Bagaimana cara saya mencegah penugasan insinyur dengan sertifikasi yang sudah kadaluarsa?
Apa cara terbaik untuk menampilkan jam yang dapat dibebankan di Android?

Dipercaya oleh pengembang di seluruh dunia

Bergabunglah dengan tim yang mengirimkan produk CRM sumber daya teknik lebih cepat dengan template Back4app

G2 Users Love Us Badge

Siap untuk Membangun Aplikasi CRM Sumber Daya Teknik Anda?

Mulai proyek CRM sumber daya teknik Anda dalam hitungan menit. Tidak diperlukan kartu kredit.

Pilih Teknologi