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.
Why use this?
When you host an HTML form in Pinkfish file storage, you can generate personalized signed links for each customer that include a unique ID as a query parameter. The form reads that ID from the URL and uses it to save and retrieve the customer’s responses from a datastore. This means customers can fill out a form over multiple sessions — their progress is saved and pre-populated when they return.This guide builds on the two-workflow pattern described in Create a Backend for Your Frontend. If you’re new to building web pages with backends in Pinkfish, start there first.
Example Use Cases
- Customer intake forms — Send each customer a personalized link. They can fill out the form at their own pace, and their answers are saved automatically when they return.
- Application forms — Generate a unique link per applicant so they can save progress and come back to complete their submission.
- Surveys with follow-up — Send personalized survey links where responses are tied to a specific customer record for follow-up actions.
How It Works
- You create an HTML form page and save it in a file storage collection
- When you want to share the form with a customer, you generate a signed link that includes a unique customer ID (e.g.
?customerId=JohnSmith-90210) - You email that link to the customer
- When the customer opens the link, the HTML page reads the customer ID from the URL
- The page checks the datastore for an existing entry with that ID — if found, it pre-populates the form
- When the customer submits, the page saves their responses to the datastore using that ID as the key
- If the customer returns later using the same link, their previous answers are already filled in
Prerequisites
- A file storage collection to host the HTML form
- A datastore collection to store customer responses
Step 1: Create the HTML Form
Build your HTML page with a prompt like this:Step 2: Generate Signed Links with Customer IDs
You can generate personalized signed links from either an agent or a workflow step. Both use the same filestorage skill.Option A: Generate from an Agent
Enter a prompt like this:Option B: Generate from a Workflow
In a workflow step, use the filestorage skill to get a signed URL:Option C: Add to Your Agent’s System Prompt
If you want your agent to generate links on demand without repeating the full instructions each time, add this to your agent’s system prompt:“Generate a form link for John Smith, zip 90210”
The Result
The agent or workflow will return a signed URL like:What the Customer Experiences
- They receive an email with a personalized link
- They click the link and see the form — empty on first visit, pre-filled on return visits
- They fill out fields and click Submit — their responses are saved
- If they return later using the same link, everything they entered before is already there
Summary
| Component | Purpose |
|---|---|
| HTML form page | Hosted in file storage — reads customer ID from URL, loads/saves data |
| Customer responses | Stored in a datastore collection, keyed by customer ID |
| Signed link with query params | Generated via filestorage skill (from Chat Mode or a Workflow) with query_params containing the customer ID |

