Preserve your Setka Editor content after the service shutdown

This is a step-by-step guide on ensuring your content created with Setka Editor is safe in HubSpot after Setka Editor infrastructure shutdown.

Introduction

To ensure robust content preservation on HubSpot after the Setka Editor infrastructure shutdown this guide will do two things:

  1. Explain which assets rely on Setka Editor CDN

  2. Describe the steps needed to migrate mentioned assets to HubSpot CDN

Assets that rely on Setka Editor CDN

  • images

  • JavaScript code for enabling interactive post elements

  • CSS code which enables all the styling of your articles

Migrating Setka Editor assets to HubSpot CDN

Step 1 — receive the list of posts

Make a request to Setka Content Cloud API to receive your list of Setka Editor posts. Here is a request example:

https://editor.setka.io/api/v2/posts?token=<token>&filter=state:<state>&include=images&limit=10

state determines the publication status of the post:

  • Set to published to only get published posts.

  • Set to draft to get drafts.

  • Set to all to get both drafts and published posts.

limit determines the number of posts you can receive as a response. Please make sure you don't set the value too low and miss some of the posts.

Check the Content Aloud API documentation for more filters.

Step 2 — download assets for every post

If the request is successful, you will receive a response consisting of an array of posts. The response will be paginated if the number of posts is large. Below is an example API request response:

HTTP/1.1 200 OK
{
  posts: [
    {
      "id": 2587,
      "title": "Stylist",
      "style_name": "General",
      "layout_name": "6col_19774",
      "reading_time": 240,
      "preview_link": "https://editor.setka.io/posts/80a44hd5924792",
      "state": "published"
      "author": {
        "id": 44,
        "name": "John Smith"
      },
      "body_html": "Hello!",
      "assets": {
        "plugins": [
          "https://ceditor.setka.io/clients/js_plugins/5ca41dc7f0df3e3d6170901b627d32fc/public.js"
        ],
        "styles": [
          "https://ceditor.setka.io/common_css/common_css_1565603693.css",
          "https://ceditor.setka.io/clients/GP1TwUnF9mFFVzgqnAplHSQs51xdl4WT/css/loM7yyO-6xsVawmBxqej8A.css",
          "https://ceditor.setka.io/clients/GP1TwUnF9mFFVzgqnAplHSQs51xdl4WT/layout_option_builds/19774/gazQpY7j6Cgq9gFsEKYF5A.css"
        ],
        "images": [
          {
            "id": 3310,
            "url": "https://ceditor.setka.io/clients/U8Cr2B1ZnJjyHr6e6xn_Qa7N1oqyj7cB/post_images/-tltJS8D79MI5Yltt37MCA.jpg",
            "alt": "Alt text"
            "sizes": [
              {
                "width": 3654,
                "height": 5473,
                "url": "https://ceditor.setka.io/clients/U8Cr2B1ZnJjyHr6e6xn_Qa7N1oqyj7cB/post_images/-tltJS8D79MI5Yltt37MCA.jpg"
              },
              {
                "width": 500,
                "height": 5473,
                "url": "https://ceditor.setka.io/6xAHRUiLM1NBnWZ9JupZNdugX1UyoQkg9kzIGk9--vk/w:500/q:88/plain/clients/U8Cr2B1ZnJjyHr6e6xn_Qa7N1oqyj7cB/post_images/-tltJS8D79MI5Yltt37MCA.jpg"
              },
              {
                "width": 1000,
                "height": 5473,
                "url": "https://ceditor.setka.io/Ioa24dDnWZ9JupZNdugX1UyoQkg9kzIGk9--vk/w:1000/q:88/plain/clients/U8Cr2B1ZnJjyHr6e6xn_Qa7N1oqyj7cB/post_images/-tltJS8D79MI5Yltt37MCA.jpg"
              }
            ]
          }
        ]
      },
      "hubspot_post": {
        "id": 141,
        "url": "https://hubspotblog.com/1-blog-page/-temporary-slug-bbd6cb8e-afed-4291-8937-c779c9ac2d25?hs_preview=ludkAblF-28956926215",
        "blog_id": 1315
      },
      "created_at": "2019-07-19T10:25:27Z",
      "updated_at": "2019-07-19T10:27:40Z",
      "published_at": "2019-07-22T13:34:11Z"
    }
  ],
  pagination: {
    "page": 1,
    "limit": 20,
    "page_count": 1,
    "total_count": 1
  }
}

Download the assets for each post from the array. The possible types of assets are:

File
URL
Description

plugins

https://ceditor.setka.io/clients

/js_plugins/5ca41dc7f0df3e3d6170901b627d32fc/public.js

The scripts to run interactive post elements (e.g., animations, galleries, or notes).

styles

https://ceditor.setka.io/common_css

/common_css_1565603693.css

The CSS files of post styles, including the common style file, the standalone style, and the layout grid file.

images

https://ceditor.setka.io/clients

/U8Cr2B1ZnJjyHr6e6xn_Qa7N1oqyj7cB/post_images/-tltJS8D79MI5Yltt37MCA.jpg

The images used in the post, where:

id — the image’s unique ID.

url — the link to the file.

alt — the alternative text.

sizes — several options for the image size, depending on the device’s screen size. Note: Getting the images field in your response will require using additional parameters.

Step 3 — authenticate within HubSpot API

HubSpot provides detailed instructions on how to authenticate calls to their API. Please follow their instruction and come back here once you've successfully authenticated.

Step 4 — uploading assets to Hubspot

Using Hubspot CMS Source Code API upload the assets from your posts to the HubSpot Developer File system. Doing so will allow you to access these files and use them within Hubspot Design Manager.

Step 5 — replacing asset URLs and updating content

You can perform this operation in HubSpot or in Setka Editor. Proceed with the option of your choice.

In HubSpot

Use a script to execute a sequence of actions for each post you need to preserve:

  1. Retrieve a blog post through Hubspot CMS Blog Post API

  2. Replace Setka Editor asset URLs with HubSpot asset URLs using a format suggested in a code block below

  3. Update a Blog Post using the HubSpot interface or corresponding API call

HubSpot asset URL format
https://cdn2.hubspot.net/hub/<hubspot_account_id>/<design_manager_filepath>

In Setka Editor

  1. Use Get Post call to retrieve a blog post through Setka Content Cloud API

  2. Replace Setka Editor asset URLs with HubSpot asset URLs using a format suggested in a code block above

  3. Use the Update Post method for each Setka Editor post to update all necessary blog posts

  4. On the Posts page of your Setka Editor account press the Update post button, to push the updated versions to your HubSpot.

As a result, your HubSpot should have updated post content with no asset URLs located on Setka Editor CDN.

Last updated