Dynamics Dataverse API Library - Contact Management
Dynamics Customer Insights - Journeys - Dataverse
This library provides a set of functions to interact with Microsoft Dataverse (formerly known as Common Data Service) using the Dynamics 365 REST API. It includes functionalities for authentication, searching contacts, adding contacts, and updating contacts.
Installation
To use this library, you need to have requests
and json
modules installed. You can install requests
using pip:
pip install requests
Now you need to install the Dynamics library:
pip install dynamicscontacts
Usage
Import the library
from dynamics import contacts
Authentication - Return Access Token
This function authenticates and returns an access token required for accessing Dataverse.
tenant_id = 'tenant_id'
client_id = 'client_id'
client_secret = 'client_secret'
tenant_name = 'tenant_name'
crm_url = f"https://{tenant_name}.crm4.dynamics.com/"
access_token = contacts.accessToken(tenant_id, client_id, client_secret, crm_url)
Now if the access_token is generated successfully you may proceed, otherwise make sure you setup the environment correctly.
You may need to go to this reference.
Search Contact in Dynamics
This function searches for a contact in Dataverse based on the provided search criteria.
search_params = {
"firstname": "fname",
"lastname": "lname",
"emailaddress1": "email"
}
return_fields = "firstname,lastname,emailaddress1,mobilephone"
crm_contacts = contacts.search_contacts(crm_url, access_token, search_params, return_fields)
print(contacts)
Add Contact to Dynamics
This function adds a new contact to Dataverse.
contact_data = {
"firstname": "fname",
"lastname": "lname",
"birthdate": "%Y-%m-%d",
"emailaddress1": "email",
"mobilephone": "12345678"
}
add_crm_contact = contacts.add_contact(contact_data, crm_url, access_token)
If you want to know the fields that you can add to Dynamics, please check this reference.
Update Contacts in Dynamics
This function updates an existing contact in Dataverse based on the provided contact ID and update data.
update_data = {
"firstname": "fname",
"lastname": "lname"
}
contact_id= "contactid"
updated_crm_contact = contacts.update_contact(access_token, contact_id, update_data, crm_url)
Delete Contacts in Dynamics
This function Deletes an existing contact in Dataverse based on the provided contact ID. You need to make sure that you have the proper permissions and that there are not dependent records connected to this contact.
contact_id = ''
deleted = contacts.delete_contact(crm_url, access_token, contact_id)
if deleted:
print("Contact deleted successfully")
else:
print("Error deleting contact")
Contributing
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
License
This project is licensed under the Apache License. See the LICENSE file for details.
Acknowledgements
- Microsoft Dynamics 365 REST API
- Medium Article on Accessing Microsoft Dynamics 365 REST API using Python
Final note
I'd like to express my gratitude to the enchanting city of Tartu, Estonia, where I spent a delightful vacation and crafted this code.