Public
Like
pipedream-connect
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: v425View latest version
This application allows Val Town users to authenticate and connect to external services via Pipedream Connect.
For example, send a Slack or Discord message, create a Linear ticket, or update a row in Google Sheets.
- Select the app (Slack, Discord, Linear, Google, Sheets, 2k+ others)
- Select "Action" type
- Select which action ("Send a message", "Make a ticket", etc)
- Connfigure the action's parameters
- Test-run the action
- Copy the code provided to trigger that action from any Val Town server-side code
- list existing triggers
- list trigger & endpoint
- Let triggers be updated
- Let trigger be deleted
- Help users connect trigger to val more directly than copying endpoint (via val town sdk)
- put these on their own page
- ability to delete connections
- Docs: https://pipedream.com/docs/connect/managed-auth/oauth-clients/#using-a-custom-oauth-client
- I made one for discord, but am struggling to figure out where to supply the
oauthAppId
. I asked Pipedream.
- Seperate pages for connections, new action or trigger, triggers
- Make it prettier. Tailwind?
- (Maybe) Store everyone's actions & give debug history panel (unless they disable it?)
- Automatically include
"includeSentViaPipedream": false
for Discord and Slack - Ensure Val Town Pro
- Spotify demo
- Notion demo, organize everything around date tags
- How do we teach Townie how to use this
- search for potential actions (maybe their mcp can help?)
This app uses Val Town API tokens for authentication. (Eventually, we'll swap this for Val Town OAuth.)
To login, create and supply a Val Town API token with the user:read
scope only. We store it in cookies.
To run actions on connected apps, you'll also need to supply a Val Town API
token. If you're doing this from within Val Town, you can use
process.env.valtown
, which this app's client libraries will use by default.