Unlisted
Like
leads
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Viewing readonly version of main branch: v110View latest version
AI-powered lead qualifying from any data source.
- When a new lead comes in via a POST request to
main.ts, it is sent to the OpenAI agent inagent.ts. - The agent uses the lead data from your POST request and its web search tool to
determine if the lead is a
matchfor the criteria inPROMPT.txt. - By default, the AI returns:
{ "name": "(normalized name)", "match": "(true or false)", "reasoning": "(explanation)" }
- Every lead is added to the
leadsSQLite table with the columns:id— auto-incremented, starts at1timestamp— Unix timestampinput_data— JSON of your POST bodyoutput_data— JSON of AI response
- The
main.tsdashboard shows a history of all lead assessments, successful matches first. Clicking any lead shows the full inbound and output data from the assessment.
- Click Remix
- Save your
OPENAI_API_KEYas an environment variable - Customize
PROMPT.txt(Don't remove any fields from the structured response) - Get the val's HTTP endpoint from
main.ts: - Start forwarding leads to this webhook from any source as a POST request.
- That's it! You now have a growing
leadsSQLite table with one column for your originalinput_dataand a second column for the AI evaluator'soutput_data. You also have a dashboard of this data hosted at themain.tsval endpoint.
- You can add any number of fields to the AI's output instructions in
PROMPT.txtand they'll be added tooutput_data. You can use this to expand the AI's assessment, enrich your leads, or even just normalize lead data coming from different sources. - You can also add query parameters when you POST to the val endpoint. (ex:
your-val-endpoint.val.run?source=signup-page). The parameters will be bundled in the_queryobject ofinput_data. This can be useful for tracking where a lead was forwarded from.