# Validate Automation

Validates a saved automation and returns action-specific findings and the checked revision. Checks the graph and settings of each action, the subject, content and publication of each email, whether each email can be sent from its sender address and domain (code "email sender cannot send"), and whether the tag of each condition has the type its operator takes (code "condition tag has wrong type"; the editor shows such a condition empty, rewrite it with the operator the message names). Both are warnings: activation does not check them. Does not check spam score or links. Sends and activates nothing.

## Input schema:

```json
{
  "type": "object",
  "properties": {
    "automationId": {
      "type": "integer",
      "minimum": 1
    },
    "accountId": {
      "type": [
        "null",
        "integer"
      ],
      "default": null,
      "minimum": 1
    }
  },
  "required": [
    "automationId"
  ],
  "additionalProperties": false
}
```

## Output schema:

```json
{
  "type": "object",
  "required": [
    "automationId",
    "name",
    "revision",
    "status",
    "editorUrl",
    "graph",
    "findings",
    "editable",
    "dryRun",
    "settings",
    "splitTests"
  ],
  "properties": {
    "automationId": {
      "type": "integer"
    },
    "name": {
      "type": "string"
    },
    "revision": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "editorUrl": {
      "type": "string"
    },
    "graph": {
      "type": "object",
      "required": [
        "start",
        "goals",
        "states"
      ],
      "properties": {
        "start": {
          "type": "integer"
        },
        "goals": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        },
        "states": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "type",
              "next",
              "nextNo"
            ],
            "properties": {
              "id": {
                "type": "integer"
              },
              "type": {
                "type": "string"
              },
              "next": {
                "type": "integer"
              },
              "nextNo": {
                "type": "integer"
              }
            },
            "additionalProperties": true
          }
        }
      }
    },
    "findings": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "actionId",
          "code",
          "message",
          "warning",
          "variantId"
        ],
        "properties": {
          "actionId": {
            "type": "integer"
          },
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "warning": {
            "type": "boolean"
          },
          "variantId": {
            "type": "integer"
          }
        }
      }
    },
    "editable": {
      "type": "boolean"
    },
    "dryRun": {
      "type": "boolean"
    },
    "settings": {
      "type": [
        "object",
        "array"
      ]
    },
    "splitTests": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "actionId",
          "id"
        ],
        "properties": {
          "actionId": {
            "type": "integer"
          },
          "id": {
            "type": "integer"
          },
          "missing": {
            "type": "boolean"
          },
          "revision": {
            "type": [
              "string",
              "null"
            ]
          },
          "durationSeconds": {
            "type": "integer"
          },
          "started": {
            "type": "integer"
          },
          "finished": {
            "type": "integer"
          },
          "winnerIndex": {
            "type": "integer"
          },
          "variants": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "kind",
                "entityId",
                "weight",
                "goalTagId"
              ],
              "properties": {
                "kind": {
                  "type": "string"
                },
                "entityId": {
                  "type": "integer"
                },
                "weight": {
                  "type": "integer"
                },
                "goalTagId": {
                  "type": "integer"
                },
                "contactCount": {
                  "type": "integer"
                },
                "conversionCount": {
                  "type": "integer"
                }
              }
            }
          }
        }
      }
    }
  }
}
```

