# Salesforce'tan taşıma

> Salesforce verinizi Solk'a taşıyın — dışa aktarma dosyası ya da doğrudan bağlantı, önce örnek taşıma, sonra tam taşıma, gerekirse geri alma.

**Ayarlar → CRM'den taşı** (yalnız yönetici) Salesforce'taki firmaları, kişileri, fırsatları ve isterseniz leadleri, görevleri, etkinlikleri, notları, dosyaları, destek taleplerini ve ürünleri Solk'a kopyalar. Salesforce'taki veriye dokunulmaz — yalnız okunur.

Her taşıma aynı yolu izler: **inceleme → yapılandırma → örnek taşıma → tam taşıma**. Bir şey ters giderse taşıma **geri alınır**.

## İki yol {#methods}

| | Dışa aktarma dosyası (ZIP) | Salesforce'a bağlanma (API) |
|---|---|---|
| Salesforce sürümü | Hepsi | Enterprise, Unlimited, Performance, Developer; Professional'da API eklentisiyle |
| Kurulum | Yok — Salesforce'un kendi dışa aktarması | Salesforce'ta bir External Client App (5 dakika) |
| Güncellik | Dışa aktarmanın alındığı an | Her çalıştırmada canlı veri |
| Alan adları ve seçenek listeleri | Veriden çıkarılır | Salesforce'tan birebir (ad, tür, seçenekler, formül alanları) |
| Aşama sırası | Olasılık ve Salesforce'un hazır sırasından | Salesforce'taki sırayla |

### Dışa aktarma dosyası {#zip}

:::steps
### Dışa aktarmayı başlatın

Salesforce'ta **Setup → Quick Find → Data Export → Export Now** (ya da *Schedule Export*).

### Seçenekleri işaretleyin

- **Export File Encoding:** `Unicode (UTF-8)` — Türkçe karakterler için.
- **Include images, documents, and attachments** ve **Include Salesforce Files and Salesforce CRM Content document versions** — dosyaları da taşımak için.
- **Include all data** → **Start Export**.

### Parçaları indirin

Hazır olunca gelen e-postadaki bağlantıdan **tüm ZIP parçalarını** indirin (bağlantılar 48 saat geçerli). Büyük kuruluşlarda dışa aktarma birden çok parçadır.

### Solk'a yükleyin

**CRM'den taşı → Salesforce → Dışa aktarma dosyası yükleyin**: parçaları sürükleyip bırakın → **Yükle ve incele**. Yükleme parça parça yapılır, bağlantı koparsa kaldığı yerden sürer; parça başına en çok 2 GB.
:::

Salesforce dışa aktarmaya Enterprise ve üstünde 7 günde, Professional'da 29 günde bir izin verir.

### Salesforce'a bağlanma {#api}

:::steps
### External Client App açın

Salesforce'ta **Setup → Quick Find → External Client App Manager → New External Client App**. Ad: ör. `Solk taşıma`, **Distribution State:** `Local`.

### OAuth'u açın

**API (Enable OAuth Settings) → Enable OAuth**.

- **Callback URL:** `https://<firma>.solk.app/settings/migrate/salesforce/callback` (sayfada kopyalanabilir).
- **OAuth Scopes:** `Manage user data via APIs (api)` ve `Perform requests at any time (refresh_token, offline_access)`.
- **Require Proof Key for Code Exchange (PKCE)** açık kalsın → **Create**.

### Anahtarları kopyalayın

**Settings → OAuth Settings → Consumer Key and Secret** — değerleri Solk'taki forma yapıştırın. Ayarların Salesforce'ta geçerli olması birkaç dakika sürebilir.

### Bağlanın

Ortamı seçin (**Production**, **Sandbox** ya da kendi My Domain adresiniz) → **Salesforce'a bağlan** → Salesforce'ta oturum açıp izin verin. Bağlantı yalnız okur; erişim belirteci kurulumda şifreli saklanır.
:::

Taşıma bitince **Kontrol paneli → Bağlantıyı kaldır** ile belirteci silebilir, Salesforce'taki uygulamayı da kapatabilirsiniz (ZIP taşımasında **Dosyaları sil** sunucudaki ZIP'leri siler). Bundan sonra taşıma yeniden çalıştırılamaz; taşınan kayıtlar kalır.

## Ne taşınır? {#objects}

| Salesforce | Solk | Not |
|---|---|---|
| Account | Firma | Her zaman. Tür "Customer" ise mevcut müşteri (AC), değilse aday; kazanılmış fırsatı olan firma AC olur. Fatura adresi, telefon, web sitesi, sektör. |
| Contact | Kişi | Her zaman. Firmasız kişiler taşınmaz (hata listesinde). |
| Opportunity | Fırsat | Her zaman. Aşama, tutar, kapanış tarihi, olasılık (açık fırsatta), öngörü kategorisi, döviz (gerekirse döviz açılır). |
| User | Sorumlu | E-postası aynı Solk kullanıcısına eşlenir; yeni kullanıcı (koltuk) açılmaz. |
| Lead | Aday firma + kişi | İsteğe bağlı; yalnız dönüşmemiş leadler, kaynak ve durumuyla. |
| Task | Görev | İsteğe bağlı. *Call* → Arama, *Email* → E-posta; öncelik ve durum eşlenir. |
| Event | Takvim etkinliği | İsteğe bağlı. Saat yerel saate çevrilir; Teams / Zoom / Meet bağlantısı varsa online. |
| Note, Notes | Not | İsteğe bağlı; Salesforce Notes (zengin metin) düz metne çevrilir. |
| Attachment, Files | Dosya | İsteğe bağlı; dosya başına en çok 25 MB, çalıştırılabilir dosyalar alınmaz. |
| Case | Destek talebi | İsteğe bağlı (Destek Talepleri modülü açıksa); durum, öncelik, kaynak ve tür eşlenir, SLA bildirimi gönderilmez. |
| Product2 + standart fiyat listesi | Ürün | İsteğe bağlı; fırsatın ilk ürünü bağlanır, ürün satırları fırsat notuna yazılır. |
| Özel alanlar (`__c`) | [Özel alanlar](/concepts/custom-fields) | Seçtikleriniz; ayrıca *Salesforce ID*, çalışan sayısı, hesap türü, lead durumu gibi standart alanlar. |

Taşınmayanlar: e-posta iletileri (Solk'ta [e-posta eşitlemesi](/objects/emails) ile gelir), kampanyalar, Salesforce teklifleri ve sözleşmeleri, özel nesneler, raporlar ve panolar, otomasyonlar, alan geçmişi.

## Yapılandırma {#config}

İncelemeden sonra **Yapılandırma** sekmesi şunları gösterir; her birini değiştirebilirsiniz:

- **Nesneler** — firmalar, kişiler ve fırsatlar hep taşınır; diğerlerini seçin. Kaynakta kaç kayıt olduğu yanında yazar.
- **Kullanıcılar** — Salesforce kayıt sahibi → Solk sorumlusu. Eşleşmeyenler **varsayılan sorumluya** gider.
- **Fırsat aşamaları** — iki seçenek:
  - **Mevcut aşamalara eşle** — her Salesforce aşaması bir Solk aşamasına; kapalı aşamalar Kazanıldı / Kaybedildi.
  - **Salesforce aşamalarını kullan** — aşama hattınız Salesforce'taki gibi olur (ad ve olasılık). Çalışma alanında zaten fırsat varsa onlar sıralarına göre en yakın yeni aşamaya taşınır.
- **Özel alanlar** — hangi Salesforce alanının özel alan olarak açılacağı; ad ve tür değiştirilebilir. Aynı adlı ve uyumlu türde bir özel alanınız varsa yenisi açılmaz, değerler o alana yazılır (satırda *Var olan '…' alanına yazılır*). Formül alanları varsayılan olarak seçili değildir.
- **Seçenekler** — tamamlanmış görev ve geçmiş etkinlikler için süre (tümü / son 12 · 24 · 36 ay), örnek taşıma boyutu (10 · 20 · 50 firma), dosyalar için toplam sınır, **eşleşen kayıtlarda boş alanları Salesforce'tan doldur**.

## Örnek ve tam taşıma {#run}

:::steps
### Örnek taşıma

Son güncellenen 20 firma (seçtiğiniz kadar) ve onlara bağlı kişiler, fırsatlar, görevler, notlar ve dosyalar; birkaç lead. **Sonuçlar** sekmesinden taşınan kayıtları açıp bakın.

### Beğenmediyseniz

**Kontrol paneli → Geri al**, yapılandırmayı düzeltin, yeniden örnek alın.

### Tam taşıma

**Tam taşıma** seçili nesnelerin tamamını taşır; örnekte gelen kayıtlar tekrar gelmez. Pano sayfası ilerlemeyi canlı gösterir, sayfayı kapatabilirsiniz.
:::

Tam taşımayı yeniden çalıştırmak yalnız henüz taşınmamış kayıtları dener — sonradan eklenen bir ZIP parçası (**Kontrol paneli → ZIP parçası ekle**) ya da API'de Salesforce'a yeni girilen kayıtlar için.

## Eşleşme ve tekrar koruması {#matching}

- **Firma:** web sitesinin alan adı, yoksa ad (büyük-küçük harf ve Türkçe karakter farkı gözetilmez).
- **Kişi:** e-posta, yoksa aynı firmada ad.
- **Ürün:** ad.

Eşleşen kayıt **üzerine yazılmaz**; *boş alanları doldur* seçiliyse yalnız boş alanları dolar. Notlar, görevler, etkinlikler ve fırsatlar eşleşen firmaya eklenir. Her Salesforce kaydı bir kez taşınır (Salesforce kimliğiyle izlenir).

Taşınan kayıtlar iş akışlarını, bildirimleri ve uygulama gönderimlerini tetiklemez.

## Sonuçlar, hatalar, geri alma {#results}

- **Sonuçlar** — nesne başına kaynakta, taşınan, eşleşen, atlanan ve hatalı kayıt sayısı; *Kayıtlar* bağlantısı taşınan kayıtları kartlarına bağlantıyla listeler.
- **Hatalar** — taşınamayan her kayıt nedeniyle (ör. *Firmasız kişi*, *Firma adı boş*, *Dosya türü desteklenmiyor*); CSV olarak indirilebilir. API taşımasında satırdan Salesforce'taki kayda gidilir.
- **Geri al** — bu taşımanın açtığı tüm kayıtları ve sonradan bu firmalara eklenenleri siler (dosyalar diskten de). Eşleşen var olan kayıtlar kalır. Açılan özel alan tanımları ve Salesforce'tan alınan aşama hattı kalır (Ayarlar'dan kaldırılabilir).

Sunucu taşıma sırasında yeniden başlarsa iş **Kesintiye uğradı** olur; tam taşımayı yeniden başlatın, kaldığı yerden sürer.

## Excel / CSV {#excel}

Salesforce dışındaki kaynaklar için **CRM'den taşı → Excel / CSV** mevcut içe aktarma sayfasına gider. Ürün listesi **Ayarlar → Ürünler → Excel'den içe aktar** ile gelir.