Back to Blog
TPY (Telebot Creator) Data Management

TPY Data Management: Storing and Retrieving User Information

TPY Data Management and Storage

User Properties

TPY provides built-in functions to store and retrieve user-specific data. This data persists across sessions, allowing you to create personalized experiences.

Setting User Properties

PYTHON
// Store different types of data
User.setProperty("username", "john_doe");              // String
User.setProperty("age", 25);                            // Number
User.setProperty("is_premium", true);                   // Boolean
User.setProperty("preferences", {theme: "dark", lang: "en"}); // Object
User.setProperty("last_login", Date.now());             // Timestamp

Getting User Properties

PYTHON
// Retrieve stored data
var username = User.getProperty("username");
var age = User.getProperty("age");
var isPremium = User.getProperty("is_premium");
var preferences = User.getProperty("preferences");

if (preferences) {
    bot.sendMessage("Your theme: " + preferences.theme);
}

Checking if Properties Exist

PYTHON
if (User.getProperty("first_visit") === null) {
    // First time user
    User.setProperty("first_visit", Date.now());
    bot.sendMessage("Welcome! Thanks for your first visit.");
} else {
    var visits = User.getProperty("visit_count") || 0;
    User.setProperty("visit_count", visits + 1);
    bot.sendMessage("Welcome back! This is your " + (visits + 1) + " visit.");
}

Working with Complex Data

Store and manipulate complex data structures like arrays and objects:

PYTHON
// Store user's favorite items
var favorites = User.getProperty("favorites") || [];
favorites.push(itemId);
User.setProperty("favorites", favorites);

// Store user settings
var settings = User.getProperty("settings") || {
    notifications: true,
    language: "en",
    theme: "light"
};
settings.theme = "dark";
User.setProperty("settings", settings);

Data Expiration and Cleanup

Implement data expiration for temporary information:

PYTHON
// Store with timestamp
User.setProperty("temp_code", {
    value: verificationCode,
    expires: Date.now() + 3600000 // 1 hour
});

// Check expiration when retrieving
var tempData = User.getProperty("temp_code");
if (tempData && tempData.expires > Date.now()) {
    // Data is still valid
    bot.sendMessage("Your code: " + tempData.value);
} else {
    // Data expired or doesn't exist
    User.setProperty("temp_code", null); // Clean up
    bot.sendMessage("Code expired. Please request a new one.");
}

User Session Management

Manage user sessions and state for multi-step interactions:

PYTHON
// Set user state
User.setProperty("current_state", "awaiting_email");

// In another command, check the state
var state = User.getProperty("current_state");
if (state === "awaiting_email") {
    var email = request.text;
    if (isValidEmail(email)) {
        User.setProperty("user_email", email);
        User.setProperty("current_state", null); // Clear state
        bot.sendMessage("Email saved! Thank you.");
    } else {
        bot.sendMessage("Please enter a valid email address.");
    }
}

Learn More

For advanced data management techniques, visit:

🔗 Telebot Creator Documentation

Data Privacy

Always inform users about what data you collect and how you use it. Implement data deletion functionality to comply with privacy regulations.

📚 Source

This tutorial is based on the official Telebot Creator Documentation. Visit their site for the most up-to-date information and advanced guides.

Share this tutorial