İçeriğe geç

API anahtarları ve web kancaları

Mail Merge, geliştiriciler ve kod yazmayanlar için bir REST API ve giden web kancaları sunmaktadır. Bir API anahtarı ile betikleriniz web uygulamasının yaptığı her şeyi yapabilir: hesabınızı okuyabilir, şablonları ve kişileri listeleyebilir, kampanyalar gönderebilir ve alıcılarını takip edebilir. Bir web kancası ile Mail Merge, bir kampanya bittiğinde veya bir alıcı açtığında, tıkladığında, yanıt verdiğinde, geri döndüğünde veya abonelikten çıktığında sizin uç noktanızı çağırır. Böylece bir CRM, bir elektronik tablo veya bir Slack kanalı yoklama yapmadan senkronize kalır.

Her ikisi de web uygulamasında Ayarlar → Geliştiriciler altında bulunur ve Profesyonel planın bir parçasıdır (bkz. Fiyatlandırma). Mail Merge ile kod yazmak yerine bir yapay zeka asistanından konuşmayı tercih ederseniz, bunun yerine MCP sunucusunu kullanın: aynı özellikleri araçlar olarak ortaya koymakta ve her planda kullanılabilmektedir.

  1. Ayarlar → Geliştiriciler → API anahtarları açın ve Anahtar oluştur seçeneğini tıklayın.
  2. Kullanılacağı yere göre adlandırın (Zapier, CRM senkronizasyonu), böylece daha sonra doğru olanı iptal edebilirsiniz.
  3. Anahtarı kopyalayın. Yalnızca bir kez gösterilir: Mail Merge yalnızca bunun bir karmasını tutar. Kaybederseniz, iptal edin ve yeni bir tane oluşturun.

Hesap başına en fazla 10 anahtar olabilir. Bir anahtarı iptal etmek, onunla yapılan her isteği hemen başarısız kılar; satır listeden kaybolur.

Anahtarı, kartta gösterilen temel URL’ye karşı her istekte Bearer token olarak gönderin:

Terminal window
curl https://merge.email/api/v1/me \
-H "Authorization: Bearer mm_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

Bir anahtar, onu oluşturan hesap olarak hareket eder, tıpkı oturum açmış bir oturum gibi: aynı Google izni, aynı günlük kota, aynı plan sınırları. Ayrı bir “API kullanıcısı” yoktur.

API, web uygulamasının kullandığı aynı /v1 yüzeyidir, bu nedenle ekranda yapabileceğiniz her şeyin arkasında bir uç nokta vardır. İntegrasyonların en çok ulaştığı olanlar:

ÇağrıNe yapar
GET /v1/meHesap: plan, günlük kota (maksimum, kullanılan, kalan), saat dilimi, şablon meta verileri.
GET /v1/templates · GET /v1/templates/{templateId}Kaydedilmiş şablonlarınız; gövde şablon başına yüklenir.
GET /v1/contacts · POST /v1/contactsKişi defteri (limit / cursor → nextCursor ile sayfalandırılmış).
POST /v1/campaignsGoogle Sheet’ten bir kampanya gönderin, planlayın veya otopilot yapın. Gövde, kampanya oluşturucunun gönderdiği aynı olandır: sayfa, alıcı sütunu, konu ve gövde {{merge tags}} ile ve gönderme seçenekleri.
GET /v1/campaigns · GET /v1/campaigns/{campaignId}/recipientsKampanyalarınız ve her alıcının durumu (gönderilen, okunan, tıklanan, yanıtlanan, geri dönen, abonelikten çıkan).
POST /v1/campaigns/{campaignId}/statusÇalışan bir kampanyayı duraklatın, devam ettirin veya durdurun.
POST /v1/recipients/verifyE-posta doğrulayıcı.

İstek ve yanıt gövdeleri JSON’dur. Tam yazılı yüzey sunucudan OpenAPI belgesi olarak oluşturulur; istemci oluşturucu için şemaya ihtiyacınız varsa bizimle iletişime geçin.

Hatalar, gerçek HTTP durumlarıdır ve bir zarfla gelir:

{ "error": { "code": "professional_plan_required", "message": "API access is a Professional plan feature" } }
DurumcodeAnlamı
401Bilinmeyen veya iptal edilmiş anahtar, ya da hesabın Google erişiminin yeniden bağlanması gerekiyor.
403professional_plan_requiredAnahtarın hesabı artık Profesyonel planda değil. Anahtarlar indirgeme sırasında silinmez; plan geri geldiğinde yeniden çalışırlar.
429rate_limitedBir anahtarda dakikada 600 istekten fazla. Bir dakika bekleyin ve yeniden deneyin.
400 / 404 / 409bad_request, not_found, conflict, …İsteğin kendisi, düzeltilecek şeyi söyleyen bir mesajla.

Hız sınırı, her API sunucu örneğinde anahtar başına sayılır, bu nedenle etkili tavan “dakikada yaklaşık 600”dür: buna çarpmak üzere tasarlamayın.

  1. Ayarlar → Geliştiriciler → Web kancaları açın ve Web kancası ekle seçeneğini tıklayın.
  2. Bir HTTPS URL’si girin (düz http:// reddedilir) ve alması gereken etkinlikleri işaretleyin.
  3. Yeni satırda Test gönder seçeneğini tıklayın: Mail Merge bir ping gönderir ve bildirim, uç noktanızın nasıl yanıt verdiğini söyler.

Her uç nokta kendi imza sırrını (whsec_…) alır, satırda kopyalama düğmesiyle gösterilir. Hesap başına en fazla 5 uç nokta olabilir.

EtkinlikNe zamandata
campaign.completedBir kampanyanın son e-postası işlendi.campaignId, name, status: "completed", sentCount, campaignSize
campaign.paused · campaign.resumed · campaign.stoppedBir kampanyayı durdurdunuz, devam ettirdiniz veya durdurdunuz.campaignId, name, status (paused / active / stopped), sentCount
email.openedBir alıcı bir e-postayı açtı, kampanya başına yalnızca ilk kez.campaignId, recipient, at
email.clickedBir alıcı izlenen bir bağlantıyı tıkladı, her tıklama.campaignId, recipient, at, url
email.repliedGönderilen bir iş parçacığında yanıt algılandı.campaignId, recipient, at
email.bouncedBir geri dönüş algılandı.campaignId, recipient, at
recipient.unsubscribedBir alıcı abonelikten çıkma bağlantısını kullandı, kampanya başına yalnızca ilk kez.campaignId, recipient, at, method

Açılış ve tıklamalar kampanya için izlemenin açık olmasını gerektirir; yanıtlar ve geri dönüşler, gönderilen her kampanyanın ardından gelen yanıt taramasından gelir.

Mail Merge, abone olan her uç nokta için etkinlik başına bir POST gönderir, JSON gövdesiyle:

{
"id": "6f1c2d3e-…",
"event": "email.opened",
"createdAt": "2026-10-15T14:03:21.512Z",
"data": { "campaignId": "…", "recipient": "ada@example.com", "at": "2026-10-15T14:03:21.498Z" }
}

ve üç başlık:

BaşlıkDeğer
X-MailMerge-EventEtkinlik adı, gövdedeki event ile aynı.
X-MailMerge-DeliveryTeslimat kimliği, id ile aynı. Bir kopyayı yok saymak için kullanın.
X-MailMerge-Signaturesha256= ve ardından ham gövdenin onaltılık HMAC-SHA256’sı, uç noktanın sırrıyla anahtarlanmış.

5 saniye içinde herhangi bir 2xx ile yanıt verin. Bir ağ hatası veya 5xx üzerinde Mail Merge bir kez, 2 saniye sonra yeniden dener; 4xx sizin kararınız olarak alınır ve yeniden denenmez. Aynı teslimat kimliği yeniden denemede gönderilir. Arka arkaya 20 başarısız teslimatdan sonra uç nokta devre dışı bırakılır ve satır bunu söyler: uç noktayı düzeltin, ardından silin ve yeniden ekleyin. Herhangi bir başarılı teslimat sayacı sıfırlar.

Etkinlikler en az bir kez teslim edilir ve garantili bir sırada değildir. Açılışlar özellikle patlamalar halinde gelir (izleme pikselini işleyen her posta istemcisi), bu nedenle işleyicinizi X-MailMerge-Delivery üzerinde veya (event, campaignId, recipient) üzerinde etkisiz hale getirin.

Bir yükü güvenmeden önce her zaman doğrulayın. Ham istek gövdesi üzerinde HMAC hesaplayın (JSON ayrıştırmasından önce tam baytlar) ve sabit zamanda karşılaştırın:

// Node.js (Express with `express.raw({ type: "application/json" })`)
import { createHmac, timingSafeEqual } from "node:crypto"
export function verifyMailMergeSignature(rawBody, signatureHeader, secret) {
const expected = "sha256=" + createHmac("sha256", secret).update(rawBody).digest("hex")
const a = Buffer.from(expected)
const b = Buffer.from(signatureHeader ?? "")
return a.length === b.length && timingSafeEqual(a, b)
}
app.post("/mailmerge", (req, res) => {
if (!verifyMailMergeSignature(req.body, req.get("X-MailMerge-Signature"), process.env.MAILMERGE_WEBHOOK_SECRET)) {
return res.status(401).end()
}
const payload = JSON.parse(req.body)
// … handle payload.event / payload.data
res.status(204).end()
})
# Python
import hashlib, hmac
def verify_mailmerge_signature(raw_body: bytes, signature_header: str, secret: str) -> bool:
expected = "sha256=" + hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, signature_header or "")

Kod gerekmez: bir Catch Hook (Zapier Webhooks by Zapier), bir Custom webhook (Make) veya bir Webhook tetikleyici düğümü (n8n) oluşturun, verdiği URL’yi uç nokta olarak yapıştırın, etkinlikleri işaretleyin ve Test gönder seçeneğini tıklayın. böylece araç yükü örnekleyebilir. data alanları, bir satırı bir sayfaya eklediğiniz, bir CRM kişisini güncellediğiniz veya Slack’e gönderdiğiniz sonraki adıma eşlediğiniz değişkenler haline gelir. Bu araçlar imzaları kutudan çıkarmaz doğrulamaz; verdikleri URL tahmin edilemez, bu da güvenmeleri gereken korumadır.

  • Yapay zeka ajanları (MCP), bir asistan Mail Merge’i sizin yerine bir betik yerine yönetmelidir.
  • Kampanyalar, alıcılar uç noktasındaki durumların ne anlama geldiğini öğrenmek için.
  • Fiyatlandırma, Profesyonel planın neleri içerdiğini öğrenmek için.