Example usage

To use salesforce_tools in a project:

import salesforce_tools
from salesforce_tools.salesforce_tools import SalesforceTools
import os

print(salesforce_tools.__version__)
0.1.0
# Authenticate with your credentials here
user = 'crastello.py@gmail.com'
pw = os.environ.get('SFDC_PASS')
token = os.environ.get('SFDC_TOKEN')

sf = SalesforceTools(username=user,password=pw,security_token=token)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[2], line 6
      3 pw = os.environ.get('SFDC_PASS')
      4 token = os.environ.get('SFDC_TOKEN')
----> 6 sf = SalesforceTools(username=user,password=pw,security_token=token)

File ~/checkouts/readthedocs.org/user_builds/salesforce-tools/checkouts/latest/src/salesforce_tools/salesforce_tools.py:42, in SalesforceTools.__init__(self, username, password, security_token, domain)
     32 def __init__(self, username: str, password: str, security_token: str, domain: str = 'login'):
     33     """
     34     Initialize the SalesforceTools with authentication parameters.
     35     
   (...)     40         domain: Salesforce domain (default: 'login')
     41     """
---> 42     self.sf = Salesforce(username=username, password=password, security_token=security_token, domain=domain)
     43     self.opportunities = None

File ~/checkouts/readthedocs.org/user_builds/salesforce-tools/envs/latest/lib/python3.11/site-packages/simple_salesforce/api.py:250, in Salesforce.__init__(self, username, password, security_token, session_id, instance, instance_url, organizationId, version, proxies, session, client_id, domain, consumer_key, consumer_secret, privatekey_file, privatekey, parse_float, object_pairs_hook)
    248     self._refresh_session()
    249 else:
--> 250     raise TypeError(
    251         'You must provide login information or an instance and token'
    252         )
    254 self.auth_site = f'https://{self.domain}.salesforce.com'
    256 self.headers = {
    257     'Content-Type': 'application/json',
    258     'Authorization': 'Bearer ' + self.session_id,
    259     'X-PrettyPrint': '1'
    260     }

TypeError: You must provide login information or an instance and token
### Run a SOQL Query and return result as a df

soql = '''SELECT Id, Name, CloseDate, CreatedDate FROM Opportunity LIMIT 5'''

opps = sf.sf_api_query(soql=soql, dateList=['CloseDate','CreatedDate'],tz='America/Chicago')
sf.query_opportunities(dateList=['CreatedDate','CloseDate'],tz='America/Ney York',startDate='2024-01-01',endDate='2025-01-31')
Id Name StageName Amount CloseDate CreatedDate IsWon IsClosed OwnerId Type Probability AccountId
0 006a50000004MBeAAM Opportunity for Conner5 Qualification 32400.0 2024-08-28 2024-02-10T08:26:48.000+0000 False False 005a500000039fEAAQ Existing Business 10.0 001a5000000RKZdAAO
1 006a50000004MBfAAM Opportunity for Chandler133 Perception Analysis 754640.0 2024-06-06 2024-02-10T08:26:48.000+0000 False False 005a500000039fDAAQ New Business 70.0 001a5000000RKCqAAO
2 006a50000004MBjAAM Opportunity for McDonald13 Closed Lost 240747.0 2024-01-10 2024-02-10T08:26:48.000+0000 False True 005a500000039fDAAQ New Business / Add-on 0.0 001a5000000RKYaAAO
3 006a50000004MBlAAM Opportunity for McLaughlin130 Negotiation/Review 1249000.0 2024-03-18 2024-02-10T08:26:48.000+0000 False False 005a500000039f8AAA Existing Business 90.0 001a5000000RJhTAAW
4 006a50000004MBoAAM Opportunity for Barnes141 Qualification 363400.0 2024-06-30 2024-02-10T08:26:48.000+0000 False False 005a500000039fLAAQ New Business / Add-on 10.0 001a5000000RKXNAA4
... ... ... ... ... ... ... ... ... ... ... ... ...
290 006a50000004N1UAAU Opportunity for Keller1431 Needs Analysis 2894390.0 2024-12-18 2024-02-10T08:26:48.000+0000 False False 005a500000039f9AAA New Business 20.0 001a5000000RJj5AAG
291 006a50000004N1XAAU Opportunity for Chandler1439 Needs Analysis 1648300.0 2024-10-05 2024-02-10T08:26:48.000+0000 False False 005a500000039fGAAQ Existing Business 20.0 001a5000000RJ5vAAG
292 006a50000004N1cAAE Opportunity for Marsh1806 Closed Lost 58840.0 2024-01-22 2024-02-10T08:26:48.000+0000 False True 005a500000039f3AAA New Business / Add-on 0.0 001a5000000RJhjAAG
293 006a50000004N1iAAE Opportunity for Chandler1816 Perception Analysis 470865.0 2024-06-10 2024-02-10T08:26:48.000+0000 False False 005a500000039fAAAQ New Business 70.0 001a5000000RKYXAA4
294 006a50000004N1lAAE Opportunity for Moss1820 Perception Analysis 1489210.0 2024-06-11 2024-02-10T08:26:48.000+0000 False False 005a500000039f6AAA New Business 70.0 001a5000000RKafAAG

295 rows × 12 columns

sf.query_opportunities()
Id Name StageName Amount CloseDate CreatedDate IsWon IsClosed OwnerId Type Probability AccountId
0 006a50000004MYqAAM Opportunity for Hamilton810 Needs Analysis 895290.0 2025-01-19 2024-02-10T08:26:48.000+0000 False False 005a500000039f8AAA New Business 20.0 001a5000000RKEXAA4
1 006a50000004MofAAE Opportunity for Jimenez961 Needs Analysis 449700.0 2025-01-20 2024-02-10T08:26:48.000+0000 False False 005a500000039f3AAA New Business 20.0 001a5000000RKZoAAO
2 006a50000004N1SAAU Opportunity for Flowers1427 Needs Analysis 1979000.0 2025-01-24 2024-02-10T08:26:48.000+0000 False False 005a500000039f9AAA New Business / Add-on 20.0 001a5000000RKbNAAW
3 006a50000004MovAAE Opportunity for Johnson1707 Needs Analysis 3612800.0 2025-01-25 2024-02-10T08:26:48.000+0000 False False 005a500000039fDAAQ New Business / Add-on 20.0 001a5000000RJjUAAW
4 006a50000004MCDAA2 Opportunity for Wise361 Needs Analysis 1595250.0 2025-01-26 2024-02-10T08:26:48.000+0000 False False 005a500000039f5AAA New Business 20.0 001a5000000RKXxAAO
5 006a50000004MDIAA2 Opportunity for Phelps205 Needs Analysis 53325.0 2025-01-27 2024-02-10T08:26:48.000+0000 False False 005a500000039f3AAA Existing Business 20.0 001a5000000RKbrAAG
6 006a50000004MZtAAM Opportunity for Hughes845 Needs Analysis 1405500.0 2025-02-06 2024-02-10T08:26:48.000+0000 False False 005a500000039f9AAA New Business 20.0 001a5000000RKEdAAO
7 006a50000004MoGAAU Opportunity for Barnett1692 Needs Analysis 4708010.0 2025-02-06 2024-02-10T08:26:48.000+0000 False False 005a500000039f9AAA New Business 20.0 001a5000000RJ4yAAG
8 006a50000004MohAAE Opportunity for Wade966 Needs Analysis 552000.0 2025-02-15 2024-02-10T08:26:48.000+0000 False False 005a500000039fEAAQ New Business 20.0 001a5000000RJjDAAW
9 006a50000004ME4AAM Opportunity for Pope310 Needs Analysis 3207480.0 2025-02-17 2024-02-10T08:26:48.000+0000 False False 005a500000039fLAAQ Existing Business 20.0 001a5000000RJ3gAAG