Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit der E-Mail-API können Sie auf E-Mails zugreifen, die Sie an Ihre Kunden gesendet haben, um sicherzustellen, dass Sie über einen zuverlässigen und überprüfbaren Datensatz verfügen. Verwenden Sie diese API, um auf E-Mails auf der Interaktionszeitachse zuzugreifen und sie für die Datensatzhaltung zu exportieren. Auf E-Mails kann bis zu einem Jahr über die API zugegriffen werden.
Übersicht über die E-Mail-API
API-Endpunkt
POST <Organization URL>/api/data/v9.0/msdynmkt_EmailRetrieveExactMessages
Die <Organisations-URL> sollte durch die tatsächliche URL des API-Endpunkts der Organisation ersetzt werden.
Anforderungsheader
| Kopfzeile | Erforderlich | Wert/Beispiel | Hinweise |
|---|---|---|---|
| Akzeptieren | Ja | application/json | Die API erfordert JSON-Antworten. |
| Content-type | Ja | application/json | Anforderungstext muss JSON sein. |
| Autorisierung | Ja | Bearer eyJ0eXAiOiJKV1Qi... | OAuth 2.0-Bearertoken. |
Anforderungsparameter
| Parameter | Typ | Description |
|---|---|---|
| Profil-ID | GUID | Die ID des Zielgruppenmitglieds. |
| journeyId | GUID | Die ID der Zielreise. |
| journeyRunId | GUID | Die ID der Journeyversion. |
| messageTemplateId | GUID | Die ID der zielbezogenen E-Mail. |
| id | String | Eine beliebige eindeutige Zeichenfolge. Es wird in der Antwort wieder wiedergegeben, um die Anforderung und das Ergebnis zu korrelieren. |
| interaktionenJson | JSON | Zeichenfolgen-JSON-Array, das den Interaktionskontext beschreibt. Jedes Element enthält eine eindeutige ID und ein Eigenschaftenobjekt mit Schlüsseln für die oben beschriebene Reise- und Vorlagenauflösung. |
JSON anfordern
| Parameter | Wert |
|---|---|
| ProfileId | Gezielte ProfileID |
| MessageEntityName | "msdynmkt_email" |
| Aktivitäten | interactionsJson aus der obigen Tabelle |
Beispiel
{
"ProfileId":"0862dc41-0642-f011-877a-6045bd06d212",
"MessageEntityName":"msdynmkt_email",
"Interactions":"[{\"id\":\"0862dc41-0642-f011-877a-6045bd06d212_cb883756-f2ba-f011-bbd2-000d3a3212e8_c9921dd4-1e5c-3c3c-d681-0209a0c4d6bc_4dbaa872-62ba-f011-bbd2-000d3a3212e8\",\"properties\":{\"msdynmkt_journeyid\":\"cb883756-f2ba-f011-bbd2-000d3a3212e8\",\"msdynmkt_journeyrunid\":\"c9921dd4-1e5c-3c3c-d681-0209a0c4d6bc\",\"msdynmkt_messagetemplateid\":\"4dbaa872-62ba-f011-bbd2-000d3a3212e8\"}}]"
}
API-Voraussetzungen
- Aktivieren Sie die API: Die API greift auf E-Mails zu, die auf der Interaktionszeitachse gespeichert sind. Um die API verfügbar zu machen, müssen Sie die Funktion zum Anzeigen von E-Mails in der Zeitleiste aktivieren.
-
Authentifizierung: Sie müssen über eine authentifizierte Verbindung verfügen, um auf die API zuzugreifen. Sie müssen ein Zugriffstoken generieren und als Teil Ihrer API-Anforderung mit
prvReadWorkflowBerechtigungen verwenden. -
Fabric-Integration: Die Anforderungsparameter werden in der
EmailSentTabelle gespeichert. Sie können mithilfe der Fabric-Integration auf diese Tabelle zugreifen, um Einen eigenen benutzerdefinierten Bericht zu erstellen. Basierend auf Ihren Anforderungen können Sie die erforderlichen GUIDs abrufen (z. B. alle E-Mails, die in einem bestimmten Zeitraum gesendet wurden, alle E-Mails, die von einer bestimmten Reise gesendet wurden usw.).
Antwortkörper
Antwortfelder der obersten Ebene
| Feld | Typ | Description |
|---|---|---|
| @odata.context | String | OData-Metadaten-URI für den Antworttyp. |
| ApiResponseData | String |
Stringified JSON mit den exactMessagesMap und interactionToMessageMap. Analysieren Sie dies, um auf E-Mail-Inhalte zuzugreifen. |
| Ergebniscode | Nummer | 200 zeigt erfolg an. Jede Nicht-200-Nummer bedeutet, dass der Vorgang fehlgeschlagen ist. |
| Fehler | Zeichenfolge oder null | Wenn ResultCode != 200, enthält dies die Fehlerbeschreibung, andernfalls NULL. |
Relevante ApiResponseData Felder
| Feld | Typ | Description |
|---|---|---|
exactMessagesMap |
Objektkarte | Ein Wörterbuch, das anhand der Nachrichten-ID zugeordnet ist. Jeder Wert enthält die gerenderten Nachrichteneigenschaften, einschließlich msdynmkt_emailbody. |
exactMessagesMap[<messageId>].msdynmkt_emailbody |
Zeichenfolge (HTML) | Der genaue gerenderte E-Mail-Text, der an das Profil gesendet wurde. |
interactionToMessageMap |
Objektkarte | Ordnet jede ID aus der Anfrage der aufgelösten Nachrichten-ID zu. In vielen Fällen ist dies möglicherweise dieselbe Zeichenfolge, aber verlassen Sie sich nicht darauf; behandeln Sie sie als Abbildung. |
Beispiel
{
"@odata.context":"{orgUrl}/api/data/v9.0/$metadata#Microsoft.Dynamics.CRM.msdynmkt_EmailRetrieveExactMessagesResponse",
"ApiResponseData":"{\"exactMessagesMap\":{\"0862dc41-0642-f011-877a-6045bd06d212_cb883756-f2ba-f011-bbd2-000d3a3212e8_c9921dd4-1e5c-3c3c-d681-0209a0c4d6bc_4dbaa872-62ba-f011-bbd2-000d3a3212e8\":{\"msdynmkt_name\":null,\"msdynmkt_marketingemailid\":null,\"msdynmkt_fromname\":null,\"msdynmkt_fromemail\":null,\"msdynmkt_emailbody\":\"<html>REDACTED</html>\"}},\"interactionToMessageMap\":{\"0862dc41-0642-f011-877a-6045bd06d212_cb883756-f2ba-f011-bbd2-000d3a3212e8_c9921dd4-1e5c-3c3c-d681-0209a0c4d6bc_4dbaa872-62ba-f011-bbd2-000d3a3212e8\":\"0862dc41-0642-f011-877a-6045bd06d212_cb883756-f2ba-f011-bbd2-000d3a3212e8_c9921dd4-1e5c-3c3c-d681-0209a0c4d6bc_4dbaa872-62ba-f011-bbd2-000d3a3212e8\"}}",
"ResultCode":200,
"Error":null
}
Verwendungsbeispiel
# Variables
$tenantId = "n490b1w9-8975-6t45-b844-8fyuo12cc5we" # your Tenant ID
$appId = "fjgg175f-9w2w-4156-e9od-w05f8lk9324" # Application (client) ID
$clientSecret = "<secret>" # Client secret
$resource = "https://yourorg.crm10.dynamics.com" # You dynamics organization url
# Token endpoint
$tokenUrl = "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token"
# Request body
$body = @{
grant_type = "client_credentials"
client_id = $appId
client_secret = $clientSecret
scope = "$resource/.default"
}
# Get token
$response = Invoke-RestMethod -Method Post -Uri $tokenUrl -Body $body
$accessToken = $response.access_token
# API endpoint
$apiUrl = "https://yourorg.crm10.dynamics.com/api/data/v9.0/msdynmkt_EmailRetrieveExactMessages"
# Request params
$profileId = "543ab9o9-5433-23e2-t5t5-ba890d1n5n52"
$journeyId = "a3f7c2d1-58b4-4e21-9c3d-7f8a9b0d1234";
$journeyRunId = "e4b9d7ac-7f21-4c8e-bb3a-9d6f2a4c8e12";
$messageTemplateId = " f2a7c9d3-8b04-4f12-9e67-0034a8b7d5e1";
$interactionsJson = @(
@{
id = "$($profileId)_$($journeyId)_$($journeyRunId)_$($messageTemplateId)"
properties = @{
msdynmkt_sourcesystem = "0"
msdynmkt_journeyid = $journeyId
msdynmkt_journeyrunid = $journeyRunId
msdynmkt_messagetemplateid = $messageTemplateId
}
}
) | ConvertTo-Json -Depth 5 -Compress -AsArray
# Build the request JSON
$requestJson = @{
ProfileId = $profileId
MessageEntityName = "msdynmkt_email"
Interactions = $interactionsJson
} | ConvertTo-Json -Depth 5 -Compress
# Call API
$headers = @{
Authorization = "Bearer $accessToken"
"Content-Type" = "application/json"
Accept = "application/json"
}
Write-Host "Requesting email content for profileId '$profileId', journeyId '$journeyId', journeyRunId '$journeyRunId', messageTemplateId '$messageTemplateId'"
try {
$apiResponse = Invoke-RestMethod -Method Post -Uri $apiUrl -Headers $headers -Body $requestJson
if ($apiResponse.ResultCode -eq 200) {
Write-Host $apiResponse
}
else {
Write-Host "Result Code $apiResponse.ResultCode: $apiResponse.Error"
}
}
catch {
Write-Host "Exception occurred: $($_.Exception.Message)"
if ($_.ErrorDetails.Message) {
Write-Host "Response Body:$($_.ErrorDetails.Message)"
}
}