# Write Email Social Links

Replaces all icons in an email social-links block, in order, including pictures and targets; each icon’s type (follow, share) and link behaviour are kept. Use icon URLs from list-email-editor-social-icons or the account’s image library. Revision-bound, atomic edit; drafts only; publishing is publish-newsletter-email-content.

## Input schema:

```json
{
  "type": "object",
  "properties": {
    "editorUrl": {
      "type": "string",
      "description": "Editor URL of the email, as the read returned it",
      "minLength": 12,
      "maxLength": 500
    },
    "contentRevision": {
      "type": "string",
      "description": "The contentRevision of the read this change is based on",
      "minLength": 7,
      "maxLength": 100
    },
    "uuid": {
      "type": "string",
      "description": "The uuid of the social block"
    },
    "icons": {
      "type": "array",
      "description": "The icons, left to right",
      "items": {
        "type": "object",
        "required": [
          "src",
          "href"
        ],
        "additionalProperties": false,
        "properties": {
          "src": {
            "type": "string",
            "description": "URL of the icon picture. Take one from list-email-editor-social-icons, or any URL from the account's own image library -- an uploaded picture is a usable icon. Never invent one: an icon URL that resolves to nothing is a hole in the row, in every recipient's mail program."
          },
          "href": {
            "type": "string",
            "description": "Where the icon leads."
          },
          "name": {
            "type": "string",
            "description": "The network, e.g. \"facebook\"."
          },
          "alt": {
            "type": "string",
            "description": "Alternative text: what a reader gets instead of the picture when it does not load, and what a screen reader says."
          },
          "title": {
            "type": "string",
            "description": "Tooltip of the icon, shown on hover. Not a replacement for alt: a reader who never sees the picture never sees this either."
          }
        }
      },
      "minItems": 1,
      "maxItems": 20
    },
    "accountId": {
      "type": [
        "null",
        "integer"
      ],
      "description": "User ID of the account; omit for the account the access token works in",
      "default": null,
      "minimum": 1
    }
  },
  "required": [
    "editorUrl",
    "contentRevision",
    "uuid",
    "icons"
  ],
  "additionalProperties": false
}
```

## Output schema:

```json
{
  "type": "object",
  "oneOf": [
    {
      "type": "object",
      "required": [
        "operation",
        "previousContentStatus",
        "contentStatus",
        "emailId",
        "contentRevision",
        "warnings",
        "editorUrl",
        "nextAction",
        "created"
      ],
      "properties": {
        "operation": {
          "type": "string",
          "enum": [
            "replaced",
            "unchanged"
          ],
          "description": "\"replaced\": the stored document is a new one; \"unchanged\": nothing was persisted."
        },
        "previousContentStatus": {
          "type": "string",
          "enum": [
            "draft",
            "published",
            "unpublished_changes"
          ]
        },
        "contentStatus": {
          "type": "string",
          "enum": [
            "draft",
            "published",
            "unpublished_changes"
          ]
        },
        "emailId": {
          "type": "integer"
        },
        "contentRevision": {
          "type": "string"
        },
        "warnings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "editorUrl": {
          "type": "string"
        },
        "created": {
          "type": "array",
          "description": "What this write created, with uuids: after \"addRow\" the row and its columns, after \"addModule\" the block, plus the contentRevision the next write needs. Empty when nothing was created.",
          "items": {
            "type": "object",
            "required": [
              "operation",
              "type",
              "uuid"
            ],
            "properties": {
              "operation": {
                "type": "integer",
                "description": "Position of the creating operation in the request, counted from one."
              },
              "type": {
                "type": "string",
                "enum": [
                  "row",
                  "module"
                ]
              },
              "uuid": {
                "type": "string"
              },
              "kind": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The block kind, for a module."
              },
              "columns": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Uuids of the columns of a new row, in order; an \"addModule\" addresses one of these."
              }
            }
          }
        },
        "nextAction": {
          "type": "string",
          "enum": [
            "review_and_publish_content",
            "none"
          ],
          "description": "The content action still open: \"review_and_publish_content\" while the stored draft is not the dispatch content."
        }
      }
    },
    {
      "type": "object",
      "required": [
        "error"
      ],
      "properties": {
        "error": {
          "type": "object",
          "required": [
            "code",
            "message",
            "remediation",
            "details"
          ],
          "properties": {
            "code": {
              "type": "string",
              "description": "The machine-readable KlickTipp error code."
            },
            "message": {
              "type": "string"
            },
            "remediation": {
              "type": "string",
              "description": "Who has to act: for example get_again, use_klicktipp_editor, change_document, change_html, retry_later or ask_user_before_retry."
            },
            "details": {
              "type": "object"
            }
          }
        }
      }
    }
  ]
}
```

