How to import a project

From the dashboard, click on Import button, and select File in the opened modal window. There,click on the dashed area, or drop the import file there, and click Import.

Requirements for file

Import works for XML file with specific formatting explained below. The system won't accept any other file format, and will display error if XML file format is different from expected.

Mandatory tags: <octopus scheme="1.0">  <project_title>  <tree>  <section>  <tree>  <node_title>


Sample format

<?xml version="1.0" encoding="UTF-8"?>
<!-- MANDATORY: Root element -->
<octopus scheme="1.0">

  <!-- MANDATORY: Project name -->
  <project_title>My Project</project_title>

  <tags>
    <tag>Todo</tag>
    <tag color="#FF0000">Done</tag>
  </tags>

  <!-- MANDATORY: Page tree -->
  <tree>

    <!-- MANDATORY: Groups nodes into sections -->
    <section>
      <node color="#EA5E5E" tag="todo">
        <node_title>Home</node_title>
        <seo>
          <seo_title>Home Page</seo_title>
          <slug>/</slug>
          <description>Page description.</description>
          <h1>Welcome</h1>
          <keywords>home, welcome</keywords>
          <page_intent>Informational</page_intent>
        </seo>
        <blocks>
          <block color="#18C4A9">
            <block_title>Hero</block_title>
            <wireframe>header, text</wireframe>
            <content>Block content here.</content>
          </block>
        </blocks>
        <children>
          <node>
            <node_title>About</node_title>
            <seo>
              <seo_title>About Us</seo_title>
              <slug>/about</slug>
              <description>About page description.</description>
            </seo>
            <blocks>
              <block>
                <block_title>Intro</block_title>
                <wireframe>text, wide</wireframe>
                <content>Optional block note.</content>
              </block>
            </blocks>
            <children/>
          </node>
        </children>
      </node>
    </section>
  </tree>
</octopus>

Transformation prompt for AI models

You can use AI models (e.g. ChatGPT, Gemini, Claude, Perplexity, or alike) to transform other files to Octopus XML - provide the original file or project description, and the following instructions:

You are converting a file into a structured XML format for website project import. Analyze the input file and map its content to the XML structure below. Follow all rules strictly.

---

## OUTPUT FORMAT
```xml
<?xml version="1.0" encoding="UTF-8"?>
<octopus scheme="1.0">
  <project_title>...</project_title>

  <tags>
    <tag>TagName</tag>
    <tag color="#RRGGBB">TagName</tag>
  </tags>

  <tree>
    <section>
      <node color="#RRGGBB" tag="tagname1, tagname2">
        <node_title>...</node_title>
        <seo>
          <seo_title>...</seo_title>
          <slug>/...</slug>
          <description>...</description>
          <h1>...</h1>
          <keywords>keyword1, keyword2</keywords>
          <page_intent>...</page_intent>
        </seo>
        <blocks>
          <block color="#RRGGBB">
            <block_title>...</block_title>
            <wireframe>wireframe_name1, wireframe_name2</wireframe>
            <content>...</content>
          </block>
        </blocks>
        <children>
          <node>...</node>
        </children>
      </node>
    </section>
  </tree>
</octopus>
```

---

## MANDATORY FIELDS — never omit these

- `<octopus scheme="1.0">` — root element, always required
- `<project_title>` — project name, always required
- `<tree>` — always required, contains all pages
- `<section>` — at least one required inside `<tree>`
- `<node_title>` — page name shown in the tree

---

## OPTIONAL FIELDS — include only when relevant content exists in the source file

**Node-level**
- `<seo>` — omit entire block if no SEO data is present
- `<seo_title>` — SEO/browser tab title
- `<slug>` — URL path, must start with `/`, lowercase, hyphen-separated
- `<description>` — meta description
- `<h1>` — only if a distinct H1 differs from the SEO title
- `<keywords>` — comma-separated list
- `<page_intent>` — must be one of: `Informational`, `Commercial`, `Transactional`, `Navigational`
- `<blocks>` — omit if the page has no content blocks
- `<children>` — use `<children/>` (self-closing) if no child pages exist; omit entirely if `<children>` would be empty for another reason

**Block-level**
- `<block_title>` — name of the block
- `<wireframe>` — one or more comma-separated wireframe keys (see list below); omit if no suitable match exists
- `<content>` — body copy, text content, or internal notes for the block

**Attributes**
- `color="#RRGGBB"` on `<node>`, `<block>`, or `<tag>` — HEX only, no named colors, no rgb(), no rgba()
- `tag="..."` on `<node>` — comma-separated, values must exactly match names defined in `<tags>`

---

## WIREFRAME SELECTION

Pick the most suitable wireframe(s) per block. Each entry shows the key to use in the file and a short description of what it represents:

| Key | Description |
|-----|-------------|
| accordeon | Title left, accordion right |
| accordeon_2 | Accordion outlined |
| app_store_buttons | Inline App Store + Google Play badges |
| articles | 3-column image + text |
| articles_2 | Inline alternating image-text rows |
| articles_3 | 2-column image + text |
| audio_player | Audio playback block |
| back | Arrow back navigation |
| breadcrumbs | Breadcrumb trail |
| bullet_points | Bullet list |
| bullet_points_double | 2-column bullet list |
| button | Single button, center-aligned |
| calendar | Calendar |
| cards | Masonry grid cards |
| cards_left | 2 cards left, 1 card right |
| cards_right | 1 card left, 2 cards right |
| carousel | 3-card carousel |
| catalog | Filter left, cards right |
| catalog_2 | Cards-only catalog |
| chart | Chart |
| contact_form | Contact form left, text + button right |
| cta | Text + button, center-aligned |
| cta_2 | Title left, text + button right |
| cta_left | Text + button left, image right |
| cta_right | Image left, text + button right |
| divider | Solid divider line |
| divider_dashed | Dashed divider line |
| double | 2-column images |
| download | Download file icon left, text right |
| dropdown | Dropdown selector |
| error_404 | 404 error page |
| faq | FAQ accordion |
| features | Inline icon + feature rows |
| features_double | 2-column icon + feature, left-aligned |
| features_quarter | 4-column icon + feature, left-aligned |
| features_triple | 3-column icon + feature, left-aligned |
| features_triple_center | 3-column icon + feature, center-aligned |
| filter | Filter bar |
| footer | Footer: logo left, nav links right |
| footer_type_2 | Minimal footer |
| form | Form left, text + button right |
| form_2 | Large text input, checklist + button |
| form_3 | Wide form |
| forward | Arrow forward navigation |
| hamburger | Hamburger menu, left |
| hamburger_right | Hamburger menu, right |
| header | Header: logo left, nav links right |
| header_type_2 | Minimal header |
| hero_with_arrows | Hero image carousel with arrows |
| hierarchy_1 | Vertical hierarchy chart |
| hierarchy_2 | Horizontal hierarchy chart |
| image | Image left, text right |
| image_placeholder | Wide image |
| image_right | Text left, image right |
| input | Wide single input field |
| inputs | 2-column input fields |
| interface_header | Header: nav links left, avatar right |
| invoice | Estimate spreadsheet |
| language | Language selector |
| left_button | Button, left-aligned |
| loading | Loading effect |
| loading_2 | Loading progress bar |
| logos | 4-column logo grid |
| map | Wide map |
| map_2 | Map left, text + button right |
| map_3 | Map left, text right |
| messengers | Messenger icons |
| mobile_bottom_bar | Mobile footer: 4-column icon links |
| mobile_top_bar | Mobile header: back arrow left, heading center |
| newsletter | Newsletter subscription form |
| no_logo_navigation | Navigation bar without logo |
| pagination | Pagination with arrows |
| pie_chart | Pie chart left, text right |
| post_thread | Threaded posts |
| pricing | Pricing plans |
| product_card | Product card: image left, text + buttons right |
| profile | Profile picture left, text right |
| qr_code | QR code |
| quote | Pull quote |
| radio_buttons | Radio buttons with text |
| rating | Star rating |
| right_button | Button, right-aligned |
| searchbar | Search bar |
| sign_up | Sign-up form |
| slider | Wide card slider |
| social_buttons | Social network icons |
| spacer | Empty spacing block |
| steps | 3-column steps with text |
| store_buttons | Two buttons, center-aligned |
| store_buttons_2 | Two buttons, left-aligned |
| table | Table spreadsheet |
| table_2 | Outlined table |
| table_of_contents | Table of contents |
| table_row | Single spreadsheet row |
| tabs | Interface tabs |
| team | Team: 3-column image + text |
| text | Wide text block |
| text_and_form | Form + button left, text right |
| text_and_form_2 | Text left, form + button right |
| text_and_sidebar_form | Wide text left, form + button right |
| text_and_video | Video left, text right |
| text_and_video_2 | Text left, video right |
| text_double | 2-column text |
| text_on_image | Text centered over full-width image |
| text_on_image_2 | Text left over image |
| text_on_image_3 | 2-column text over image |
| text_quarter | 4-column text |
| text_triple | 3-column text |
| timeline | Horizontal timeline |
| timeline_2 | Vertical timeline |
| title | Title, center-aligned |
| title_and_paragraph | Title left, text right |
| title_center | Title, center-aligned |
| title_left | Title, left-aligned |
| todo | Inline checklist |
| toggle | Inline toggle list |
| triple | 3-column images |
| two_column_slider | 2-column slider |
| upload_button | File upload block |
| video | Wide video |
| wide | Wide image |

Omit if no wireframe clearly fits. Multiple `<wireframe>` tags per block are allowed.

---

## STRUCTURAL RULES

- A `<section>` can contain multiple `<node>` elements; use multiple sections to group unrelated pages (e.g. main site vs. utility pages)
- A `<node>` can contain multiple `<block>` elements
- A `<node>` can have nested child pages via `<children>` → `<node>`; nesting can be multiple levels deep
- All tag names in `tag="..."` attributes must be defined in the `<tags>` block
- Do not invent content — derive everything strictly from the input file
- If a field cannot be determined from the input, omit it
- Ask before proceeding if the input is ambiguous or if you are unsure how to map a section to a page or block

---

Now analyze the provided file and generate the XML.