Skip to content

Search the Omeda Knowledge Base

Email Deployment Approval Lookup

Summary

The Deployment Approval Lookup API provides the ability to retrieve the approval queue information such as tests, users and comments .

Base Resource URI

Production: https://ows.omeda.com/webservices/rest/brand/{brandAbbreviation}/omail/deployment/approvals/{trackId}/*

Testing: https://ows.omedastaging.com/webservices/rest/brand/{brandAbbreviation}/omail/deployment/approvals/{trackId}/*
brandAbbreviation
is the abbreviation for the brand
trackId
is the unique identifier for the deployment being requested.

Technical Requirements

The HTTP header must contain the following elements:

x-omeda-appid
a unique id provided to you by Omeda to access your data. The request will fail without a valid id.
content-type
a content type supported by this resource. See Supported Content Types for more details. If omitted, the default content type is application/json.

Supported Content Types

If omitted, the default content type is application/json.

JSON
application/json

JSON is the preferred data exchange format, because it is lightweight and, in most cases, faster to process and utilizes less bandwidth. There are many available open-source JSON libraries available. See json.org for details.

Supported HTTP Methods

There is one HTTP method supported:

GET
See W3C’s GET specs for details.

Field Definition

The following table describes the hierarchical data elements.

Approval Lookup Elements Returned

Base Lookup Elements

Attribute NameRequired?Data TypeDescription
ScheduledDateconditionaldateThis will give the scheduled date if the deployment has been scheduled to send Example: ‘2015-04-24 15:10:11’ (Central Standard Time)
RequestedDaterequireddateThe preliminary date given when the Deployment was created Example: ‘2015-04-23 15:10:11’ (Central Standard Time)
SplitCountrequiredintegerThe number of deployment splits. This will correspond to the number of splits found in the Omail Message Content pleat.
StatusrequiredstringThe current status of the deployment. Valid values are : ‘Cancelled’, ‘New’, ‘Sending’,’Scheduled’,’Sent’,’Waiting Review’,’Not Accepted’,’Accepted’,’Submitted’, and ‘Approved’.
ApprovalDateconditionaldateIf the deployment has been approved, this will be the date it was approved to send. Example: ‘2015-04-24 12:10:11’ (Central Standard Time)
FinalApproverUserIdrequiredstringThe Final Approver for the deployment. This is specified when the deployment is created.
TestsrequiredarrayThe tests that have been sent the deployment. If 2 tests have been sent, the Tests array will have a size of 2. Please see Tests Array Element below.

Tests Array Element

Attribute NameRequired?Data TypeDescription
TestNumberrequiredintegerThe first test sent is test 1, the second is test 2, etc.
SentDaterequireddateThe date that the test was sent.
SentStatusrequiredstringThe status of the test. Valid values are Ready, Sending, or Sent.
ApprovalStatusCoderequiredstringThe approval status code of the test, description for each field is found in the ApprovalStatusDescription field below. Valid values are ‘NEW’, ‘WAITING’, ‘APPROVED’,’DISAPPROVED’, and FINAL_APPROVED’.
ApprovalStatusDescriptionrequiredstringThe approval status description of the test. Valid values are ‘Not Sent’, ‘Waiting for response’, ‘All Testers Approved’,’Rejected’, and ‘Final Approver Approved’.
TestSplitsrequiredarrayEach deployment test can have one or many test splits depending on the number of splits that the deployment base deployment has. For example if the deployment has 3 splits, tests array object will contain a TestSplits array of size 3. See TestSplits Array element below.

TestSplits Array Element

Attribute NameRequired?Data TypeDescription
SplitNumberrequiredintegerThe first split is split 1, the second is split 2, etc.
IdrequiredintegerThe test split id – unique identifier – also used to lookup the html or text content of the deployment (See HtmlTestContentUrl and TextTestContentUrl below).
FromNamerequiredstringThe ‘From’ name that will be used for this particular split.
FromEmailrequiredstringThe Email Address that the deployment email will be from.
SubjectrequiredstringThe deployment email subject for this test split.
HtmlSpamScoreconditionaldoubleThe SpammAssassin spam score for the html content of this test split. Only available if the deployment has html content.
TextSpamScoreconditionaldoubleThe SpammAssassin spam score for the text content of this test split. Only available if the deployment has a text content.
HtmlSpamReportconditionalstringThe SpammAssassin analysis of the deployment html content. Only available if the deployment has a htmlcontent.
TextSpamReportconditionalstringThe SpammAssassin analysis of the deployment text content. Only available if the deployment has a text content.
HtmlTestContentUrlconditionalstringThe Deployment Test Content Lookup Api Url to lookup the html content of the split that was sent for this test. Only available if the split has html content.Example: https://ows.omedastaging.com/webservices/rest/brand/OTB/omail/deployment/test/content/lookup/html/20632822/* where 20632822 is the Id field returned above.
TextTestContentUrlconditionalstringThe Deployment Test Content Lookup Api Url to lookup the text content of the split that was sent for this test. Only available if the split has text content.Example: https://ows.omedastaging.com/webservices/rest/brand/OTB/omail/deployment/test/content/lookup/text/20632822/* where 20632822 is the Id field returned above.
SplitStatusrequiredstringEither ‘OPEN’ or ‘CLOSED’. A test split is CLOSED if the deployment has been scheduled to send or if a new test has been sent. Otherwise the test split will be OPEN.
SplitApprovalStatusCoderequiredstringThe approval status code of the test split, description for each field is found in the SplitApprovalStatusDescriptionfield below. Valid values are ‘NEW’, ‘WAITING’, ‘APPROVED’,’DISAPPROVED’, and FINAL_APPROVED’.
SplitApprovalStatusDescriptionrequiredstringThe approval status description of the test split. Valid values are ‘Not Sent’, ‘Waiting for response’, ‘All Testers Approved’,’Rejected’, and ‘Final Approver Approved’.
MessageTyperequiredstringValid values are ‘Text’, ‘Html’, or ‘Both’.
ApprovalDateconditionaldateIf the split has been approved – this field will hold the date it was approved.
TestersrequiredarrayEach Test Split element will have an array of Testers. Each element in the testers array gives important information, such as whether the test reached the tester successfully, the number of opens, whether they approved the test, any comments they have on the test, etc. Please see Testers Array Element below.

Testers Array Element

Attribute NameRequired?Data TypeDescription
OpensrequiredintegerThe number of times the tester has opened this particular deployment test split. This tracking is only available for html deployments.
TesterDeliveryEmailrequiredemailThe email address that the test was sent to.
SentDateconditionaldateIf the test has been sent, this field will give the date that the test was sent to this particular tester.
TextTestApprovalStatusCodeconditionalstringThe approval status code of the tester. Valid values are ‘APPROVED’, ‘DISAPPROVED’, ‘WAITING’. Element is only available if there is text content in the deployment split.
HtmlTestApprovalStatusCodeconditionalstringThe approval status code of the tester. Valid values are ‘APPROVED’, ‘DISAPPROVED’, ‘WAITING’. Element is only available if there is htmlcontent in the deployment split.
TextTestResponseDateconditionaldateThe date the tester responded to the test for this test split. This field is only available if the tester has responded to this test split and the deployment split has text content.
HtmlTestResponseDateconditionaldateThe date the tester responded to the test for this test split. This field is only available if the tester has responded to this test split and the deployment split has html content.
TextDeliveryStatusconditionaltextIf there was a problem sending the text version to the test recipient, this field will provide a short description. This field is only available if there is an error delivering the test to the recipients inbox and if the deployment split has text content.
HtmlDeliveryStatusconditionaltextIf there was a problem sending the html verion to the test recipient, this field will provide a short description. This field is only available if there is an error delivering the test to the recipients inbox and if the deployment split has htmlcontent.
IsFinalApproverrequiredbooleanWhether this particular tester is the designated Final Approver of the deployment. Valid values are ‘true’ / ‘false’.
FirstOpenDateconditionaldateIf the tester has opened the test email for this test split, this field will give the first date that the test split email was opened.
LastOpenDateconditionaldateIf the tester has opened the test email for this test split, this field will give the last date that the test split email was opened.
TesterNamerequiredstringThe First and Last name of the tester.
TesterCommentsconditionalarrayEach Testers Array element will have an array of TesterComments if the tester has left a comment for a particular test split. Please see TesterComments Array Element below.

TesterComments Array Element

Attribute NameRequired?Data TypeDescription
HtmlTestCommentconditionalstringThe comment the tester made regarding the html content of the split. Only available if the tester has left a comment and the test split contains html content.
HtmlTestCommentDateconditionaldateThe date the tester made the comment regarding the html content of the split. Only available if the tester has left a comment and the test split contains html content.
TextTestCommentconditionalstringThe comment the tester made regarding the text content of the split. Only available if the tester has left a comment and the test split contains text content.
TextTestCommentDateconditionaldateThe date the tester made the comment regarding the text content of the split. Only available if the tester has left a comment and the test split contains text content.

Response Example

JSON Example – 1 split – 1 test sent – James Smith did not approve the text version and left comments – final approver has not responded to tests

{
  "OwnerUserId": "johndoe",
  "Tests": [{
    "SentDate": "2010-04-29 13:46:18",
    "ApprovalStatusCode": "WAITING",
    "SentStatus": "Sent",
    "TestSplits": [{
      "FromEmail": "postmaster@renewals.marketing.com",
      "Testers": [
        {
          "Opens": "3",
          "TesterDeliveryEmail": "james.smith@marketing.com",
          "SentDate": "2010-04-29 13:46:25",
          "TextTestApprovalStatusCode": "DISAPPROVED",
          "HtmlTestResponseDate": "2010-04-29 13:56:27",
          "HtmlTestApprovalStatusCode": "WAITING",
          "FirstOpenDate": "2010-04-29 13:47:12",
          "LastOpenDate": "2010-04-29 13:47:16",
          "TextTestResponseDate": "2010-04-29 13:55:28",
          "TesterName": "James Smith",
          "IsFinalApprover": false,
          "TesterComments": [
            {
              "HtmlTestComment": "Profile Preference Link doesn't work",
              "HtmlTestCommentDate": "2010-04-29 13:56:27"
            },
            {
              "HtmlTestComment": "Renew Now link needs to have the reader number embedded to prepopulate the sub form.",
              "HtmlTestCommentDate": "2010-04-29 13:56:06"
            },
            {
              "TextTestComment": "Profile Preference link doesn't work.",
              "TextTestCommentDate": "2010-04-29 13:55:28"
            },
            {
              "TextTestComment": "The link for \"if this email was forwarded to you....\"doesn't work",
              "TextTestCommentDate": "2010-04-29 13:55:10"
            },
            {
              "TextTestComment": "Renew Now link doesn't go anywhere - need it to go to the sub page with prepopulated info.",
              "TextTestCommentDate": "2010-04-29 13:54:14"
            }
          ]
        },
        {
          "Opens": "1",
          "TesterDeliveryEmail": "john.doe@marketing.com",
          "SentDate": "2010-04-29 13:46:22",
          "TextTestApprovalStatusCode": "WAITING",
          "HtmlTestApprovalStatusCode": "WAITING",
          "FirstOpenDate": "2010-04-29 13:59:03",
          "LastOpenDate": "2010-04-29 13:59:03",
          "TesterName": "John Doe",
          "IsFinalApprover": true
        }
      ],
      "Subject": "Marketing Renewal",
      "HtmlTestContentUrl": "https://ows.omedastaging.com/webservices/rest/brand/OTB/omail/deployment/test/content/lookup/html/20632822/*",
      "TextTestContentUrl": "https://ows.omedastaging.com/webservices/rest/brand/OTB/omail/deployment/test/content/lookup/text/20632822/*",
      "HtmlSpamScore": 2.69,
      "SplitApprovalStatusDescription": "Rejected",
      "SplitStatus": "OPEN",
      "TextSpamReport": "Content analysis details:   (2.4 points)\n\n pts rule name              description\n---- ---------------------- --------------------------------------------------\n 2.4 URG_BIZ                BODY: Contains urgent matter ",
      "SplitNumber": 1,
      "HtmlSpamReport": "Content analysis details:   (2.7 points)\n\n pts rule name              description\n---- ---------------------- --------------------------------------------------\n 2.4 URG_BIZ                BODY: Contains urgent matter\n 0.2 HTML_IMAGE_RATIO_08    BODY: HTML has a low ratio of text to image area\n 0.0 HTML_MESSAGE           BODY: HTML included in message\n 0.1 MIME_HTML_ONLY         BODY: Message only has text/html MIME parts ",
      "FromName": "Renewal Marketing",
      "SplitApprovalStatusCode": "DISAPPROVED",
      "TextSpamScore": 2.38,
      "Id": 16001633,
      "MessageType": "Both"
    }],
    "ApprovalStatusDescription": "Waiting For Response",
    "TestNumber": 1
  }],
  "TrackId": "OTB100429002",
  "DeploymentName": "Marketing Renewal Deployment 1",
  "RequestedDate": "2010-04-30 16:00:00",
  "SplitCount": 1,
  "FinalApproverUserId": "johndoe"
}

JSON Example – 1 split – 2 tests sent – Jan Smith found problems with the text and html version for the first test – a second test was sent and she approved the html and text version – John Doe approved the second test

{
  "OwnerUserId": "johndoe",
  "Tests": [
    {
      "SentDate": "2015-03-04 13:06:51",
      "ApprovalStatusCode": "WAITING",
      "SentStatus": "Sent",
      "TestSplits": [{
        "FromEmail": "renewals@marketing.com",
        "Testers": [
          {
            "Opens": "5",
            "TesterDeliveryEmail": "jansmith@marketing.com",
            "SentDate": "2015-03-04 13:06:59",
            "TextTestApprovalStatusCode": "DISAPPROVED",
            "HtmlTestResponseDate": "2015-03-04 13:31:50",
            "HtmlTestApprovalStatusCode": "DISAPPROVED",
            "FirstOpenDate": "2015-03-04 13:23:12",
            "LastOpenDate": "2015-03-04 13:33:53",
            "TextTestResponseDate": "2015-03-04 13:28:34",
            "TesterName": "Jan Smith",
            "IsFinalApprover": false,
            "TesterComments": [
              {
                "HtmlTestComment": "Please confirm if the link for \"www.marketing.com\" works. The TEXT and HTML versions both go to a 404 page, but when you view the newsletter in a web browser, the link is fine. The \"www.marketing.com\" link should direct to: http://www.marketing.com/landing/",
                "HtmlTestCommentDate": "2015-03-04 13:31:50"
              },
              {
                "TextTestComment": "Please confirm if the link for \"www.marketing.com\" works. The TEXT and HTML versions both go to a 404 page, but when you view the newsletter in a web browser, the link is fine. The \"www.marketing.com\" link should direct to: http://www.marketing.com/landingtext/",
                "TextTestCommentDate": "2015-03-04 13:28:34"
              },
              {
                "TextTestComment": "Please make sure that the text \"New Subscriber\" and \"Existing Subscribers\" are on two separate lines. The TEXT version has the two phrases running together.",
                "TextTestCommentDate": "2015-03-04 13:27:10"
              }
            ]
          },
          {
            "Opens": "2",
            "TesterDeliveryEmail": "john.doe@marketing.com",
            "SentDate": "2015-03-04 13:07:02",
            "TextTestApprovalStatusCode": "WAITING",
            "HtmlTestApprovalStatusCode": "WAITING",
            "FirstOpenDate": "2015-03-04 13:33:26",
            "LastOpenDate": "2015-03-04 13:54:46",
            "TesterName": "John Doe",
            "IsFinalApprover": true
          }
        ],
        "Subject": "Get your renewals today!",
        "HtmlSpamScore": 3.3,
        "SplitApprovalStatusDescription": "Waiting For Response",
        "SplitStatus": "OPEN",
        "TextSpamReport": "Content analysis details:   (1.1 points)\n\n pts rule name              description\n---- ---------------------- --------------------------------------------------\n 1.1 HS_INDEX_PARAM         URI: Link contains a common tracker pattern. ",
        "SplitNumber": 1,
        "HtmlSpamReport": "Content analysis details:   (3.3 points)\n\n pts rule name              description\n---- ---------------------- --------------------------------------------------\n 1.1 HS_INDEX_PARAM         URI: Link contains a common tracker pattern.\n 2.1 HTML_IMAGE_RATIO_04    BODY: HTML has a low ratio of text to image area\n 0.0 HTML_MESSAGE           BODY: HTML included in message\n 0.1 MIME_HTML_ONLY         BODY: Message only has text/html MIME parts ",
        "HtmlTestContentUrl": "https://ows.omedastaging.com/webservices/rest/brand/OTB/omail/deployment/test/content/lookup/html/2063282/*",
        "TextTestContentUrl": "https://ows.omedastaging.com/webservices/rest/brand/OTB/omail/deployment/test/content/lookup/text/2063282/*",
        "FromName": "Marketing.com",
        "SplitApprovalStatusCode": "WAITING",
        "TextSpamScore": 1.11,
        "Id": 157376491622,
        "MessageType": "Both"
      }],
      "ApprovalStatusDescription": "Waiting For Response",
      "TestNumber": 1
    },
    {
      "SentDate": "2015-03-04 13:36:03",
      "ApprovalStatusCode": "FINAL_APPROVED",
      "SentStatus": "Sent",
      "TestSplits": [{
        "FromEmail": "renewals@marketing.com",
        "Testers": [
          {
            "Opens": "1",
            "TesterDeliveryEmail": "jansmith@marketing.com",
            "SentDate": "2015-03-04 13:36:10",
            "TextTestApprovalStatusCode": "APPROVED",
            "HtmlTestResponseDate": "2015-03-04 13:41:57",
            "HtmlTestApprovalStatusCode": "APPROVED",
            "FirstOpenDate": "2015-03-04 13:40:31",
            "LastOpenDate": "2015-03-04 13:40:31",
            "TextTestResponseDate": "2015-03-04 13:41:33",
            "TesterName": "Jan Smith",
            "IsFinalApprover": false,
            "TesterComments": [
              {
                "HtmlTestComment": "Again, links work now. Thanks for the prompt response!",
                "HtmlTestCommentDate": "2015-03-04 13:41:57"
              },
              {
                "TextTestComment": "Links work. Thank you!",
                "TextTestCommentDate": "2015-03-04 13:41:33"
              }
            ]
          },
          {
            "Opens": "2",
            "TesterDeliveryEmail": "john.doe@marketing.com",
            "SentDate": "2015-03-04 13:36:08",
            "TextTestApprovalStatusCode": "APPROVED",
            "HtmlTestApprovalStatusCode": "APPROVED",
            "TesterName": "John Doe",
            "IsFinalApprover": true
          }
        ],
        "Subject": "Connect with Icom at IWCE - Booth 621",
        "HtmlSpamScore": 3.3,
        "SplitApprovalStatusDescription": "Final Approver Approved",
        "SplitStatus": "OPEN",
        "TextSpamReport": "Content analysis details:   (1.1 points)\n\n pts rule name              description\n---- ---------------------- --------------------------------------------------\n 1.1 HS_INDEX_PARAM         URI: Link contains a common tracker pattern. ",
        "SplitNumber": 1,
        "HtmlSpamReport": "Content analysis details:   (3.3 points)\n\n pts rule name              description\n---- ---------------------- --------------------------------------------------\n 1.1 HS_INDEX_PARAM         URI: Link contains a common tracker pattern.\n 2.1 HTML_IMAGE_RATIO_04    BODY: HTML has a low ratio of text to image area\n 0.0 HTML_MESSAGE           BODY: HTML included in message\n 0.1 MIME_HTML_ONLY         BODY: Message only has text/html MIME parts ",
        "FromName": "marketing.com",
        "SplitApprovalStatusCode": "FINAL_APPROVED",
        "TextSpamScore": 1.11,
        "Id": 15737649212,
        "MessageType": "Both"
      }],
      "ApprovalStatusDescription": "Final Approver Approved",
      "TestNumber": 2
    }
  ],
  "TrackId": "OTB150454009",
  "DeploymentName": "Marketing Renewals March",
  "RequestedDate": "2015-03-06 09:00:00",
  "SplitCount": 1,
  "FinalApproverUserId": "johndoe"
}

Failed Submission

A failed GET submission may be due to several factors:

StatusDescription
400 Bad RequestTypically, this error occurs when the request does not follow the specifications. In the case of an update, this can occur if an HTTP PUT request is submitted without a TrackId element in the submitted json data.
403 ForbiddenTypically, this error occurs when the credentials are erroneous. Potentially, an incorrect x-omeda-appid.
404 Not FoundTypically, this error occurs with a malformed URL or the resource that is searched for is not found. This can occur if a BrandAbbreviation submitted is not found in our system.
405 Method Not AllowedTypically, this error occurs when the resource accessed is not allowed by the HTTP Method utilized. Make sure you employ the correct HTTP Method (POST) for this request.

This is not an exhaustive list of errors, but common ones. If an error occurs repeatedly, please contact your Omeda representative.

JSON Example

{
  "SubmissionId" : "C95AE90C-BEC6-41F2-91E2-2BA9168D1D1F",
  "Errors" : [
    {
      "Error": "The AppId submitted is forbidden access."
    }
  ]
}
Tags:
Table of Contents
Knowledge Base Feedback