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
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/stable/src/salesforce_tools/salesforce_tools.py:9, in SalesforceTools.__init__(self, username, password, security_token, domain)
8 def __init__(self, username, password, security_token, domain='login'):
----> 9 self.sf = Salesforce(username=username, password=password, security_token=security_token, domain=domain)
10 self.opportunities = None
File ~/checkouts/readthedocs.org/user_builds/salesforce-tools/envs/stable/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')
opps.head()
| Id | Name | CloseDate | CreatedDate | |
|---|---|---|---|---|
| 0 | 006a50000004MBeAAM | Opportunity for Conner5 | 2024-08-28 | 2024-02-10 02:26:48 |
| 1 | 006a50000004MBfAAM | Opportunity for Chandler133 | 2024-06-06 | 2024-02-10 02:26:48 |
| 2 | 006a50000004MBjAAM | Opportunity for McDonald13 | 2024-01-10 | 2024-02-10 02:26:48 |
| 3 | 006a50000004MBkAAM | Opportunity for Jefferson17 | 2023-09-19 | 2024-02-10 02:26:48 |
| 4 | 006a50000004MBlAAM | Opportunity for McLaughlin130 | 2024-03-18 | 2024-02-10 02:26:48 |