One-time setup. Paste your API credentials below — they get saved to this browser only and never leave it. The dashboard, parser, and optimizer all read from here. Run a Test on each section before saving so you know it's working.
Channels
Connect the channels your customers message you through. Each connected channel feeds into the Inbox.
Connected
Setup guide ▼
- SMS is already connected via Twilio. Inbound and outbound messages flow automatically.
- To view or update the webhook, go to Twilio Console → Phone Numbers → Manage → your number → Messaging tab.
- The inbound webhook URL must be set to:
Inbound webhook URLhttps://pickup-pals-api.accounts-eae.workers.dev/sms/inbound
If you ever change Twilio numbers, update the Twilio webhook URL above and notify the team.
Pending
Setup guide ▼
- Sign in at resend.com → Domains.
- Find
pickuppals.com.auand click Verify. You'll see two DNS records to add (one TXT, one CNAME). - Open Cloudflare DNS for
pickuppals.com.auand add both records exactly as shown. - Return to Resend and click Verify DNS Records. The domain status will turn green within a few minutes.
- Once verified, outbound emails from
hello@pickuppals.com.auwill work. Inbound email (replies coming into the Inbox) requires an inbound routing rule — contact us to set that up.
Domain verification is currently pending. Complete steps 2–4 to activate email sending.
Not connected
Setup guide ▼
- Go to developers.facebook.com → My Apps → Create App. Choose type Business.
- Add the Messenger product to the app.
- Under Messenger → Settings, connect your Pickup Pals Facebook Page and generate a Page Access Token.
- Under Webhooks, click Add Callback URL and enter:
Callback URLhttps://pickup-pals-api.accounts-eae.workers.dev/webhook/facebook
- Set the Verify Token to
pickup-pals-verifyand subscribe to themessagesevent. - Paste your Page Access Token below and save.
Not connected
Setup guide ▼
- Instagram DMs use the same Facebook Developer App as Messenger above — complete Facebook setup first.
- In your Facebook App, add the Instagram product.
- Connect your @pickuppalsaustralia Instagram account (must be a Professional account linked to your Facebook Page).
- Under Webhooks, subscribe to
instagram_messageswith callback URL:
Callback URLhttps://pickup-pals-api.accounts-eae.workers.dev/webhook/instagram
- Use the same Verify Token:
pickup-pals-verify. - Paste the Instagram Page Access Token below (often the same token as Facebook).
Integrations
API credentials used by the dashboard tools.
Anthropic API
Powers run-sheet PDF parsing. Claude reads each PDF, extracts customer rows, items, addresses, flags. Used by the Run Sheets tool when it ships.
Get one at console.anthropic.com · keep it secret
Airtable
Your jobs source-of-truth. Run Sheets parser writes parsed jobs here, Optimizer reads jobs (HN + PUP) from here, and your existing invoicing flow keeps working unchanged.
Get one at airtable.com/create/tokens · scopes needed:
data.records:read, data.records:write, schema.bases:readOpen your Pickup Pals base in Airtable; the URL is
airtable.com/appXXX.../... — that part is the Base IDIn Airtable, open the Customers table, expand the Harvey Norman Noosa record, and copy the
rec... ID from the URLGoogle Maps API
Geocodes addresses and computes driving times for the Route Optimizer. Already configured if you've used the optimizer.
Restrict by HTTP referrer in the Google Cloud Console to
pickup-pals-ops.pages.dev/* for safety🔒 Where do these credentials live?
These keys are saved in localStorage on this browser only. They never travel to a server, never get logged, never appear in any database. If you clear browser data or use a different machine, you'll need to paste them again. The same approach the Route Optimizer already uses for the Google Maps key.
One trade-off: any script running on this page can read localStorage, so a malicious browser extension could in theory read your keys. For this small internal tool with trusted users it's a reasonable risk. When we move to a proper backend (Cloudflare Functions / D1), keys will live server-side and the browser only ever sees results.