# Flint

> Build and update landing pages with Flint's AI agent. Describe a change in plain English and Flint makes it across your site, or hand it a template page and a list of records and it generates an on-brand page for each one - case studies, location pages, comparison pages. Every task returns preview and edit links, and publishes to your live site only when you ask it to.

App · Website Builders · 3 actions. Web page: https://docs.lodol.com/docs/integrations/flint

## Actions

### Create task

Tell Flint's agent what to change on your site, in plain English, and it goes and does it - add a page, rewrite a section, update the pricing everywhere it appears. The step returns a Task ID straight away; the work carries on in the background, and Get task follows it to the finished pages.

**Inputs**

- What should Flint do? (`prompt`, text, required): The instructions for the agent, in plain English. Be specific about which page or section to change and what the result should say - the agent reads your site, so you do not need to describe the design.
- Site (`site_id`, text): Optional. Leave empty to use the site you connected Flint with, which is what almost every workflow wants. Set it only to reach a different site in the same Flint team: paste its Site ID from https://app.tryflint.com/app/team (the editor URL for that site works too).
- Publish when it finishes (`publish`, true/false): Turn on to deploy the changes to your live site as soon as the task finishes. Left off (the default), the work still happens and you get a preview link for every page - nothing reaches visitors until you publish it from Flint. Default: `false`.
- Notify this URL when done (`callback_url`, text): Optional. A public HTTPS address Flint should POST the result to when the task finishes. Most workflows leave this empty and use the Get task step instead. Flint refuses http:// addresses, localhost and private network addresses.

**Outputs**

- `command` (text): The kind of task: 'prompt' or 'generate_pages'
- `created_at` (text): When the task was queued, in UTC (ISO 8601)
- `created_at_unix` (number): When the task was queued, as unix seconds
- `publish` (true/false): Whether the task will publish its changes when it finishes
- `site_id` (text): The site the task is acting on
- `status` (text): The task's status right after it was queued ('running')
- `task_id` (text): The task's id; pass it to Get task to follow it

**Example output**

```json
{
  "command": "prompt",
  "created_at": "2026-03-11T12:00:00Z",
  "created_at_unix": 1773230400,
  "publish": false,
  "site_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "running",
  "task_id": "bg-550e8400-e29b-41d4-a716-446655440000-a1b2c3d4"
}
```

### Generate pages

Turn a list of records into a set of on-brand pages, all built from one template page you already designed in Flint. Give it the template and one entry per page - a customer, a product, a city - and Flint writes each page's copy from the context you supply. This is the step behind a batch of case studies, location pages or comparison pages. Up to 10 pages per step; the Task ID it returns goes to Get task to follow the work.

**Inputs**

- Template page (`template_page_slug`, text, required): The path of an existing page on your Flint site to copy the layout and design from. Every generated page is built from it, so build the template once in Flint and point at it here. A leading slash is added for you if you leave it off.
- Pages to generate (`items`, list, required): One entry per page to create. Each needs the path for the new page and the content that makes that page different from the others - the customer, the product, the city, whatever the template is about. Up to 10 pages per step; Flint suggests 5 at a time for the fastest, most reliable runs. To generate more, chain another step.
- Site (`site_id`, text): Optional. Leave empty to use the site you connected Flint with, which is what almost every workflow wants. Set it only to reach a different site in the same Flint team: paste its Site ID from https://app.tryflint.com/app/team (the editor URL for that site works too).
- Publish when it finishes (`publish`, true/false): Turn on to deploy the changes to your live site as soon as the task finishes. Left off (the default), the work still happens and you get a preview link for every page - nothing reaches visitors until you publish it from Flint. Default: `false`.
- Notify this URL when done (`callback_url`, text): Optional. A public HTTPS address Flint should POST the result to when the task finishes. Most workflows leave this empty and use the Get task step instead. Flint refuses http:// addresses, localhost and private network addresses.

**Outputs**

- `command` (text): The kind of task: 'prompt' or 'generate_pages'
- `created_at` (text): When the task was queued, in UTC (ISO 8601)
- `created_at_unix` (number): When the task was queued, as unix seconds
- `page_count` (number): How many pages the task will generate
- `publish` (true/false): Whether the task will publish its changes when it finishes
- `site_id` (text): The site the task is acting on
- `status` (text): The task's status right after it was queued ('running')
- `target_page_slugs` (list): The path of each page being generated
- `task_id` (text): The task's id; pass it to Get task to follow it
- `template_page_slug` (text): The template page each new page is built from

**Example output**

```json
{
  "command": "generate_pages",
  "created_at": "2026-03-11T12:00:00Z",
  "created_at_unix": 1773230400,
  "page_count": 2,
  "publish": false,
  "site_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "running",
  "target_page_slugs": [
    "/case-studies/acme-corp",
    "/case-studies/globex"
  ],
  "task_id": "bg-550e8400-e29b-41d4-a716-446655440000-a1b2c3d4",
  "template_page_slug": "/case-studies/template"
}
```

### Get task

Follow a Flint task and collect what it produced: every page created, modified or deleted, each with a preview link, an edit link and - when the task published - its live URL. By default the step waits for the task to finish, so a Create task or Generate pages step followed by this one is a complete workflow. A task that fails comes back with its reason rather than erroring, so you can branch on it.

**Inputs**

- Task ID (`task_id`, text, required): The task to check on. Take it from the Task ID a Create task or Generate pages step returned.
- Wait for the task to finish (`wait_for_completion`, true/false): On by default: the step waits for the task to finish and returns the pages it produced, checking every 5 seconds for up to 3.5 minutes. If it is still running at that point the step still succeeds, with Timed out set, so a later step or a scheduled run can check again. Turn it off to read the status right now and move on immediately. Default: `true`.

**Outputs**

- `error_message` (text): Why the task failed, when it did
- `is_finished` (true/false): Whether the task has stopped running
- `page_count` (number): How many pages were created or modified
- `page_urls` (list): A link to each page the task created or changed - the live URL where there is one, the preview link otherwise
- `pages_created` (list): Pages the task created
- `pages_deleted` (list): Pages the task removed
- `pages_modified` (list): Existing pages the task changed
- `status` (text): 'running' while it works, 'completed' when it worked, 'failed' when it did not
- `succeeded` (true/false): Whether the task finished successfully
- `task_id` (text): The task's id
- `timed_out` (true/false): True when the step waited and the task was still running at the end of the wait; check it again later. False when the step was told not to wait
- `waited_seconds` (number): How long this step waited before answering

**Example output**

```json
{
  "error_message": null,
  "is_finished": true,
  "page_count": 1,
  "page_urls": [
    "https://www.example.com/case-studies/acme-corp"
  ],
  "pages_created": [
    {
      "edit_url": "https://app.tryflint.com/app/edit?siteId=550e8400-e29b-41d4-a716-446655440000&page=case-studies/acme-corp",
      "preview_url": "https://your-site-abc123.vercel.app/case-studies/acme-corp",
      "slug": "/case-studies/acme-corp",
      "url": "https://www.example.com/case-studies/acme-corp"
    }
  ],
  "pages_deleted": [],
  "pages_modified": [],
  "status": "completed",
  "succeeded": true,
  "task_id": "bg-550e8400-e29b-41d4-a716-446655440000-a1b2c3d4",
  "timed_out": false,
  "waited_seconds": 65.0
}
```
