Webservices

Mailings ermitteln, anlegen und ändern

Die Liste der Mailings ermitteln

curl http://hostname/webservice/mailings \
  -u webservice:apikey

Als Ergebnis wird ein XML-Dokument geliefert, das alle Mailings im Element mailings enthält. Jedes Mailing ist in einem mailing-Element enthalten:

<?xml version="1.0" encoding="UTF-8"?>
<mailings type="array">
  <mailing>
    <body>{{"http://www.example.com/products" | tracked_link }}</body>
    <closed_at type="datetime" nil="true"></closed_at>
    <closed_by nil="true"></closed_by>
    <email_from nil="true"></email_from>
    <email_reply_to nil="true"></email_reply_to>
    <email_subject nil="true"></email_subject>
    <event_id type="integer" nil="true"></event_id>
    <expected_release_at type="datetime">2009-08-12T10:19:06+02:00</expected_release_at>
    <html_body nil="true"></html_body>
    <id type="integer">1</id>
    <released_at type="datetime" nil="true"></released_at>
    <released_by nil="true"></released_by>
    <title>Example AG News</title>
  </mailing>
  ...
</mailings>

Ein einzelnes Mailing auslesen

Ein einzelnes Mailing können Sie durch Angabe seiner ID auslesen:

curl http://hostname/webservice/mailings/id \
  -u webservice:apikey

Das Ergebnis ist das einzelne Mailing mit seinen Feldern im Element mailing.

Ein Mailing anlegen

curl http://hostname/webservice/mailings \
  -u webservice:apikey \
  -X POST
  --form-string 'mailing[title]=mailing-title' \
  --form-string 'mailing[body]=mailing-plain-body' \
  --form-string 'mailing[html_body]=<h1>mailing-html-body</h1>' \
  --form-string 'mailing[email_from]=mailing-from@example.org' \
  --form-string 'mailing[email_reply_to]=reply-to@example.org' \
  --form-string 'mailing[email_subject]=mailing-subject'

Das Ergebnis ist das neue Mailing mit seinen Feldern im Element mailing.

Ein Mailing ändern

curl http://hostname/webservice/mailings/id \
  -u webservice:apikey \
  -X PUT \
  --form-string 'mailing[email_subject]=mailing-subject'

Das Ergebnis ist das geänderte Mailing mit seinen Feldern im Element mailing.

Personen einer Sammelliste zur Empfängerliste hinzufügen

Mit dem folgenden Webservice-Aufruf können die in einer Sammelliste enthaltenen Personen zu der Empfängerliste eines Mailings hinzugefügt werden. In der Empfängerliste bereits vorhandene Personen werden nicht noch einmal hinzugefügt.

curl http://hostname/webservice/mailings/id/add_recipients_from_collection \
  -u webservice:apikey \
  -X POST
  --form-string 'collection_name=subscription1'

Als Ergebnis gibt das OMC eine Meldung zurück, aus der hervorgeht, wieviele Personen tatsächlich zur Empfängerliste hinzugefügt wurden:

<hash>
  <message>1 recipients added.</message>
</hash>

Mailings freigeben und schließen

Ein Mailing freigeben

Die Freigabe eines Mailings bewirkt, dass die E-Mails vorbereitet werden. Daher kann anschließend der Inhalt der Mail nicht mehr geändert werden.

curl http://hostname/webservice/mailings/id/release \
  -u webservice:apikey \
  -X PUT

Als Ergebnis wird das Mailing zurückgegeben:

<mailing>
  ...
  <released_at type="datetime">2009-08-11T18:43:57+02:00</released_at>
  <released_by>webservice</released_by>
  ...
</mailing>

Den E-Mail-Versand anstoßen

Mit dem folgenden Webservice-Aufruf kann nach der Freigabe eines Mailings der Versand der E-Mails angestoßen werden:

curl http://hostname/webservice/mailings/id/schedule_all_prepared_emails \
  -u webservice:apikey \
  -X POST

Als Ergebnis gibt das OMC eine entsprechende Meldung zurück:

<hash> <message>E-mails will be sent.</message> </hash>

Ein Mailing schließen

Ein Mailing kann geschlossen werden, um zu verhindern, dass Empfänger hinzufügt oder die Empfänger versandfertiger Mails entfernt werden.

curl http://hostname/webservice/mailings/id/close \
  -u webservice:apikey \
  -X PUT

Als Ergebnis wird das Mailing zurückgegeben:

<mailing>
  ...
  <closed_at type="datetime">2009-08-11T18:43:45+02:00</closed_at>
  <closed_by>webservice</closed_by>
  ...
</mailing>

Ein Mailing erneut öffnen

Nachdem ein Mailing geschlossen wurde, kann es wieder geöffnet werden, um weitere Empfänger hinzuzufügen oder Empfänger zu entfernen, sofern der Mailversand noch nicht stattgefunden hat.

curl http://hostname/webservice/mailings/id/reopen \
  -u webservice:apikey \
  -X PUT

Als Ergebnis wird das Mailing zurückgegeben:

<mailing>
  ...
  <closed_at type="datetime" nil="true"></closed_at>
  <closed_by nil="true"></closed_by>
  ...
</mailing>

Empfänger-Aktionen erfassen

Verwendung eines kodierten Links erfassen

Mit kodierten Links in Ihren verschickten E-Mails können Sie die Empfänger auf bestimmte Seiten Ihrer Website führen und dies im OMC individuell erfassen.

curl http://hostname/webservice/mailings/decode \
  -u webservice:apikey \
  -X POST \
  --form-string decode[code]="decode_code"

Als Ergebnis werden die zum angeklickten Link gehörenden Daten geliefert, vor allem die Personen-ID. Die Person kann durch die Verwendung des Links automatisch angemeldet werden, so dass sie auf die betreffende Seite ohne weitere Aktionen ihrerseits zugreifen kann.

<?xml version="1.0" encoding="UTF-8"?>
<decode>
  <link_no type="integer">2</link_no>
  <contact_id type="integer">1</contact_id>
  <code>decode_code</code>
  <mailing_id type="integer">8</mailing_id>
</decode>

Abbestellung mit einem kodierten Link

Mit dem OMC lassen sich in die E-Mails Abmelde-URLs einfügen, auf die Ihre Webanwendung entsprechend reagieren kann.

curl http://hostname/webservice/mailings/unsubscribe \
  -u webservice:apikey \
  -X POST \
  --form-string unsubscribe[code]="unsubscribe_code"

Als Ergebnis werden die für die Abbestellung relevanten Daten geliefert:

<?xml version="1.0" encoding="UTF-8"?>
<unsubscribe>
  <link_no nil="true"></link_no>
  <collection_id type="integer">0</collection_id>
  <contact_id type="integer">1</contact_id>
  <code>unsubscribe_code</code>
  <mailing_id type="integer">8</mailing_id>
</unsubscribe>

Rückläufer erfassen

Jede im Rahmen eines Mailings verschickte E-Mail enthält eine Header-Zeile (X-Infopark-Omc-Bounce-Code), in der mit Hilfe eines eindeutigen Identifikators, bounce_code, die betreffende Person und das Mailing festgehalten sind. Auf diese Weise lassen sich beispielsweise mit Hilfe eines (nicht mitgelieferten) Skripts die Rückläufer im OMC erfassen. Hierfür ist der folgende Webservice-Aufruf verfügbar.

curl http://hostname/webservice/mailings/bounce \
  -u webservice:apikey \
  -X POST \
  --form-string bounce[code]="bounce_code" \
  --form-string bounce[info]="Bounce reason determined by script"

Als Ergebnis werden die für den Rückläufer relevanten Daten geliefert:

<?xml version="1.0" encoding="UTF-8"?>
<bounce>
  <contact_id type="integer">1</contact_id>
  <code>bounce_code</code>
  <info>Bounce reason determined by script</info>
  <mailing_id type="integer">8</mailing_id>
</bounce>