> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pinkfish.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# web-application

> Deploy HTML dashboards and web applications to shareable URLs

**Server path:** `/web-application` | **Type:** Embedded | **PCID required:** No

## Tools

| Tool                                                                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`web-application_deploy_web_app`](#web-application_deploy_web_app) | Deploy pre-built HTML to a shareable URL.<br />WHEN TO USE: User explicitly wants a hosted/shareable link (e.g., "deploy this", "give me a URL", "host this app", "make this accessible").<br />NOT FOR: Creating HTML - that's done in code-block nodes using guidance from the system prompt. This tool only handles deployment.<br />REQUIRES: collectionId - filestorage collection to store the deployed HTML (use \{\{resource.collectionName}}).<br />DATA-DRIVEN APPS: If your HTML contains \{\{DATA\_URL}} placeholder, provide sdk\_file\_id or filestorage\_id to resolve it. |

***

## web-application\_deploy\_web\_app

Deploy pre-built HTML to a shareable URL.

WHEN TO USE: User explicitly wants a hosted/shareable link (e.g., "deploy this", "give me a URL", "host this app", "make this accessible").

NOT FOR: Creating HTML - that's done in code-block nodes using guidance from the system prompt. This tool only handles deployment.

REQUIRES: collectionId - filestorage collection to store the deployed HTML (use \{\{resource.collectionName}}).

DATA-DRIVEN APPS: If your HTML contains \{\{DATA\_URL}} placeholder, provide sdk\_file\_id or filestorage\_id to resolve it.

**Parameters:**

| Parameter                   | Type   | Required | Default          | Description                                                                                                                                                                                                                                                                                       |
| --------------------------- | ------ | -------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `html_content`              | string | Yes      | —                | Required: The HTML code to deploy. Include \{\{DATA\_URL}} placeholder if your app needs to fetch external data.                                                                                                                                                                                  |
| `sdk_file_id`               | string | No       | —                | Supply data to your app: File ID from pf.files.writeFile() to resolve for \{\{DATA\_URL}}. Format: automationId/runId/nodeId/filename. NOTE: The resolved S3 URL expires after approximately 15 minutes, so the deployed HTML should fetch the data immediately when loaded.                      |
| `filestorage_id`            | string | No       | —                | Supply data to your app (preferred): File ID from filestorage MCP tool response to resolve for \{\{DATA\_URL}}. Expiration depends on how the file was uploaded (can range from 1 minute to public/never).                                                                                        |
| `collectionId`              | string | Yes      | —                | REQUIRED: Collection ID to store the deployed HTML file. In workflows, declare a filestorage collection resource in WORKFLOW\_RESOURCES (e.g., myWebApps: \{ type: "collection", collectionType: "filestorage" }), bind it via workflow\_bind\_resources, then use \{\{resource.myWebApps}} here. |
| `output_filename`           | string | No       | `"web_app.html"` | Optional: Name for the output HTML file (default: "web\_app.html")                                                                                                                                                                                                                                |
| `file_links_expire_in_days` | string | No       | `7`              | Number of days before the HTML URL expires (1-30), or "never" for a public URL with no expiration (default: 7)                                                                                                                                                                                    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "html_content": {
        "type": "string",
        "description": "Required: The HTML code to deploy. Include {{DATA_URL}} placeholder if your app needs to fetch external data."
      },
      "sdk_file_id": {
        "type": "string",
        "description": "Supply data to your app: File ID from pf.files.writeFile() to resolve for {{DATA_URL}}. Format: automationId/runId/nodeId/filename. NOTE: The resolved S3 URL expires after approximately 15 minutes, so the deployed HTML should fetch the data immediately when loaded."
      },
      "filestorage_id": {
        "type": "string",
        "description": "Supply data to your app (preferred): File ID from filestorage MCP tool response to resolve for {{DATA_URL}}. Expiration depends on how the file was uploaded (can range from 1 minute to public/never)."
      },
      "collectionId": {
        "type": "string",
        "description": "REQUIRED: Collection ID to store the deployed HTML file. In workflows, declare a filestorage collection resource in WORKFLOW_RESOURCES (e.g., myWebApps: { type: \"collection\", collectionType: \"filestorage\" }), bind it via workflow_bind_resources, then use {{resource.myWebApps}} here."
      },
      "output_filename": {
        "type": "string",
        "default": "web_app.html",
        "description": "Optional: Name for the output HTML file (default: \"web_app.html\")"
      },
      "file_links_expire_in_days": {
        "oneOf": [
          {
            "type": "number"
          },
          {
            "type": "string",
            "const": "never"
          }
        ],
        "default": 7,
        "description": "Number of days before the HTML URL expires (1-30), or \"never\" for a public URL with no expiration (default: 7)"
      }
    },
    "required": [
      "html_content",
      "collectionId"
    ]
  }
  ```
</Expandable>
