Owner setup guide · Beta 3.11
Your website.
Your server. One order flow.
What changed in Beta 3.9
The Forum link in the homepage and shop navigation opens forum.appsaviors.com. It is also available in the mobile header. Forum sign-in is managed by the forum itself; no extra website setup is needed.
Earlier visual updates
Mobile delivery steps now stack clearly, and the background continues moving while you scroll throughout the page. Pause motion still stops it when you choose. The four character animations sit to the right of Services, the Order Desk, the People section and the Three Steps section. Scroll normally to move between them. The central text stays clear while surrounding text dims and softens. Selecting a form control keeps its section readable. Dark mode uses a vibrant spectrum over midnight blue. Light mode uses a coordinated pastel spectrum. The characters keep moving while you read. Each character is formed from the same moving data points that travel into the next character. Its ink travels as a continuous field of data into the next character as you scroll. Scroll backward to reverse those same paths. Scroll through each section to reveal its content and carry the data into the next figure. Scroll upward to reverse the sequence. Use Pause motion beside the character to freeze idle movement; scrolling still changes the scene. These visuals need no extra account or paid service. Your Discord and spreadsheet activation instructions below still apply.
Order connections verified
On October 10, 2026, a clearly marked zero-value test passed from website submission through Discord sign-in, private ticket creation, staff completion and a saved Google Sheets row. The test used the server owner. A regular customer account still needs to verify access, privacy and new-member joining before launch.
Connection reference for future maintenance
The server, bot and private spreadsheet are connected. The instructions below are retained for maintenance; do not create duplicate connections. Keep secret values in the private hosting settings.
- You prepare: your new server, an Order Team role, an Orders category and an empty, restricted Google Sheet.
- You send the non-secret details: server invite, server/category/role IDs, bot Application ID and Public Key, sheet link, accepted payment methods and currency.
- You add privately: the bot token, Discord client secret and Google private key. These are passwords. Do not paste them into this conversation or Discord.
- I connect and check: the correct callback addresses, role permissions, ticket creation and spreadsheet mapping.
- We test together: one customer account, one staff account, one test order and one completed row. No real payment is needed for this test.
- You decide when to open: the website is publicly accessible. Keep orders in review mode until the Discord and spreadsheet test passes.
Jump to the exact connection addresses and settings ↓ · Read the latest changes →
What is ready, and what still needs you
| Part | Current position | Next action |
|---|---|---|
| Website and form | Built for Beta 3.11 | Review the design and run a sample request. |
| Discord ticket automation | Configured. Owner-account order flow passed October 10, 2026. | Test access with a regular customer account. |
| Private order sheet | Configured. Zero-value test row saved and verified October 10, 2026. | Keep TEST records separate from business reporting. |
| Proofs and payment options | Waiting for your real business details | Provide redacted proof screenshots and approved payment methods. |
| Launch | Public website; owner-account order flow verified | Complete the fresh-customer test before opening to customers. |
Shop and coupon setup
- Open /shop to review all six game categories. Genshin includes six crystal sizes, Welkin, Gnostic Hymn, Travel Notes and Gnostic Chorus.
- Set SHOP_PRICES_JSON in the private hosting settings. Use whole cents ending in 99. Example only: {"gc6480":{"regular":9999,"sale":8999}}. This example means $99.99 regular and $89.99 sale; it is not a published business price. A sale must be lower than its regular price. Leave sale out when there is no discount.
- Product keys: gc60, gc300, gc980, gc1980, gc3280, gc6480, welkin, hymn, notes, chorus. Missing prices show a pending label. Staff confirms every final quote in Discord.
- Set SHOP_SALE_BANNER to your approved sale message. Avoid announcing a discount until the real prices and terms are ready.
- The two opening coupons are placeholders. Their claim buttons lead to the offer information page. This VPS edition uses Discord sign-in for orders. Separate website accounts are not enabled. No password database is added. Coupon issuance, expiry and redemption must be implemented after the actual offers are specified; no live discount is currently promised.
- Check each product from shop selection through the order review. Verify the product name and amount reach the Discord ticket after your server is connected.
Connection progress
Discord sign-in, private ticket creation, staff completion, ticket closure and private Google order logging passed a zero-value owner-account test on October 10, 2026. No payment was taken. Next: verify a regular customer cannot access other tickets or use staff actions, confirm new-member joining, and approve real payment methods, currency and business terms.
This is App Saviors Beta 2.2. The website and connection code are prepared. Your new Discord server, bot and private Google Sheet still need to be connected before real customers can use the complete flow.
What happens when a customer orders
- They choose top-ups, piloting, account trading, or a combined request on your website.
- They enter their game, server, item or goal, name, Discord username, preferred payment method and any deadline or notes.
- They click Continue to Discord. Discord asks them to sign in and agree to join your server. We identify them through that sign-in, so a mistyped username does not send the ticket to the wrong person.
- The customer is added to your server and a private order channel opens. Their brief is already inside. The order-team role is pinged.
- A team member checks availability, agrees on the exact price and timing, and provides your approved payment instructions.
- The team checks that payment really arrived, handles the order manually, and confirms delivery with the customer.
- The staff member presses Complete order, fills in the short form and submits it. The record goes to your private sheet. The customer can still read the closed ticket, but cannot send new messages there.
This version does not charge cards, take a payment on the website or check bank/PayPal receipts automatically. It gives customers a direct path to purchasing through your team. Payment verification and fulfillment stay with your staff.
What I have prepared for you
- A reference-led celestial archive design with sapphire, violet and ivory/gold, live light/dark switching and a three-step order form.
- Account trading alongside top-ups and piloting. Combined top-up and piloting requests are still available.
- A form that changes its questions for each service. Account requests ask whether the customer is buying, selling or trading, plus requirements or listing details.
- Discord sign-in, server joining, private ticket creation, order details and the staff notification.
- A staff-only completion form and private recording of the customer, payment method, item delivered, sale amount, total cost, profit and staff member.
- Duplicate protection for retried orders and spreadsheet updates, plus a retry button if a connection fails.
- A proof gallery and a configurable proof count. No fabricated customer reviews or screenshot examples.
Step 1. Finish your new Discord server
- Create the server under the Discord account you want to own the business. Give it the App Saviors name and your current icon.
- Open Server Settings → Roles and create a role named Order Team. Give it only to you and the people who should see customer tickets and complete orders.
- Create a category called Orders. Private order channels will appear inside it. Keep unrelated conversations out of this category.
- Create #welcome, #how-to-order, #proofs-and-vouches and #support. Put your payment and delivery expectations in #how-to-order.
- Make #proofs-and-vouches readable by customers. Add genuine delivery screenshots and feedback with customer identifiers and sensitive information removed.
- Create an invite to the server that does not expire, if Discord allows that for your server.
- In your Discord user settings, open Advanced and turn on Developer Mode. This simply makes Copy ID available. Right-click the server to copy its ID; right-click the Orders category to copy its ID. Copy the Order Team role’s ID from the role menu. Send these three IDs and your invite link to me. They are identifiers, not passwords.
- Right-click #proofs-and-vouches and choose Copy Channel Link. Send that link too.
Customers may also need to accept your server rules or pass Discord’s own checks before they can speak. We need to test that with a fresh member account.
Step 2. Create the App Saviors helper bot
The bot is the account that creates private tickets and handles the completion buttons. It runs through the website’s connection, so this version does not require leaving your own computer on.
- Open the Discord Developer Portal and sign in with the account that owns your server.
- Choose New Application. Name it App Saviors Order Desk.
- On General Information, copy the Application ID and Public Key. These can be shared with me.
- Open Bot. Create or reveal/reset the bot token as needed. This is the bot’s password. Store it only in the website’s private connection settings, never in a channel, screenshot, the HTML file or a normal chat message.
- Open OAuth2 and obtain the Client Secret. Store it privately in the same way.
- Add your website address followed by
/api/discord/callbackto the allowed redirect addresses. Copy the exact address from the connection table below; do not add a trailing slash. - Use Discord’s installation or OAuth2 URL generator to install the bot into your new server. Select the bot scope. Grant View Channels, Send Messages, Embed Links, Read Message History, Manage Channels, Manage Roles and Create Instant Invite. Grant Mention Everyone only if needed for the Order Team ping, or make that specific role mentionable. Administrator permission is not required.
- In Server Settings → Roles, put the bot’s role above any roles it must manage. Check that it can see the Orders category and create channels there. The connection assigns private access separately for every ticket.
- Once the private connection values are installed and the website is reachable by Discord, return to General Information and set Interactions Endpoint URL to your website address followed by
/api/discord/interactions. Save. Discord checks that the address responds correctly.
If Discord refuses the endpoint, stop there and send me the error text. The usual items to check are the public key, whether the site can be reached without a ChatGPT sign-in, and whether the newest connection settings have been applied.
Step 3. Create the private order sheet
- Open Google Sheets and create a blank spreadsheet called App Saviors Orders.
- Rename its first tab to Orders, with that exact spelling. Start with a completely empty tab. Add enough rows for your expected order volume, such as 10,000 rows.
- Keep the spreadsheet’s general access set to Restricted. Only add owners or finance staff who should see costs and profits.
- Send me the spreadsheet link. The link alone does not grant access.
- Open Google Cloud Console. Create a project named App Saviors Orders, or choose the project you want to use.
- Go to APIs & Services → Library, find Google Sheets API and enable it.
- Go to IAM & Admin → Service Accounts → Create Service Account. Name it App Saviors Order Writer. This gives the bot its own Google identity. It does not need a broad project administrator role.
- Open that account, choose Keys → Add Key → Create New Key → JSON, and download the file. Treat this file like a password. If your Google organization blocks key creation, tell me; do not change organization security rules just to force it through.
- Copy the service account’s email address. In the spreadsheet, click Share, paste that email, and give it Editor access.
- Enter the service account email and private key from the downloaded file into the website’s private connection settings. Do not upload the key file to your public site or paste it into Discord.
The connection writes a heading row automatically on the first completed order. Each sale has a permanent row number, so retries update the same row. Do not sort, delete, insert or rearrange rows in the Orders tab. Use a filter view or a separate reporting tab for sorting and analysis. Archive copies when needed. If you prefer Excel for reporting, download a copy using File → Download → Microsoft Excel. This beta writes automatically to Google Sheets, not directly to a live Excel workbook.
Step 4. Give me the business details
- Your server invite, server ID, Orders category ID, Order Team role ID and proof-channel link.
- The names of payment methods you actually accept and the currency you want the ledger to use. This beta uses one currency for both the amount received and the total cost. Convert outside payments before entering them.
- Your actual supported top-ups and piloting services, including anything you do not want to offer.
- Your account-trading process: whether you buy, sell, trade or offer all three, and what information staff must confirm before a transaction.
- Your delivery, cancellation and refund terms. Staff should give these to customers before taking payment.
- Real, redacted proof screenshots, permission to publish them, and your confirmed proof count. If you have 500+, I can display 500+. Until confirmed, the site does not assert that number.
The secret bot and Google values must be entered privately. The connection table below gives the exact setting names so there is no guesswork. If you cannot find private settings in your hosting account, tell me what controls you see and I’ll guide that step. Do not send secrets in an ordinary message.
Step 5. Connect and test before inviting customers
After you provide the non-secret details and enter the private values, I can finish the site configuration, check the connection and help you run the first test. The website is publicly accessible. Discord and Google still need the private connection values and the full test below before you invite paying customers.
- Use a second Discord account that is not an administrator and has not joined the server.
- Submit a small test request on the website. Confirm the sign-in screen names your bot and the correct server.
- Confirm that the account joins the server, accepts any rules and lands in a ticket containing the exact order details.
- Check that the Order Team is notified. Use another ordinary account to confirm it cannot see the ticket. Server owners and administrators can still see private channels.
- Try Complete order as the customer. It must refuse the action.
- Use a staff account and press Complete order. Enter a test amount of 25.00 and a total cost of 18.50 in your selected currency. This is test data; do not take real payment.
- Verify that the private sheet shows a profit of 6.50, the correct customer, payment method, delivered item and staff identity.
- Verify that the customer cannot post in the closed ticket, and that the completion details and profit were never posted publicly in the customer channel.
- Test an interrupted sheet connection and the Retry saved completion button. The ticket must remain open until recording succeeds, and retrying must not add a second sale.
- Test top-ups, piloting, an account request and a combined request, including on your phone.
- Once these pass, confirm that the website should be open to customers and add its address to #welcome and #how-to-order.
Your team’s everyday instructions
- Open the new ticket when Order Team is pinged.
- Confirm the game, server, requested work and deadline. Agree on the exact item, price and expected delivery.
- Send your approved payment instructions. Check your own payment account to verify receipt; a customer screenshot is not the payment record.
- Fulfill the request manually. Keep progress updates in the ticket.
- Confirm delivery with the customer.
- Press Complete order. The form is visible to the staff member, not posted into the ticket.
- Review the prefilled customer name, actual payment method and item/service delivered. Enter the amount actually received and your total cost, including any fees you want deducted from profit.
- Submit. The signed-in staff member is recorded as the handler automatically; profit is calculated automatically. If a different person did the work, have that person complete the form.
- If the sheet update fails, leave the ticket open and press Retry saved completion after the connection is fixed. Saved amounts cannot be silently overwritten by another staff submission.
Use Cancel request only for unpaid, unfulfilled requests. It asks for confirmation and closes the ticket without recording a sale. Paid cancellations, refunds, chargebacks and corrections need owner review and a separate adjustment record in this first version. Do not delete a paid ticket to pretend an order never happened.
When something goes wrong
| What you see | What to do |
|---|---|
| The new order desk is not connected | Finish the private connection settings and apply them. The site deliberately does not pretend a ticket opened. |
| Discord sign-in is cancelled or expires | Open the order form again and continue. The browser keeps the brief for the session. |
| The customer is in the server but cannot speak | Ask them to accept server rules. Check verification settings and the ticket’s customer permission. |
| The bot cannot create a ticket | Check the server/category IDs, bot permissions and role position. Retry the same order; existing tickets are reused. |
| No staff ping | Check the Order Team ID and whether the bot can mention that role. Also check each staff member’s notification settings. |
| The sheet does not update | Check that the service account has Editor access, the tab is named Orders and there are enough rows. Restore the connection and use Retry saved completion. |
| Wrong amount was entered | Ask the owner to reconcile it. Keep the original sale and make a documented adjustment in a separate adjustments tab. Do not create a second sale. |
What remains before real orders
Your real server and payment details, the bot installation, private connection settings, genuine proofs, a publicly reachable customer address and the fresh-account test. The code has been checked locally, but no live ticket, payment or private-sheet transaction has been tested without your accounts.
Technical references for whoever helps you connect it: Discord sign-in and joining, Discord interaction verification, and Google Sheets writes.
Connection settings reference
These are setting names, not values to copy as passwords. Never place secret values in the HTML or browser code. This guide contains no saved secret values.
| Setting name | What goes here |
|---|---|
APP_ORIGIN | Website address, without a trailing slash |
DISCORD_CLIENT_ID | Discord Application ID |
DISCORD_PUBLIC_KEY | Discord Public Key |
DISCORD_CLIENT_SECRET | Discord Client Secret · private |
DISCORD_BOT_TOKEN | Discord bot token · private |
DISCORD_GUILD_ID | New server ID |
DISCORD_TICKET_CATEGORY_ID | Orders category ID |
DISCORD_STAFF_ROLE_ID | Order Team role ID |
GOOGLE_SERVICE_ACCOUNT_EMAIL | Google order-writer email |
GOOGLE_PRIVATE_KEY | Google order-writer private key · private |
GOOGLE_SHEET_ID | Spreadsheet ID from its address |
GOOGLE_SHEET_TAB | Orders |
ORDER_CURRENCY | Your currency, e.g. USD |
PAYMENT_METHODS | Accepted methods, separated by commas |
DISCORD_INVITE | Non-expiring server invite |
DISCORD_PROOFS_URL | Proof-channel link |
VERIFIED_PROOF_COUNT | Confirmed count, only after verification |
PROOF_GALLERY_JSON | Real screenshot links and captions, added by me |
Discord redirect address: https://appsaviors.com/api/discord/callback
Discord incoming message address: https://appsaviors.com/api/discord/interactions
Bot connection values present: Yes. Owner-account test passed; regular-customer check remains. Google connection values present: Yes. Owner-account test passed; regular-customer check remains.