MailLandDocs
Pazarlama

Otomasyonlar

Abone davranışlarına dayalı otomatik çalışan tetikleyici tabanlı e-posta dizileri kurun

Otomasyonlar, abone olayları tarafından tetiklenen çok adımlı e-posta dizileri oluşturmanızı sağlar. Bir tetikleyici tanımlayın, adım dizisi oluşturun ve MailLand tetikleyici her çalıştığında akışı otomatik olarak yürütür.

Otomasyon Tetikleyicileri

Her otomasyon tek bir tetikleyici ile başlar:

TetikleyiciDeğerAçıklama
SubscriberJoins0Abone bir posta listesine eklenir
SubscriberUpdated1Abone profili güncellenir
CampaignOpened2Abone belirli bir kampanyayı açar
CampaignClicked3Abone bir kampanyadaki bağlantıya tıklar
DateBased4Yalnızca doğum günü tetikleyicisi: Subscriber.Birthday'i değerlendirir (aşağıdaki uyarıya bakın)

DateBased yalnızca Subscriber.Birthday'i değerlendirir, keyfi bir yinelenen tarih alanını değil. Birthday, POST/PUT /v1/marketing/subscribers üzerinden (Aboneler sayfasına bakın) ve isteğe bağlı bir birthday sütununu kabul eden CSV içe aktarma üzerinden ayarlanabilir, bu yüzden bir DateBased otomasyonu doğum günü bu iki yoldan biriyle ayarlanmış her aboneyi kaydeder.

| Manual | 5 | API aracılığıyla manuel olarak tetiklenir |

Otomasyon Durumları

DurumDeğerAçıklama
Draft0Düzenlenebilir, çalışmıyor
Active1Çalışıyor: tetikleyici çalıştığında yeni aboneler kaydedilir
Paused2Duraklatıldı: yeni kayıt yok ve zaten kayıtlı aboneler için sonraki adımlar durur. Yeniden etkinleştirmek (Active) her kaydı tam olarak durduğu yerden devam ettirir ve duraklatma sırasında vadesi gelen her şeyi teslim eder
Archived3Arşivlendi: varsayılan görünümlerden gizlenir. Paused gibi, bu yeni kayıtları durdurur; zaten kayıtlı aboneler için sonraki adımlar da durur. Arşivden çıkarma uç noktası olmadığından, bu durdurma bu kayıtlar için kalıcıdır

Adım Türleri

Her otomasyon sıralı bir adım dizisi içerir:

Adım TürüDeğerAçıklama
SendEmail0Aboneye bir e-posta gönder
Wait1Devam etmeden önce bir süre bekle
Condition2Bir abone alanını değerlendirir; doğruysa devam eden, yanlışsa kaydı sonlandıran bir kapı (aşağıdaki Condition adımına bakın)
AddToList3Aboneyi bir posta listesine ekle
RemoveFromList4Aboneyi bir posta listesinden çıkar
UpdateSubscriber5Abone alanlarını güncelle
Webhook6Harici bir URL'ye webhook gönder

Kişiselleştirme

Otomasyon e-posta adımları, kayıtlı abonenin kendi kaydından alıcı başına değiştirilen {{variable}} birleştirme etiketlerini destekler.

EtiketDeğer
{{firstName}}Abonenin adı
{{lastName}}Abonenin soyadı
{{fullName}}Ad ve soyad birleşimi
{{email}}Abonenin e-posta adresi
{{subscriberId}}Opak abone tanımlayıcısı
{{custom_<field>}}Abonedeki herhangi bir özel alan, {{<field>}} olarak da kullanılabilir
Kişiselleştirilmiş otomasyon adımı
<p>Hi {{firstName}}, here's what's new this month.</p>

Değeri olmayan bir etiket tam olarak yazıldığı gibi bırakılır: adı olmayan bir abone için {{firstName}}, teslim edilen e-postada {{firstName}} olarak kalır. Her iki durumda da doğru okunan içerik yazın. Her abonenin bu alana sahip olduğundan emin değilseniz yedek bir selamlama kullanın.

Değerler, düştükleri kısma göre kaçışlanır: HTML içeriği HTML olarak kaçışlanır, oysa konu satırı ve düz metin gövdesi asla kaçışlanmaz, Ben & Jerry's tam olarak öyle kalır.

Eski snake_case yazımları ({{first_name}}, {{last_name}}, {{full_name}}, {{subscriber_id}}) takma ad olarak çalışmaya devam eder.

Otomasyon Oluşturma

POST https://api.mail.land/v1/marketing/automations
Otomasyon oluşturma isteği
{
  "name": "Welcome Series",
  "description": "3-email welcome sequence for new subscribers",
  "trigger": 0,
  "mailingListId": "7h3n5k8w2q9m1t",
  "campaignId": null,
  "steps": [
    {
      "type": 0,
      "order": 1,
      "templateId": "2p9x4k7m3q8n1z",
      "subject": "Welcome to our newsletter!"
    },
    {
      "type": 1,
      "order": 2,
      "delayMinutes": 1440
    },
    {
      "type": 0,
      "order": 3,
      "templateId": "9k4p2x7m1q3n8z"
    }
  ]
}
AlanTürZorunluAçıklama
namestringEvetOtomasyon adı (çalışma alanı başına benzersiz)
descriptionstringHayırOtomasyon açıklaması
triggerintEvetTetikleyici türü (tetikleyiciler tablosuna bakın)
mailingListIdstringHayırTetikleyici için hedef posta listesi
campaignIdstringHayırCampaignOpened / CampaignClicked tetikleyicileri için isteğe bağlıdır: belirtilmezse tetikleyici yalnızca bir kampanya için değil herhangi bir kampanya için çalışır
stepsarrayEvetSıralı adım dizisi

Bir otomasyonda segmentId alanı yoktur: bu alan burada mevcut değildir (segmentler başka yerlerde, örneğin kampanyalarda kullanılır). SendEmail adımının içeriği templateId'den gelir, satır içi htmlContent/textContent/fromName/fromEmail'den değil.

campaignId, açma/tıklama tetikleyicileri için isteğe bağlıdır, bu sayfanın önceki sürümlerinde belirtildiği gibi zorunlu değildir. Ayrıca MailLand'in bugün filtrelemediği makine açılışlarında da (Apple Mail Privacy Protection ön yükleme, güvenlik bağlantı tarayıcıları) tetiklenir.

Adım Alanları

Her adımın gerçek şekli { order, type, delayMinutes, templateId, subject, settings: {} } şeklindedir: otomasyon düzeyinde bir segmentId yoktur ve adımların bu sayfanın önceki sürümlerinde gösterilen türe özgü alanları yoktur (conditionField, targetMailingListId, updateField, webhookUrl, fromName, fromEmail, replyTo üst düzey adım alanları değildir). Aşağıdaki tablolar gerçek şekli yansıtır.

SendEmail adımı (type: 0):

AlanTürZorunluAçıklama
typeintEvet0
orderintEvetDizi içindeki adım sırası
delayMinutesintHayırBu adım çalışmadan önce beklenecek dakika: ilk adım olduğunda bile: ilk gönderimden önceki gecikme artık kayıt sırasında dikkate alınır (önceden yok sayılırdı)
templateIdstringEvetE-posta içeriğini sağlayan şablon: içerik yalnızca şablondan gelir
subjectstringHayırAyarlanırsa şablonun konusunu geçersiz kılar

Bir adımda satır içi htmlContent/textContent/fromName/fromEmail/replyTo yoktur. Gönderen, çalışma alanı adıyla birlikte gösterilen noreply@<ilk tam doğrulanmış alan adı> olarak sabittir, adım başına yapılandırılamaz.

templateId, her SendEmail adımında zorunludur. templateId içermeyen oluşturma/güncelleme istekleri 400 VALIDATION_FAILED ile reddedilir; tenant'ınızda bir şablona karşılık gelmeyen bir templateId 400 TEMPLATE_NOT_FOUND ile reddedilir: her ikisi de herhangi bir şey yazılmadan önce gerçekleşir. Bir şablon otomasyon kaydedildikten sonra silinirse, bu adıma ulaşan bir sonraki abonenin kaydı, adım sessizce atlanmak yerine Failed olarak işaretlenir ve otomasyonun totalFailed sayacına dahil edilir (Otomasyon Ayrıntılarını Al bölümüne bakın).

Wait adımı (type: 1):

AlanTürZorunluAçıklama
typeintEvet1
orderintEvetAdım sırası
delayMinutesintEvetSonraki adımdan önce beklenecek dakika

Condition adımı (type: 2):

Bir Condition adımı bir kapıdır, bir dallanma değildir: doğrusal bir adım listesinin ikinci bir yolu yoktur. Doğru olarak değerlendirildiğinde kayıt bir sonraki adıma devam eder. Yanlış olarak değerlendirildiğinde kayıt orada biter (Completed) ve o abone için sonraki hiçbir adım çalışmaz.

AlanTürZorunluAçıklama
typeintEvet2
orderintEvetAdım sırası
settings.conditionFieldstringEvetDeğerlendirilecek abone alanı: email, firstName, lastName, phone, company, source veya özel bir alan için custom_<name>
settings.conditionOperatorstringEvetequals, notEquals, contains, notContains, startsWith, endsWith, isEmpty, isNotEmpty (büyük/küçük harf duyarsız)
settings.conditionValuestringisEmpty/isNotEmpty dışında zorunluKarşılaştırılacak değer

Karşılaştırmalar, segmentlerin zaten sunduğu operatörlerle aynı, büyük/küçük harf duyarsız dize karşılaştırmalarıdır. Oluşturma/güncelleme sırasında conditionField bilinmiyorsa, conditionOperator yukarıdaki değerlerden biri değilse veya değere ihtiyaç duyan bir operatör için conditionValue eksikse 400 VALIDATION_FAILED döndürülür.

Bu doğrulama var olmadan önce kaydedilmiş bir Condition adımı (bu yüzden ayarları değerlendirilemez) sürekliliği korumak için değişmeden geçmeye devam eder, yalnızca yeni oluşturma/güncelleme istekleri doğrulanır.

AddToList / RemoveFromList adımları (type: 3, 4):

AlanTürZorunluAçıklama
typeintEvet3 veya 4
orderintEvetAdım sırası
settings.mailingListIdstringEvetsettings'ten okunan, aboneyi eklenecek/çıkarılacak posta listesi

UpdateSubscriber adımı (type: 5):

AlanTürZorunluAçıklama
typeintEvet5
orderintEvetAdım sırası
settingsobjectEvetsettings içindeki her anahtar, abone üzerinde özel bir alan olarak yazılır

Webhook adımı (type: 6):

AlanTürZorunluAçıklama
typeintEvet6
orderintEvetAdım sırası
settings.urlstringEvetsettings'ten okunan, POST isteğinin gönderileceği URL

Webhook adımı istekleri, adımın alıcısına ait bir anahtarla imzalanır (X-MLND-Signature, müşteri webhook'ları gibi doğrulanır): her farklı adım URL'sinin kendi anahtarı vardır, bu yüzden hiçbir alıcı başka bir alıcı adına imza atamaz. Anahtarları GET /v1/marketing/automations/{id}/webhook-signing-secrets ile okuyun, POST /v1/marketing/automations/{id}/webhook-signing-secrets/regenerate ile yenileyin, bkz. Sürümleme. Yalnızca bir alıcıyı yenilemek için { "webhookUrl": "…" } gönderin.

Create an automation
curl -X POST https://api.mail.land/v1/marketing/automations \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Welcome Series",
    "trigger": 0,
    "mailingListId": "7h3n5k8w2q9m1t",
    "steps": [
      {
        "type": 0, "order": 1,
        "subject": "Welcome!",
        "templateId": "2p9x4k7m3q8n1z"
      },
      { "type": 1, "order": 2, "delayMinutes": 1440 },
      {
        "type": 0, "order": 3,
        "subject": "Getting started",
        "templateId": "9k4p2x7m1q3n8z"
      }
    ]
  }'

Yanıt

Otomasyon yanıtı
{
  "id": "4f8k2m9p1q6z3s",
  "name": "Welcome Series",
  "description": "3-email welcome sequence for new subscribers",
  "trigger": "subscriberJoins",
  "triggerName": "SubscriberJoins",
  "status": "draft",
  "statusName": "Draft",
  "mailingListId": "7h3n5k8w2q9m1t",
  "mailingListName": "Product Updates",
  "campaignId": null,
  "campaignName": null,
  "stepsCount": 3,
  "totalEnrolled": 0,
  "totalCompleted": 0,
  "activatedAt": null,
  "createdAt": "2026-02-17T12:00:00Z",
  "updatedAt": "2026-02-17T12:00:00Z"
}

Bir otomasyonda segmentId/segmentName alanı yoktur ve kayıt sayaçları totalEnrolled/totalCompleted'dir (totalEnrollments/activeEnrollments/completedEnrollments değil). Detay yanıtı ayrıca steps (tam adım listesi), completionRate ve totalFailed ekler: tenant'ta şablonu olmayan (eksik veya sonradan silinmiş) bir SendEmail adımına ulaşan kayıtlar.

Otomasyonları Listeleme

GET https://api.mail.land/v1/marketing/automations
ParametreTürVarsayılanAçıklama
cursorstring-Önceki sayfanın nextCursor değerinden alınan opak imleç. İlk sayfa için belirtmeyin.
limitint20Sayfa başına öğe sayısı
searchstring-Ada göre arama
statusint-Otomasyon durumuna göre filtreleme
triggerint-Tetikleyici türüne göre filtreleme
mailingListIdstring-Posta listesine göre filtreleme
sortBystring-Sıralama alanı
sortDescboolfalseAzalan sıralama
List automations
curl https://api.mail.land/v1/marketing/automations \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Otomasyon Detaylarını Görüntüleme

GET https://api.mail.land/v1/marketing/automations/{id}

Tüm adımlar dahil tam otomasyonu döndürür:

Get automation details
curl https://api.mail.land/v1/marketing/automations/4f8k2m9p1q6z3s \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
Otomasyon detay yanıtı
{
  "id": "4f8k2m9p1q6z3s",
  "name": "Welcome Series",
  "description": "3-email welcome sequence for new subscribers",
  "trigger": "subscriberJoins",
  "triggerName": "SubscriberJoins",
  "status": "active",
  "statusName": "Active",
  "mailingListId": "7h3n5k8w2q9m1t",
  "mailingListName": "Product Updates",
  "campaignId": null,
  "campaignName": null,
  "stepsCount": 3,
  "totalEnrolled": 230,
  "totalCompleted": 200,
  "totalFailed": 4,
  "activatedAt": "2026-01-10T08:05:00Z",
  "steps": [
    {
      "order": 1,
      "type": "sendEmail",
      "typeName": "SendEmail",
      "delayMinutes": null,
      "templateId": "2p9x4k7m3q8n1z",
      "subject": "Welcome to our newsletter!",
      "settings": null
    },
    {
      "order": 2,
      "type": "wait",
      "typeName": "Wait",
      "delayMinutes": 1440,
      "templateId": null,
      "subject": null,
      "settings": null
    },
    {
      "order": 3,
      "type": "sendEmail",
      "typeName": "SendEmail",
      "delayMinutes": null,
      "templateId": "9k4p2x7m1q3n8z",
      "subject": "Getting started with MailLand",
      "settings": null
    }
  ],
  "completionRate": 86.96,
  "createdAt": "2026-01-10T08:00:00Z",
  "updatedAt": "2026-02-17T12:00:00Z"
}

Otomasyon Güncelleme

PUT https://api.mail.land/v1/marketing/automations/{id}

Active dışındaki her durum güncellenebilir (yalnızca Draft/Paused değil). İstek gövdesi oluşturma isteği ile aynıdır.

Update an automation
curl -X PUT https://api.mail.land/v1/marketing/automations/4f8k2m9p1q6z3s \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Welcome Series",
    "trigger": 0,
    "mailingListId": "7h3n5k8w2q9m1t",
    "steps": [
      {
        "type": 0, "order": 1,
        "subject": "Welcome!",
        "templateId": "2p9x4k7m3q8n1z"
      },
      { "type": 1, "order": 2, "delayMinutes": 1440 },
      {
        "type": 0, "order": 3,
        "subject": "Getting started",
        "templateId": "9k4p2x7m1q3n8z"
      }
    ]
  }'

Otomasyon Etkinleştirme

POST https://api.mail.land/v1/marketing/automations/{id}/activate

Otomasyonu Draft veya Paused durumundan Active durumuna geçirir. Etkinleştirildikten sonra, otomasyon tetikleyici çalıştığında aboneleri kaydetmeye başlar.

Etkinleştirmenin kendisi alan adı doğrulamasına karşı kontrol edilmez. Tamamen doğrulanmış hiçbir alan adı olmadan ulaşılan bir SendEmail adımı atlanmaz, bekletilir: artan bir aralıkla (15 dakika, ardından en fazla 6 saatte bir) yeniden kontrol edilir ve bir alan adı doğrulanır doğrulanmaz gönderilir. Adımın ilk vadesi geldiği andan itibaren 7 gün içinde hiçbir alan adı doğrulanmazsa, kayıt sonsuza kadar bekletilmek yerine Failed olarak işaretlenir (totalFailed'e sayılır): yani doğrulanmış hiçbir alan adı olmadan etkinleştirme başarılı olur, ancak bir alan adını doğrulayana kadar hiçbir şey teslim edilmez ve bir haftadan sonra hâlâ bekleyen kayıtlar sonsuza kadar bekletilmek yerine sona erer.

Activate an automation
curl -X POST https://api.mail.land/v1/marketing/automations/4f8k2m9p1q6z3s/activate \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Otomasyon Duraklatma

POST https://api.mail.land/v1/marketing/automations/{id}/pause

Otomasyonu duraklatır. Yeni aboneler kaydedilmez ve dizide halihazırda bulunan aboneler ilerlemeyi durdurur, her kayıt mevcut adımında bekler. Otomasyonu yeniden etkinleştirmek, duraklatılan her kaydı kaldığı yerden devam ettirir ve duraklama sırasında vadesi gelen her şeyi teslim eder.

Pause an automation
curl -X POST https://api.mail.land/v1/marketing/automations/4f8k2m9p1q6z3s/pause \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Otomasyon Arşivleme

POST https://api.mail.land/v1/marketing/automations/{id}/archive

Otomasyonu arşivler; bu işlem Active dahil herhangi bir durumdan yapılabilir. Arşivlenen otomasyonlar varsayılan liste görünümlerinden gizlenir.

Arşivleme, hem yeni kayıtları hem de zaten kayıtlı aboneler için sonraki adımları durdurur: her kayıt, tıpkı duraklatmada olduğu gibi mevcut adımında bekler. Duraklatmadan farklı olarak, Archived bir otomasyonu yeniden etkinleştiren bir uç nokta yoktur, bu yüzden bu durdurma kendiliğinden çözülmez.

Archive an automation
curl -X POST https://api.mail.land/v1/marketing/automations/4f8k2m9p1q6z3s/archive \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Otomasyon Çoğaltma

POST https://api.mail.land/v1/marketing/automations/{id}/duplicate?name=Copy%20of%20Welcome%20Series

Klonlanmış adımlar ve ayarlarla yeni bir Draft otomasyon oluşturur. name sorgu parametresi isteğe bağlıdır.

Duplicate an automation
curl -X POST "https://api.mail.land/v1/marketing/automations/4f8k2m9p1q6z3s/duplicate?name=Copy%20of%20Welcome%20Series" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Manuel Tetikleme

POST https://api.mail.land/v1/marketing/automations/{id}/trigger
Manuel tetikleme isteği
{
  "subscriberIds": ["3m8k1p9x4q7n2z", "6q2n9k4x1p8m3z", "1x7m3q8k2n9p4z"]
}

Belirli aboneleri otomasyona manuel olarak kaydeder. Otomasyon Active durumunda olmalı ve tetikleyici türü Manual (5) olmalıdır.

Trigger automation manually
curl -X POST https://api.mail.land/v1/marketing/automations/4f8k2m9p1q6z3s/trigger \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
  -H "Content-Type: application/json" \
  -d '{"subscriberIds": ["3m8k1p9x4q7n2z", "6q2n9k4x1p8m3z", "1x7m3q8k2n9p4z"]}'

Kayıt Takibi

Her abonenin otomasyon boyunca ilerlemesi bir kayıt olarak takip edilir:

DurumDeğerAçıklama
Active0Şu anda adımlar arasında ilerliyor
Paused1Kayıt duraklatıldı
Completed2Tüm adımları tamamladı
Failed3Bir SendEmail adımının bu tenant'ta şablonu yok: baştan eksik ya da sonradan silinmiş. Otomasyonun totalFailed sayacına dahildir
Unsubscribed4Abone dizi sırasında aboneliğini iptal etti

Cancelled kayıt durumu yoktur. Otomasyon detay yanıtı toplam kayıt sayılarını totalEnrolled ve totalCompleted olarak içerir (totalEnrollments/activeEnrollments/completedEnrollments/failedEnrollments değil).

Otomasyon Silme

DELETE https://api.mail.land/v1/marketing/automations/{id}

Otomasyonu, adımlarını ve kayıt verilerini kalıcı olarak siler.

Güncelleme ve silme, Active dışındaki her durum için izin verilir: bu sayfanın önceki sürümlerinde belirtildiği gibi yalnızca Draft/Paused (güncelleme) veya Draft/Archived (silme) değil.

Delete an automation
curl -X DELETE https://api.mail.land/v1/marketing/automations/4f8k2m9p1q6z3s \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Hata Yanıtları

DurumKodAçıklama
400VALIDATION_FAILEDZorunlu alanlar eksik veya geçersiz adım yapılandırması: templateId içermeyen bir SendEmail adımı veya değerlendirilemeyen settings içeren bir Condition adımı dahil
400TEMPLATE_NOT_FOUNDBir SendEmail adımının templateId'si tenant'ınızda bir şablona karşılık gelmiyor
400INVALID_REQUESTOtomasyon adı zaten mevcut veya geçersiz durum geçişi
403FORBIDDENYetersiz yetkiler
404RESOURCE_NOT_FOUNDOtomasyon bulunamadı veya durum geçişi geçersiz (yanlış durumda güncelleme/etkinleştirme/duraklatma, Active bir otomasyonun silinmesi)

Otomasyon uç noktaları hiçbir zaman 422 döndürmez.

Sonraki Adımlar

  • Kampanyalar: tek seferlik kampanyalar gönderin
  • Aboneler: otomasyonların hedeflediği kişileri yönetin
  • Listeler: tetikleyiciler için aboneleri listelere düzenleyin

Bu sayfada