Issue: customer.io allows you to add a webhook that can call to a Salesforce REST API with an oAuth access token configured in their web UI. Access tokens expire. They don't provide an API for updating the webhook definition (to update the access token) nor do they implement a refresh token flow which would automagically update the access token. As a workaround to prevent the access token from expiring, their doc recommends setting up a "cron job to update the access token more frequently".
What they mean by "more frequently" is that if you periodically call the Salesforce REST API with your access token before the token expires, Salesforce will update the expiration date/time assigned to the token. You can use any Salesforce REST API as your target for this workaround. The same API used in your webhook could work with a dummy payload. Alternatively, you can use a metadata API such as Describe that doesn't create records in Salesforce so there are no side effects or clean up (of dummy records..) required.
If the access token expires every N hours or minutes, I'd make this call exactly once every N/2 hours or minutes. The N/2 value has to do with the way Salesforce updates the expiry time for active sessions (see Note in the Timeout Value section of this doc).
Last but not least, the implementation of this "cron job" can reside in Salesforce (calling out to itself), outside of Salesforce and outside of customer.io (e.g. a traditional cron job running on some UN*X host) or possibly inside customer.io if you can engineer a scheduled call.