We've been running WonderProxy for a while, over time our rather skinny
contracts table has been expanded with a few new columns, and joined data. Here's what we're happy with:
Contracts that have this flag set are not deactivated by any of our automated systems. This is helpful for our larger contracts where we wouldn't want a delayed payment or accounting mistake on our end to result in their usage to be cut off completely. We use it sparingly, generally for high dollar value contracts.
Suspended contracts can log into our site, but they do not receive access to our proxies and VPNs. We use this on contracts where we suspect fraud, or there's a big overage bill pending we want to talk about. It doesn't interact with any of our subscription or recurring systems, allowing us to manage a situation without requiring a bunch of effort to resubscribe. It also prevents a user from sending another payment to get past a block.
By default we send warnings to users to let them know their account is expiring 7 days in advance. For people who pay yearly and have long PO processes, this isn't nearly long enough. So we can bump it up to 30 or 60 (or for the Fortune 500: 90).
This is a separate table joined against contracts. We use this to track notes on the contract, changes to their pricing plan, why they were suspended, or anything unique about them. Contract comments can be
hidden, so important things show up at the top, and out of date information goes away (but is still available if we want it). Rendering on the contract page includes markdown support, which was surprisingly helpful.
Here's some sample comments:
Deactivated since they've not paid for the last two months
Contract migrated to Recurly
Upped seattle to 5gb on their request.
Support Instructions: if the lovely folks of $company ask for another country/server, give it to them! Then, ask them how much traffic they expect, and let Will know so he can make sure we have enough capacity and he can adjust their bill for the next month.
These developed over time, but they've all paid for themselves. As we approach new projects we look to see what things here might work elsewhere. We'll probably add all of these fields to observ.io as it gets going, just because they've been so helpful on WonderProxy.