14 karma · joined September 29, 2012
I've built a no code payment link builder which extends standard Stripe payment links with some advanced functionality, such as:
Taxes - enable auto collection and extended tax id capture Currently you can't add a tax rate to a Stripe payment link, let alone enable the new Stripe Tax auto collection feature. I've fixed this so that you can enable it by simply switching a toggle. You can also enable tax id capture and choose a broader set of countries to capture from.
Dynamic customer lookup by param One of the (very) few annoying things with Stripe is that a duplicate customer will get created for every successful checkout unless the session is initialized within the context of that customer. To fix this you need to assign a customer pre-checkout but you can currently only do that programatically. I've fixed this so that now you can create a payment link, pass an email param (or customer id) and we'll do the customer lookup dynamically. If we find the target customer, we'll init a checkout session for them. No more dupe customers!
Other things I've added support for:
- Multiple prices - Funnel and conversion analytics - Custom redirects - Set any payment method option - Multiple products - Digital asset delivery post checkout - Branded links - Pre-applied coupons - no more copy and paste coupon codes - Custom metadata for social previews - Free form price amounts - One click unsubscribe billing management for customers - Seamless test link mode (just add /test/ to the url when enabled, no need to create test products, prices etc.)
Also there's an API in the works so if you're interested, add your email to the waitlist.
All feedback welcome!
The links align to the Stripe checkout session API, so your teammates can adjust pricing, apply discounts, set tax rates, all without requiring any re-deploys.
This helps sales and marketing take more ownership of customer facing pricing and requires less engineering resources for product / pricing initiatives. Win win
However, making and sticking to a development plan is hard work, it’s difficult to know where to start, what to focus on, and how to carve out time to make real progress.
I found it even harder as a manger, when you’re tasked with defining and guiding the development plans of your reports, to help them grow and achieve their personal growth goals, all while executing and delivering on product initiatives for your organization.
So I built a way to auto generate professional development plans for engineers, which they can collaborate on with their managers.
Each plan is personalized, with engineering tasks based on the engineers preferences and skill set. The tasks are distributed over the year to make the plan manageable, and when you need more things to do, there’s a inventory of suggested goals and great technical content to pick from.
For managers, DevPlan lets you collaborate with your reports on their growth, and provides you with a hub for tracking their progress, recommending new goals and supporting them with feedback. Managers get to spend more valuable time guiding rather than defining development plans. This is an upcoming feature, so if you’d like to get notified of its progress, pop your email in the waitlist form.
DevPlan’s overall goal is to make it easier for engineers to plan their professional development, and to help their managers support them in that effort. All feedback welcome! Reach out here or send a note via the in app chat
Let me know what you think
Requests to slack require the slack token to be included in the request params ``` qs: { "token": integration.get('slack_token'), "channel": integration.get('channel_id'), "username": 'Partyline', "attachments": JSON.stringify(attachment), "icon_url": SLACK_BOT_ICON, }, } ```
For error handling, instructive messages and private messages we use the reply handler to push messages back to the user in the slack channel, visible only to them. Its super handy to cut down on "noise" in the channel but you do lose the rich formatting options in messages.
If the request is coming from the #general channel then that would work, alternatively you would have to build up a separate request using superagent or something
If anyone has any questions about how we approached building it let us know, we've learned some things along the way, adopting a pattern to make future integrations with GitHub, Trello etc. follow a similar interface. Building for Slack is awesome.
Is anyone else currently building Slack integrations? For local development have you used a secure tunnel service?(ngrok or other) It would be interesting to hear about other peoples dev workflows with Slack.
Partyline is all JS with Hapi.js, using ngrok to help in local dev.
We <3 Slack :)