---
title: "Contractize Üreteçlerinin Otomatik İş Akışı Sistemleriyle Entegrasyonu"
---
# Contractize Üreticilerini Otomatik İş Akışı Sistemleriyle Entegre Etmek

## Giriş

Günümüz işletmeleri, elle sözleşme hazırlanmasından **sürekli sözleşme otomasyonuna** doğru ilerliyor. Bir tetikleyici (yeni bir işe alım, bir SaaS aboneliği veya bir ortaklık talebi) çalıştığında yasal olarak geçerli bir anlaşmayı anında oluşturabilme yeteneği, rekabet avantajı sağlıyor. **Contractize.app**, programatik olarak çağrılabilen bir dizi anlaşma üreticisi (NDA, Hizmet Şartları, Veri İşleme Anlaşması vb.) sunuyor, ancak birçok kuruluş bu üreticileri mevcut **iş akışı otomasyonu** motorlarına gömmekte zorlanıyor.

Bu kılavuz, Contractize üreticilerini popüler iş akışı platformları (örn. **Camunda**, **n8n**, **Zapier**, özel **BPMN**‑tabanlı motorlar) ile entegre etmenin teknik, güvenlik ve operasyonel yönlerini adım adım açıklıyor. Sonunda, yeniden kullanılabilir bir entegrasyon modeli, örnek kod ve **GDPR** ve **NIST** 800‑53 gibi düzenlemelere uyumlu bir kontrol listesi elde edeceksiniz.

> **TL;DR**: Contractize’ın REST API’sini kullanın, OAuth 2.0 /OpenID Connect (OIDC) ile güvence altına alın ve BPMN diyagramınız içinde webhook’lar veya doğrudan API adımlarıyla çağrıları yönetin. Sonuç, döngü süresini %70’e kadar azaltan tam otomatik bir sözleşme yaşam döngüsü olur.

## Entegrasyonun Önemi Neden

| İş Problemi | Entegre Çözüm Faydası |
|--------------|------------------------|
| Sözleşme hazırlanma gecikmesi | Olay tetikleyicisiyle anlık belge oluşturma |
| Sürüm kontrolü karmaşası | API üzerinden erişilen merkezi şablon deposu |
| Manuel uyum kontrolleri | **GDPR**‑uyumlu veri alanlarına karşı otomatik doğrulama |
| Bağlantısız sistemler (İK, Finans, CRM) | Webhook olaylarıyla tek gerçek kaynak |

Sözleşme oluşturma süreci, işe alım, faturalama veya proje başlatma gibi otomasyon katmanının içinde yer aldığında, elden‑elle geçişleri ortadan kaldırır, hataları azaltır ve denetlenebilirliği artırırsınız.

## Temel Entegrasyon Mekanizmaları

### 1. Doğrudan REST API Çağrıları

Contractize, her üretici için bir **RESTful** uç nokta sunar. Tipik akış şu şekildedir:

1. **Kimlik Doğrulama** – `/oauth/token` uç noktasından OAuth 2.0 taşıyıcı token alın.
2. **POST** – şablon‑özel yük (JSON) `/v1/generate/{template_id}` adresine gönderilir.
3. **PDF/Word** ikili dosyası veya sonraki işlem için imzalı bir URL alınır.

> **Not**: Tüm yükler UTF‑8 kodlu JSON olmalıdır. Şema detayları için resmi Contractize API dokümanına bakın.

### 2. Webhook‑Tabanlı Orkestrasyon

İş akışı motorunuz **webhook** destekliyorsa, Contractize’ın tamamlanma olayını POST etmesini sağlayabilirsiniz. Adımlar:

- Contractize kontrol panelinde bir webhook URL’si kaydedin (örn. `https://workflow.mycompany.com/contractize/callback`).
- Oluşturma isteğine `callback_url` alanını ekleyin.
- Başarılı olduğunda Contractize, belge kimliği, indirme bağlantısı ve uyum bayraklarını içeren bir payload gönderir.

### 3. Düşük‑Kod Bağlayıcılar (Zapier, n8n)

Birçok ekip, ham kod yerine görsel araçları tercih eder. Contractize, **Zapier** ve **n8n** için önceden hazırlanmış bir uygulama ve düğüm sunar; bu bağlayıcılar API çağrılarını, OAuth değişimini ve JSON yükleme işleyişini gizler, ancak sürükle‑bırak alanlarıyla yapılandırılabilir.

## Adım‑Adım Teknik Kılavuz

Aşağıda **Node.js** kullanılarak yeniden üretilebilir bir örnek bulunmaktadır (Python, Go vb.’ye uyarlayabilirsiniz). Senaryo: İK sistemine yeni bir çalışan kaydı, bir NDA oluşturulmasını ve belgenin otomatik olarak belge yönetim sistemine (DMS) yüklenmesini tetikler.

### Gereksinimler

- Node ≥ 18
- Contractize client‑id/client‑secret bilgileri
- multipart/form‑data kabul eden bir DMS uç noktası
- Özel bir betik adımı çalıştırabilen bir iş akışı motoru (örn. Camunda Service Task)

### 1. Erişim Token’ı Alın

```js
const axios = require('axios');
const qs = require('querystring');

async function getAccessToken() {
  const response = await axios.post(
    'https://api.contractize.app/oauth/token',
    qs.stringify({
      grant_type: 'client_credentials',
      client_id: process.env.CONTRACTIZE_CLIENT_ID,
      client_secret: process.env.CONTRACTIZE_CLIENT_SECRET,
    }),
    { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }
  );
  return response.data.access_token;
}
```

### 2. Oluşturma Yükünü Hazırlayın

```js
function buildPayload(employee) {
  return {
    template_id: 'nda-001',               // NDA üreticisinin ID’si
    data: {
      employee_name: employee.fullName,
      employee_email: employee.email,
      start_date: employee.startDate,
      // Opsiyonel: gizlilik maddesi bayrağı
      confidentiality_level: 'high',
    },
    callback_url: 'https://workflow.mycompany.com/contractize/callback',
    metadata: {
      // Kendi izleme alanlarınız
      request_id: employee.id,
      initiated_by: 'HR_SYSTEM',
    },
  };
}
```

### 3. Oluşturma Uç Noktasını Çağırın

```js
async function generateContract(token, payload) {
  const response = await axios.post(
    'https://api.contractize.app/v1/generate',
    payload,
    {
      headers: {
        Authorization: `Bearer ${token}`,
        'Content-Type': 'application/json',
      },
    }
  );
  return response.data; // doc_id, download_url, status içerir
}
```

### 4. DMS’ye Yükleme (isteğe bağlı son adım)

```js
async function uploadToDMS(docUrl, metadata) {
  const fileResponse = await axios.get(docUrl, { responseType: 'arraybuffer' });
  const form = new FormData();
  form.append('file', fileResponse.data, {
    filename: `${metadata.request_id}_NDA.pdf`,
    contentType: 'application/pdf',
  });
  form.append('metadata', JSON.stringify(metadata));

  await axios.post('https://dms.mycompany.com/api/upload', form, {
    headers: form.getHeaders(),
  });
}
```

### 5. İş Akışı Motorunda Orkestre Edin

```js
// Camunda Service Task için pseudo‑kod
exports.execute = async function(context) {
  const employee = context.variables.employee;
  const token = await getAccessToken();
  const payload = buildPayload(employee);
  const result = await generateContract(token, payload);
  await uploadToDMS(result.download_url, { requestId: employee.id });
  // Daha sonraki kullanım için belge ID’sini saklayın
  context.variables.contractId = result.doc_id;
};
```

### 6. Geri Çağrıyı İşleyin (kullanıldıysa)

```js
// Express endpoint for webhook
app.post('/contractize/callback', async (req, res) => {
  const { doc_id, status, download_url, metadata } = req.body;
  if (status === 'ready') {
    // İş akışı örneğini güncelle, paydaşları bilgilendir vb.
    await uploadToDMS(download_url, metadata);
  }
  res.sendStatus(200);
});
```

## Güvenlik ve Uyum Kontrol Listesi

| Alan | Tavsiye | Referans |
|------|----------|----------|
| **Kimlik Doğrulama** | **OAuth 2.0** ile **client credentials** kullanın. Giriş bilgilerini 90 günde bir yenileyin. | [OAuth 2.0 RFC 6749](https://datatracker.ietf.org/doc/html/rfc6749) |
| **İletişim** | Tüm giden/ gelen isteklerde TLS 1.2+ zorunlu tutun. | [NIST SP 800‑52 Rev 2](https://csrc.nist.gov/publications/detail/sp/800-52/rev-2/final) |
| **Veri Gizliliği** | Üçüncü‑taraf DMS’ye göndermeden önce kişisel veri (**PII**) temizleyin. | [GDPR Madde 5](https://eur-lex.europa.eu/eli/reg/2016/679/oj/article_5) |
| **Kayıt** | Denetim izleri için tam payload yerine istek/yanıt hash’lerini saklayın. | [OWASP Logging Guide](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html) |
| **En Az Yetki** | OAuth tokenı sadece gereken üretici ID’lerine erişecek şekilde scope’layın. | [Least Privilege Principle](https://csrc.nist.gov/glossary/term/least_privilege) |
| **Zero Trust** | Webhook imzalarını HMAC‑SHA256 başlığıyla doğrulayın. | [Zero Trust Architecture (NIST SP 800‑207)](https://csrc.nist.gov/publications/detail/sp/800-207/final) |

### GDPR‑Uyumlu Payload’ları Doğrulama

```js
function prunePII(data) {
  const allowed = ['employee_name', 'employee_email', 'start_date'];
  return Object.fromEntries(
    Object.entries(data).filter(([k]) => allowed.includes(k))
  );
}
```

## Ölçeklenebilir Dağıtımlar İçin En İyi Uygulamalar

1. **Şablon ID’lerini Önbellekle** – Şablon ID’lerini bir yapılandırma hizmetinde tutun; kod içinde sabitlemeyin.
2. **Toplu Oluşturma** – Aynı anda birden fazla çalışanı işe alırken **paralel** API çağrıları ve bir geri çekilme stratejisi (`429 Too Many Requests` yönetimi) uygulayın.
3. **Yeniden Deneme Mantığı** – Geçici ağ hataları için üssel geri çekilme (1 s → 2 s → 4 s) ekleyin.
4. **Sürüm Yönetimi** – Contractize’da her şablon sürümünü etiketleyin; izlenebilirlik için `template_version` alanını metadata’da gönderin.
5. **Gözlemlenebilirlik** – Gecikme ve başarı oranı metriklerini Prometheus’a gönderin, Grafana panellerinde görselleştirin.

## Gelecek Trendler: AI‑Destekli Madde Seçimi ve Zero‑Trust Ağları

- **AI‑Destekli Madde Önerisi** – Contractize’ın yakında gelecek özellikleri, yüksek‑seviye iş niyeti (örn. “bir SaaS sağlayıcıyla ortaklık”) gönderip büyük dil modelleri (LLM) ile ön‑doldurulmuş madde seti almanıza imkan tanıyacak. Bu işlevi entegre etmek, ayrı bir `/v1/ai-suggest` uç noktasını kullanmayı gerektirecek.
- **Zero‑Trust Zorlaması** – İş akışı motorunuz ile Contractize arasında **mikro‑segmentasyon** ve mutual TLS uygulamak, finans ve sağlık gibi düzenlenmiş sektörlerde uyum gereksinimi haline gelecek. API’nin Q3 2026’da **mTLS istemci sertifikaları** desteği sunması bekleniyor.
- **Olay‑Akışı Entegrasyonu** – Senkron API çağrıları yerine sözleşme oluşturma isteklerini bir Kafka konusuna itebilir, ayrılmış bir tüketici hizmeti Contractize API’sini işleyebilir; bu sayede gerçek‑asenkron, yüksek‑verimli boru hatları elde edilir.

## Sonuç

Contractize.app’in anlaşma üreticilerini otomatik iş akışı sistemlerine entegre etmek, sözleşme oluşturmayı bir darboğazdan sorunsuz, denetlenebilir bir mikro‑servise dönüştürür. REST API, güvenli OAuth 2.0 ve webhook geri çağrılarıyla, GDPR’ye uyumlu, Zero‑Trust prensiplerini izleyen ve organizasyonun büyümesiyle ölçeklenebilen bir veri hattı kurabilirsiniz. Yakın gelecekteki AI‑tabanlı madde önerileri ve olay‑akışı desenlerine gözünüzü dikin; böylece bir sonraki legal‑tech devrimine öncülük etmiş olursunuz.

---

## <span class='highlight-content'>Ayrıca</span> Bakınız

- [OAuth 2.0 Client Credentials Flow – RFC 6749](https://datatracker.ietf.org/doc/html/rfc6749)  
- [NIST SP 800‑207 Zero Trust Architecture](https://csrc.nist.gov/publications/detail/sp/800-207/final)  
- [GDPR Compliance for Automated Contracts – European Commission](https://ec.europa.eu/info/law/law-topic/data-protection_en)  
- [Camunda BPMN Integration Patterns](https://docs.camunda.org/manual/latest/best-practices/)  
- [OWASP Secure API Design Checklist](https://owasp.org/www-project-api-security/)

## <span class='highlight-content'>See</span> Also

- [OAuth 2.0 Client Credentials Flow – RFC 6749](https://datatracker.ietf.org/doc/html/rfc6749)  
- [NIST SP 800‑207 Zero Trust Architecture](https://csrc.nist.gov/publications/detail/sp/800-207/final)  
- [GDPR Compliance for Automated Contracts – European Commission](https://ec.europa.eu/info/law/law-topic/data-protection_en)  
- [Camunda BPMN Integration Patterns](https://docs.camunda.org/manual/latest/best-practices/)  
- [OWASP Secure API Design Checklist](https://owasp.org/www-project-api-security/)
