Setting key URLs and trial version parameters in your BuddyPro instance
In order for your AI Expert to know where to direct users at different stages (e.g. after a trial or when they want to upgrade their plan) and how to communicate basic pricing and terms and conditions information, you need to set up a few important parameters in your BuddyPro instance. You, as the instance owner, make these settings by sending specific commands to chat with your BuddyPro instance in Telegram.
20.1 Setting the URL to start a subscription
This URL will be offered to the user, for example, at the end of their trial period or if they express interest in the paid version of your AI Expert.
-
Command:
/setDefaultSubscriptionUrl:{URL_address_of_sales_page_or_form} -
Parameter Explanation:
{URL_address_of_sales_page_or_form}: Replace with the actual web address. It can be:- The URL of your sales page where you present multiple tariffs and from where the user can click to place an order (e.g., leading to a Stripe payment link).
- The direct URL of your Stripe payment link for basic subscriptions.
-
How it works.
-
Automatically add parameters to the URL: BuddyPro will automatically add unique parameters to the URL you specify at the end to help identify the specific user and your instance. For Stripe integration in the format:
?client_reference_id={user_ID}(if you are using FAPI for payment integration then it’s?userId={user_ID})- Example of the resulting URL to which the user is redirected: if you enter
/setDefaultSubscriptionUrl:https://myweb.com/ai-expertthe user may be redirected to an address likehttps://myweb.com/ai-expert?client_reference_id=123456789as a result.
- Example of the resulting URL to which the user is redirected: if you enter
20.2 Setting up a URL to upgrade a subscription or purchase an extra report package
This URL will be offered to the user when they have exhausted their monthly message limit and wish to continue using your AI Expert, or if you have multiple plan levels and the user wishes to upgrade.
-
Command:
/setUpgradeSubscriptionUrl:{URL_address_of_the_page_with_upgrades_or_packages} -
Parameter Explanation:
{URL_address_of_the_page_with_upgrades_or_packages}: Replace with the actual web address. Can be:- URL of the page where you offer the option to upgrade to a higher subscription plan (if you have multiple tiers).
- URL of a page where users can purchase one-time packages of extra reports.
- Direct URL of a Stripe payment link for the most commonly purchased package or for upgrades.
-
How it works: when an active paying user exhausts their monthly message limit, the AI will offer them the option to upgrade and refer them to this URL.
-
Automatically add parameters to the URL: as with
setDefaultSubscriptionUrl, BuddyPro automatically addsclient_reference_id(oruserIdif using FAPI instead of Stripe) parameter for identification.
20.3 Important solutions for multi-tariff signposts
If the URLs you set with the /setDefaultSubscriptionUrl or /setUpgradeSubscriptionUrl commands do not lead directly to a specific sales form (e.g. Stripe or FAPI), but to your web page that serves as a "signpost" with a selection of multiple tariffs or packages (e.g. buttons "Tariff BASIC", "Tariff PRO", "Package 100", where each button leads to a different form), you technically need to provide the following:
The parameter client_reference_id={user_ID}, which BuddyPro automatically added to your signpost URL, must also "carry over" to the destination URL of the final sales form through which the user will purchase.
- Why is this important? If this parameter
client_reference_idwere lost along the way, BuddyPro would fail to automatically pair the payment to the specific Telegram user that came from your AI instance after a successful payment in Stripe. Thus, their access would not be automatically activated and will only connect if they manually click on the link in the activation email, which is inefficient and degrades the user experience. - How to make the automatic activation technically possible (recommended solution using JavaScript):
- The most common and reliable solution is to use simple JavaScript code that you insert into the HTML header
(<head>)of your landing page. - This script automatically detects the
client_reference_idparameter in the URL with which the user came to your signpost. - When any button (link) on that page is clicked, the script then dynamically adds those parameters to the destination URL of that button (i.e., the link to a specific Stripe form).
- How to get this JavaScript code?
-
Paste this script inside your web page (in the head or anywhere within the HTML code):
<script src="https://cdn.jsdelivr.net/gh/buddy-fm/buddy-public@latest/userparam.js"></script> -
TEST THE FUNCTIONALITY THOROUGHLY! Open the URL of your signpost with the test parameter (e.g.
https://myweb.com/ai-expert?client_reference_id=12345)and click on the buttons of the individual tariffs. Verify that you still see the added parameter?client_reference_id=12345in the browser address bar (after redirecting to the Stripe form) at the end of the URL.
-
- The most common and reliable solution is to use simple JavaScript code that you insert into the HTML header
20.4 Defining the message text after the trial version is exhausted
This message is automatically displayed to the user when they try to communicate further with your AI Expert after they have exhausted all their trial messages.
-
Command:
/setTrialEndedMessage:{message_text_tag_LINK} -
Parameter Explanation:
{message_text_tag_LINK}: Replace with your own text.- KEY: The text of this message MUST contain the special placeholder tag
<LINK>(exactly like this, with sharp brackets). The BuddyPro platform will automatically replace this tag with the URL you set using the/setDefaultSubscriptionUrlcommand (see Section 20.1), including the dynamically addedclient_reference_idparameter.
-
Example message text (inspiration): it
seems that your trial run with our AI Expert has just come to an end, all free messages have been exhausted. 😔 But don't despair! For unlimited access to all of his knowledge, personalized tailored advice and 24/7 support, you can easily activate your full membership. Just click here: <LINK> I look forward to our next inspiring conversations and exploring together! ✨ -
Example of using the command:
/setTrialEndedMessage: It seems that your test drive... (see text above) ...click here: <LINK>. I look forward to more inspiring conversations! ✨ -
Default message: if you do not set anything, the English message:
free trial endedis used.Please activate your subscription.We strongly recommend that you set your own English message.
20.5 Setting the default number of trial messages for new users
This command sets how many trial messages new users who join your AI instance via "generic" invitations from existing users will receive...
-
Command:
/setInviteTrialMessages:{number_messages} -
Parameter Explanation:
{number_messages}: Enter a number (e.g.50,100). Messages in both directions (user questions + AI responses) are counted.
-
Default: If you do not use this command, 100 messages is the default.
-
Example of using the command:(New users via general/unspecified invitations get 50 trial messages.)
/setInviteTrialMessages:50 -
Important: This command does not affect the number of messages for invitations that you generate yourself using the
/generateBuddyProInvitecommand - there you define the number of trial messages for each invitation individually (see the following section).
20.6 Generating specific invitation links
This is your key tool for controlled acquisition of new users, testing and monitoring the effectiveness of different marketing campaigns or partner activities.
-
Command:
/generateBuddyProInvite:{trialMessages}:{code}:{usersLimit} -
Parameter Explanation:
{trialMessages}: The number of test messages (total round trip) that a user connected through this particular invitation link will receive. Enter an integer (e.g.50,100). If you want the invitation to lead directly to the paid version without any trial, enter0.{code}: Unique 7-digit invitation code. It should contain only CAPITAL LETTERS of the English alphabet (A-Z) and digits (0-9) for maximum compatibility and readability.- The invitation code also allows you to easily identify and track where users came from (e.g., code
WEBINAR5for May webinar attendees,FBADSJULfor the July Facebook campaign).
- The invitation code also allows you to easily identify and track where users came from (e.g., code
{usersLimit}: Optional parameter. The total number of possible uses (activations) of this particular invitation. Enter an integer (e.g.1for a one-time VIP client invitation,50for a limited seats campaign). If you omit this parameter or enter0, the invitation will have an unlimited number of uses.{timeLimit}: Optional parameter. The duration of the trial period (number of days) after activation. If set, the trial ends when either the message limit or the time limit is reached — whichever comes first. If not set or set to 0, the trial ends only when the message limit is reached.
-
How it works: After you enter the command, your BuddyPro instance will generate a unique URL link in a format similar to this:
https://t.me/USERNAME_OF_YOUR_BOT?start=INVITE_CODE. You will then use this link in your marketing materials, emails, ads, etc. -
Examples of command usage:
generateBuddyProInvite:100:STARTNOW:0(Creates an invitation with 100 trial messages, the codeSTARTNOW, and unlimited uses.)/generateBuddyProInvite:0:VIPONLY:10(Generates an invitation without trial messages, leading directly to a payment offer, with the codeVIPONLY, for up to 10 users.)/generateBuddyProInvite:75::1(Creates an invitation with 75 trial messages, BuddyPro generates a random code, for 1 person only.)/generateBuddyProInvite:100:ABCDEFG:5:30(Creates an invitation with 100 trial messages, the code ABCDEFG, for only 5 users, valid for 30 days from activation)
Frequently Asked Questions (FAQ) for this step:
- Question: What happens if I don't enter any URL using
/setDefaultSubscriptionUrland the user's trial ends?- Answer. We strongly recommend that you always set this URL.
- Question: Can I use the same invitation code
({code})for multiple different/generateBuddyProInvitesettings?- A: The invitation code should always be unique.
- Question: If I set
/setInviteTrialMessages:50, will this affect invitations that I have already generated with a different number of trial messages?- A: No, invitations already generated with
/generateBuddyProInvitehave the number of trial messages fixed at the time of creation. The/setInviteTrialMessagescommand only affects new invitations that are created in a "generic" way (usually by having your existing user invite a new one).
- A: No, invitations already generated with
- Question: What if a customer comes to my tariff signpost, but the
client_reference_idparameter is lost? Can he still buy and activate?- A: Yes, even if the
client_reference_idis not transferred (e.g. he comes to your website directly, not via a link from BuddyPro), he can purchase the tariff. User will receive an activation email after successful purchase, which will lead to Telegram to activate the service. However, passing theclient_reference_idmakes for a smoother and more automated process, especially when the user comes directly from a conversation with an AI Expert.
- A: Yes, even if the