Per nome

Se lo si desidera, è possibile passare una cartella per eseguire ricerche solo in tale cartella.

GET /rest/asset/v1/email/byName.json?name=My Email&folder={"id":1056,"type"="Folder"}
{
   "success":true,
   "warnings":[
   ],
   "errors":[
   ],
   "requestId":"3a7f#14c484de875",
   "result":[
      {
         "id":1032,
         "name":"My Email",
         "description":"eCjxjIHmYPLtecoSphkvIXlrygOBDLhgyQKnsKMpiKWgSCKhkPMUFvFPUvEylmFiLjQGnffXGaiNLxAwiFOmIDvxEINoaSYascJw",
         "createdAt":"2015-03-23T20:23:25Z+0000",
         "updatedAt":"2015-03-23T20:23:25Z+0000",
         "subject":{
            "type":"Text",
            "value":"ezyKBmDcyCcUIrXASrLSvRuWQgWpRZxQstJoStgMSLEBASGKMpAnVeWrgJsaVFoFJUEXhEIPpDAWpzajzingUruFpiMcRRwtoBzU"
         },
         "fromName":{
            "type":"Text",
            "value":"dAiqRNJOdY"
         },
         "fromEmail":{
            "type":"Text",
            "value":"ilZxG@testmail.com"
         },
         "replyEmail":{
            "type":"Text",
            "value":"VYsCS@testmail.com"
         },
         "folder":{
            "type":"folder",
            "value":1056
         },
         "operational":false,
         "textOnly":false,
         "publishToMSI":false,
         "webView":false,
         "status":"draft",
         "template":32,
         "workspace":"Default",
         "isOpenTrackingDisabled": false,
        "version": 2,
         "autoCopyToText": true,
         "ccFields": [
            {
              "attributeId": "157",
              "objectName": "lead",
              "displayName": "Lead Owner Email Address",
              "apiName": null
            }
          ],
         "preHeader": "My awesome preheader!"
      }
   ]
}

Sfogliare

La navigazione nelle cartelle funziona come gli altri endpoint di navigazione dell'API Asset e consente un filtro facoltativo su status, folder, earliestUpdatedAt/latestUpdatedAt, maxReturn e offset. status è Approvato o Bozza. folder è un oggetto JSON contenente id e type. maxReturn è un numero intero che limita il numero di risultati (il valore predefinito è 20, il valore massimo è 200) e offset è un numero intero che può essere utilizzato con maxReturn per la lettura di set di risultati di grandi dimensioni (il valore predefinito è 0).

GET /rest/asset/v1/emails.json?maxReturn=3&folder={"id":341,"type":"Folder"}
{
    "success": true,
    "warnings": [],
    "errors": [],
    "requestId": "17576#14e22eb29cb",
    "result": [
        {
            "id": 2137,
            "name": "Social Sharing in Email",
            "description": "",
            "createdAt": "2011-03-04T17:12:42Z+0000",
            "updatedAt": "2011-03-04T19:04:36Z+0000",
            "url": null,
            "subject": {
                "type": "Text",
                "value": "Republish this content to your favorite social site!"
            },
            "fromName": {
                "type": "Text",
                "value": "Demo Master Marketo"
            },
            "fromEmail": {
                "type": "Text",
                "value": "demomaster@marketo.com"
            },
            "replyEmail": {
                "type": "Text",
                "value": "demomaster@marketo.com"
            },
            "folder": {
                "type": "Folder",
                "value": 341,
                "folderName": "Social Media"
            },
            "operational": false,
            "textOnly": false,
            "publishToMSI": false,
            "webView": true,
            "status": "approved",
            "template": null,
            "workspace": "Default",
            "isOpenTrackingDisabled": false,
            "version": 2,
            "autoCopyToText": true,
            "ccFields": [
               {
                 "attributeId": "157",
                 "objectName": "lead",
                 "displayName": "Lead Owner Email Address",
                 "apiName": null
               }
             ],
            "preHeader": "My awesome preheader!"
        }
    ]
}

Contenuto della query

È possibile recuperare le sezioni modificabili disponibili per un'e-mail eseguendo una query sul contenuto e, facoltativamente, filtrare in base allo stato per ottenere le sezioni per le versioni Approvate o Bozza.

GET /rest/asset/v1/email/1356/content.json
{
   "success":true,
   "warnings":[ ],
   "errors":[ ],
   "requestId":"8a44#14c484de8c8",
   "result":[
      {
         "htmlId":"edit_text_3",
         "value":[
            {
               "type":"HTML",
               "value":"Content from testCreateEmailTemplate2"
            },
            {
               "type":"Text",
               "value":"Content from testCreateEmailTemplate2"
            }
         ],
         "contentType":"Text"
      }
   ]
}

Le sezioni possono restituire un tipo di dynamicContent. Per ulteriori informazioni, consulta la sezione Contenuto dinamico.

Interroga campi CC

È possibile recuperare il set di campi abilitati per E-mail CC nell'istanza di destinazione chiamando l'endpoint Get Email CC Fields.

GET /rest/asset/v1/email/ccFields.json
{
   "success":true,
   "errors":[ ],
   "requestId":"e54b#16796fdbd4e",
   "warnings":[ ],
   "result":[
      {
         "attributeId":"157",
         "objectName":"lead",
         "displayName":"Lead Owner Email Address",
         "apiName":"leadOwnerEmailAddress"
      },
      {
         "attributeId":"396",
         "objectName":"company",
         "displayName":"Account Owner Email Address",
         "apiName":"accountOwnderEmailAddress"
      }
   ]
}

Crea e aggiorna

Le e-mail vengono create in base a un modello di origine e dispongono di un elenco di sezioni modificabili derivate da ogni singolo elemento HTML nel modello con una classe "mktEditable" e una proprietà ID univoca. La creazione di un messaggio e-mail con l’API crea un record basato sul modello ed eventuali metadati aggiuntivi passati. Per una chiamata di creazione e-mail riuscita sono necessari i seguenti parametri: nome, modello, cartella.

I seguenti parametri sono facoltativi per la creazione: subject, fromName, fromEmail, replyEmail, operational, isOpenTrackingDisabled. Se non viene impostato, subject sarà vuoto, fromName, fromEmail e replyEmail saranno impostati sui valori predefiniti dell'istanza e operational e isOpenTrackingDisabled saranno falsi. isOpenTrackingDisabled determina se il pixel di tracciamento aperto è incluso in un'e-mail quando viene inviato.

POST /rest/asset/v1/emails.json
Content-Type: application/x-www-form-urlencoded
name=My New Email 02 - deverly&folder={"id":1017,"type":"Program"}&template=24&description=This is a test email&subject=Hey There&fromName=SomeBody&fromEmail=somebody@marketo.com&replyEmail=somebody@marketo.com
{
    "success": true,
    "warnings": [],
    "errors": [],
    "requestId": "f557#14e22db88d9",
    "result": [
        {
            "id": 2212,
            "name": "My New Email 02 - deverly",
            "description": "This is a test email",
            "createdAt": "2015-06-23T23:58:09Z+0000",
            "updatedAt": "2015-06-23T23:58:09Z+0000",
            "url": "https://app-abm.marketo.com/#EM2212A1LA1",
            "subject": {
                "type": "Text",
                "value": "Hey There"
            },
            "fromName": {
                "type": "Text",
                "value": "SomeBody"
            },
            "fromEmail": {
                "type": "Text",
                "value": "somebody@marketo.com"
            },
            "replyEmail": {
                "type": "Text",
                "value": "somebody@marketo.com"
            },
            "folder": {
                "type": "Program",
                "value": 1017,
                "folderName": "Landing Page - promotion"
            },
            "operational": false,
            "textOnly": false,
            "publishToMSI": false,
            "webView": false,
            "status": "draft",
            "template": 24,
            "workspace": "Default",
            "isOpenTrackingDisabled": false,
            "version": 2,
            "autoCopyToText": false,
            "ccFields": null,
            "preHeader": null
        }
    ]
}

L'aggiornamento di un record e-mail può essere eseguito per ID. Questo consente di aggiornare la descrizione o il nome dell’e-mail.

POST /rest/asset/v1/email/{id}.json
Content-Type: application/x-www-form-urlencoded
description=This is an Email&name=Updated Email
{
    "success": true,
    "warnings": [],
    "errors": [],
    "requestId": "f557#14e22db88d9",
    "result": [
        {
            "id": 2212,
            "name": "Updated Email",
            "description": "This is an Email",
            "createdAt": "2015-06-23T23:58:09Z+0000",
            "updatedAt": "2015-06-23T23:58:09Z+0000",
            "url": "https://app-abm.marketo.com/#EM2212A1LA1",
            "subject": {
                "type": "Text",
                "value": "Hey There"
            },
            "fromName": {
                "type": "Text",
                "value": "SomeBody"
            },
            "fromEmail": {
                "type": "Text",
                "value": "somebody@marketo.com"
            },
            "replyEmail": {
                "type": "Text",
                "value": "somebody@marketo.com"
            },
            "folder": {
                "type": "Program",
                "value": 1017,
                "folderName": "Landing Page - promotion"
            },
            "operational": false,
            "textOnly": false,
            "publishToMSI": false,
            "webView": false,
            "status": "draft",
            "template": 24,
            "workspace": "Default",
            "isOpenTrackingDisabled": false,
            "version": 2,
            "autoCopyToText": false,
            "ccFields": null,
            "preHeader": null
        }
    ]
}

Sezione contenuto, tipo e aggiornamento

Il contenuto di ogni sezione di un'e-mail deve essere aggiornato singolarmente, a parte l'oggetto, fromName, fromEmail e replyEmail, che vengono aggiornati utilizzando l'endpoint Aggiorna contenuto e-mail. Quando si utilizza questo endpoint, è possibile impostare questi valori anche per l’utilizzo di contenuto dinamico anziché di contenuto statico. Ogni parametro è un oggetto JSON di tipo/valore, dove tipo è "Text" o "DynamicContent" e valore è il valore di testo appropriato o l’ID della segmentazione da utilizzare per il contenuto dinamico. I dati vengono passati come POST x-www-form-urlencoded, non come JSON.  isOpenTrackingDisabled può essere impostato con Update Email Content

POST /rest/asset/v1/email/{id}/content.json
Content-Type: application/x-www-form-urlencoded
subject={"type":"Text","value":"Gettysburg Address"}&fromEmail={"type":"Text","value":"abe@testmail.com"}&fromName={"type":"Text","value":"Abe Lincoln"}&replyTO={"type":"Text","value":"replies@testmail.com"}
{
   "success":true,
   "warnings":[ ],
   "errors":[ ],
   "requestId":"c865#14a1832afac",
   "result":[
      {
         "id":1356
      }
   ]
}

Se imposti una sezione per l’utilizzo di contenuto dinamico, l’ID sezione deve essere recuperato tramite la chiamata Get Email Content.

Aggiorna sezione modificabile

Le sezioni modificabili vengono aggiornate dai singoli htmlId. Come parametri del percorso sono richiesti solo l’ID dell’e-mail e dell’htmlId della sezione, mentre tipo, valore e textValue sono facoltativi. Il tipo può essere "Text", "DynamicContent" o "Snippet" e influisce su ciò che viene passato nel valore. Se il tipo è Testo, il valore è una stringa contenente il contenuto HTML della sezione. Se si tratta di DynamicContent, si tratta di un blocco JSON, con tre membri, tipo, che sarà "DynamicContent", segmentazione che è l’id della segmentazione da utilizzare per il contenuto, e predefinito, che è una stringa contenente il contenuto HTML predefinito della sezione. Il parametro facoltativo textValue è una stringa contenente la versione testuale della sezione. I dati vengono passati come POST x-www-form-urlencoded, non come JSON.

POST /rest/asset/v1/email/{id}/content/{htmlId}.json
Content-Type: application/x-www-form-urlencoded
type=Text&value=<h1>Hello World!</h1>&textValue=Hello World!
{
    "success": true,
    "warnings": [ ],
    "errors": [ ],
    "requestId": "155ac#14d58dfa9ad",
    "result": [
        {
            "id": 2179
        }
    ]
}

Nota: se l'opzione Copia automatica nel testo è disabilitata per uno snippet incorporato in un messaggio e-mail, il valore HTML dello snippet viene aggiornato e quindi viene aggiornata la versione testuale di un'altra sezione dell'e-mail, la versione testuale dell'e-mail includerà il testo che riflette il valore aggiornato dello snippet HTML, non la versione precedente come previsto con l'opzione Copia automatica disabilitata.