> ## Documentation Index
> Fetch the complete documentation index at: https://docs.twenty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Formül Alanları

> Yerel destek sunulana kadar iş akışlarını kullanarak formül alanları oluşturun.

Twenty henüz yerel formül alanlarını desteklemiyor (2026'da geliyor), ancak aynı sonuca iş akışlarını kullanarak ulaşabilirsiniz. Bu geçici çözüm, basit birleştirmelerden karmaşık iş mantığına kadar alan değerlerini otomatik olarak hesaplayıp doldurmanızı sağlar.

## Ortak Kullanım Durumları

| Kullanım Senaryosu       | Formül Örneği                     |
| ------------------------ | --------------------------------- |
| **Ad Soyad**             | First Name + " " + Last Name      |
| **Beklenen tutar**       | Amount × Probability              |
| **Son tarihe kalan gün** | Due Date - Today                  |
| **Aşamadaki gün sayısı** | Today - Stage Entry Date          |
| **Lead skoru**           | Birden çok kritere dayalı puanlar |

<Tip>
  Boru hattı aşamalarında zamanı izlemeye dair eksiksiz bir örnek için bkz. [Fırsatların Her Aşamada Ne Kadar Kaldığını İzleme](/l/tr/user-guide/views-pipelines/how-tos/track-time-in-stage).
</Tip>

## Temel Formül: Birleştirme

### Örnek: Ad Soyad'ı Otomatik Doldur

**Amaç**: Ad ve soyadı otomatik olarak bir Ad Soyad alanında birleştirmek.

### Kurulum

1. **Tetikleyici**: Kayıt Güncellenir veya Oluşturulur (Kişiler)

2. **Filtre**: Adın veya soyadın değişip değişmediğini kontrol edin

3. **Kod eylemi**:

```javascript theme={null}
export const main = async (params) => {
  const { firstName, lastName } = params;

  const fullName = [firstName, lastName]
    .filter(Boolean)
    .join(' ');

  return { fullName };
};
```

4. **Kaydı Güncelle**: Ad Soyad'ı `{{code.fullName}}` olarak ayarla

## Sayısal Formül: Beklenen Tutar

### Örnek: Beklenen Geliri Hesapla

**Amaç**: Beklenen tutarı elde etmek için fırsat tutarını olasılıkla çarpın.

Tam iş akışı için [Boru Hattında Beklenen Tutar Nasıl Gösterilir](/l/tr/user-guide/views-pipelines/how-tos/show-expected-amount-in-pipeline) bölümüne bakın.

### Hızlı Kurulum

1. **Tetikleyici**: Kayıt Güncellenir (Fırsatlar, Tutar VEYA Olasılık alanı)

2. **Kod eylemi**:

```javascript theme={null}
export const main = async (params) => {
  const { amount, probability } = params;

  const expectedAmount = (amount || 0) * (probability || 0) / 100;

  return { expectedAmount };
};
```

3. **Kaydı Güncelle**: Beklenen Tutar'ı `{{code.expectedAmount}}` olarak ayarla

## Tarih Formülü: Gün Hesaplaması

### Örnek: Görevin Son Tarihine Kalan Gün Sayısı

**Amaç**: Bir görevin son tarihine kaç gün kaldığını hesaplamak.

### Kurulum

1. **Tetikleyici**: Kayıt Güncellenir veya Oluşturulur (Görevler, Son Tarih alanı)

2. **Kod eylemi**:

```javascript theme={null}
export const main = async (params) => {
  const { dueDate } = params;

  if (!dueDate) {
    return { daysUntilDue: null };
  }

  const due = new Date(dueDate);
  const today = new Date();
  const diffTime = due - today;
  const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));

  return { daysUntilDue: diffDays };
};
```

3. **Kaydı Güncelle**: Son Tarihe Kalan Gün'ü `{{code.daysUntilDue}}` olarak ayarla

<Note>
  Negatif değerler, vadesi geçmiş görevleri belirtir. Bu alanı, görevleri aciliyetine göre filtrelemek veya sıralamak için kullanabilirsiniz.
</Note>

## Koşullu Formül: Lead Skoru

### Örnek: Kriterlere Göre Lead Skoru Hesapla

**Amaç**: Şirket büyüklüğü, sektör ve etkileşime göre lead'leri puanlamak.

### Kurulum

1. **Tetikleyici**: Kayıt Güncellenir (Kişiler veya Şirketler)

2. **Kod eylemi**:

```javascript theme={null}
export const main = async (params) => {
  const { companySize, industry, hasEmail, hasPhone, source } = params;

  let score = 0;

  // Company size scoring
  if (companySize === 'Enterprise') score += 30;
  else if (companySize === 'Mid-Market') score += 20;
  else if (companySize === 'SMB') score += 10;

  // Industry scoring
  const targetIndustries = ['Technology', 'Finance', 'Healthcare'];
  if (targetIndustries.includes(industry)) score += 25;

  // Contact info scoring
  if (hasEmail) score += 10;
  if (hasPhone) score += 15;

  // Source scoring
  if (source === 'Referral') score += 20;
  else if (source === 'Website') score += 10;

  return { leadScore: score };
};
```

3. **Kaydı Güncelle**: Lead Skorunu `{{code.leadScore}}` olarak ayarla

## Metin Formülü: Alan Adı Çıkarma

### Örnek: E-postadan Alan Adı Çıkar

**Amaç**: E-posta alan adını otomatik olarak çıkarmak ve saklamak.

### Kurulum

1. **Tetikleyici**: Kayıt Güncellenir (Kişiler, E-posta alanı)

2. **Kod eylemi**:

```javascript theme={null}
export const main = async (params) => {
  const { email } = params;

  if (!email) return { domain: null };

  const domain = email.split('@')[1]?.toLowerCase();

  return { domain };
};
```

3. **Kaydı Güncelle**: Alan Adı alanını `{{code.domain}}` olarak ayarla

## En İyi Uygulamalar

### Performans

* Yalnızca ilgili alan değişikliklerinde tetikleyin
* Hesaplama gerektirmeyen kayıtları atlamak için filtreler kullanın
* Yüksek hacimli iş akışlarında karmaşık hesaplamalardan kaçının

### Hata Yönetimi

* Hesaplamalardan önce null/undefined değerleri kontrol edin
* Veri eksikse varsayılan değerleri kullanın
* Hesaplamalar başarısız olduğunda açık hata mesajları döndürün

### Test

* Sınır durumlarıyla test edin (boş alanlar, sıfır değerler)
* Etkinleştirmeden önce hesaplamaları manuel olarak doğrulayın
* Beklenmeyen sonuçlar için iş akışı çalıştırmalarını izleyin

## İlgili

* [Boru Hattında Beklenen Tutar Nasıl Gösterilir](/l/tr/user-guide/views-pipelines/how-tos/show-expected-amount-in-pipeline)
* [Aşamadaki Süre Nasıl İzlenir](/l/tr/user-guide/views-pipelines/how-tos/track-time-in-stage)
* [İş Akışı Eylemleri](/l/tr/user-guide/workflows/capabilities/workflow-actions)
