SFDataLoader / README.md
Vishwas1's picture
FINAL FIX: Ultra-minimal gr.Interface version to resolve all JSON schema errors
017c783 verified
---
title: Salesforce Data Loader
emoji: πŸš€
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: 4.20.0
app_file: app.py
pinned: false
license: mit
---
# πŸš€ Salesforce Data Loader
A powerful, user-friendly web application for uploading and downloading data from Salesforce. Built with Gradio and designed for easy bulk data operations.
## ✨ Features
### πŸ” Secure Authentication
- Connect to Salesforce production or sandbox environments
- Secure credential handling with username, password, and security token
- Real-time connection status feedback
### πŸ“€ Data Upload
- **File Support**: Upload CSV and Excel files (.csv, .xlsx, .xls)
- **Bulk Operations**:
- **Insert**: Add new records
- **Update**: Modify existing records
- **Upsert**: Insert or update based on external ID
- **Object Support**: Works with common Salesforce objects (Account, Contact, Lead, Opportunity, Case, etc.)
- **Field Mapping**: Automatic field detection and validation
- **Results Tracking**: Download detailed results with success/error reports
### πŸ“₯ Data Export
- Export data from any accessible Salesforce object
- Select specific fields to export
- Configurable record limits (100-10,000 records)
- Download as CSV format
- SOQL query generation
### πŸ›‘οΈ Error Handling
- Comprehensive error reporting
- Field validation and type checking
- Bulk operation result tracking
- Detailed logging for debugging
## πŸš€ How to Use
### 1. Connect to Salesforce
1. Navigate to the **πŸ” Connection** tab
2. Enter your Salesforce credentials:
- **Username**: Your Salesforce email
- **Password**: Your Salesforce password
- **Security Token**: Get this from Salesforce Setup β†’ Personal Information β†’ Reset Security Token
3. Check "Sandbox Environment" if connecting to a sandbox
4. Click "πŸ”— Connect to Salesforce"
### 2. Upload Data
1. Go to the **πŸ“€ Upload Data** tab (appears after successful connection)
2. Upload your CSV or Excel file
3. Select the target Salesforce object
4. Choose operation type:
- **Insert**: For new records
- **Update**: For existing records (requires record IDs)
- **Upsert**: For insert/update based on external ID
5. Click "πŸ“€ Upload Data"
6. Download the results file to see detailed operation results
### 3. Export Data
1. Go to the **πŸ“₯ Export Data** tab
2. Select the Salesforce object to export
3. Choose specific fields or leave empty for default fields
4. Set the record limit (max 10,000)
5. Click "πŸ“₯ Export Data"
6. Download the exported CSV file
## πŸ“‹ Supported Salesforce Objects
- **Account** - Companies and organizations
- **Contact** - Individual people
- **Lead** - Potential customers
- **Opportunity** - Sales deals
- **Case** - Customer service cases
- **Campaign** - Marketing campaigns
- **User** - Salesforce users
- **Product2** - Products and services
*Note: The application automatically detects which objects you have access to based on your Salesforce permissions.*
## πŸ”§ Technical Requirements
### For Users
- Valid Salesforce credentials (username, password, security token)
- CSV or Excel files for data upload
- Modern web browser
### For Developers
- Python 3.8+
- Required packages (see requirements.txt):
- gradio==4.32.0
- simple-salesforce==1.12.6
- pandas==2.1.4
- openpyxl==3.1.2
- xlsxwriter==3.1.9
- python-dotenv==1.0.0
- requests==2.31.0
- numpy==1.24.3
## πŸ”’ Security & Privacy
- **No Data Storage**: Your Salesforce credentials and data are not stored on our servers
- **Secure Connections**: All API calls use HTTPS encryption
- **Session-Based**: Connections are only maintained during your browser session
- **Local Processing**: File processing happens in real-time without permanent storage
## 🚨 Important Notes
1. **Security Token**: If you've never used the security token, reset it in Salesforce Setup
2. **API Limits**: Be mindful of your Salesforce API call limits
3. **Field Mapping**: Ensure your CSV/Excel column names match Salesforce field names
4. **Required Fields**: Make sure all required Salesforce fields are included in your data
5. **Data Validation**: Review your data before upload to avoid errors
## πŸ› οΈ Local Development
To run this application locally:
```bash
# Clone the repository
git clone <your-repo-url>
cd salesforce-data-loader
# Install dependencies
pip install -r requirements.txt
# Run the application
python app.py
```
The application will be available at `http://localhost:7860`
## 🀝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## πŸ“„ License
This project is licensed under the MIT License - see the LICENSE file for details.
## πŸ†˜ Support
If you encounter any issues:
1. Check your Salesforce credentials and permissions
2. Verify your security token is current
3. Ensure your data format matches Salesforce field requirements
4. Review the error messages in the results download
---
**Built with ❀️ using Gradio and Simple-Salesforce**