diff --git a/.gitignore b/.gitignore
index fe6b2ed34291ab03f55a5a57ec13dfe3954c0377..4e923ae09aa577dc6532f506509fce2cd95016a6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,7 @@
 node_modules/
 /npm-debug.log
 /.idea/
+salesforce.env
 
 # Distribution / packaging
 .Python
diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev
index 3e593bbde5cebb3ea7ee4072c344f348a999cc17..b66138df1b336ed813e02ba837613b87963dae0c 100644
--- a/docker/Dockerfile.dev
+++ b/docker/Dockerfile.dev
@@ -10,6 +10,9 @@ ENV DJANGO_SETTINGS_MODULE hypha.settings.dev
 ENV PYTHONDONTWRITEBYTECODE 1
 ENV PYTHONUNBUFFERED 1
 
+# Salesforce Integration
+ENV SALESFORCE_INTEGRATION 1
+
 # Set owner on /usr/local.
 RUN sudo chown -R circleci:circleci /usr/local
 
diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml
index d36e65f4f667101fe63c5ffe23597a2a6fd23894..9d1a01f8945118409c38548aa04b8d6e481cbd4b 100644
--- a/docker/docker-compose.yaml
+++ b/docker/docker-compose.yaml
@@ -18,6 +18,8 @@ services:
     build:
       context: ..
       dockerfile: docker/Dockerfile.dev
+    env_file: 
+      - salesforce.env
     ports:
       - 9001:9001
     volumes:
diff --git a/hypha/settings/base.py b/hypha/settings/base.py
index 55956fa8407d8afd826f96d95e2518c873f2417a..e7d3de977770667438389bd9a8065e3722387d30 100644
--- a/hypha/settings/base.py
+++ b/hypha/settings/base.py
@@ -136,6 +136,8 @@ INSTALLED_APPS = [
     'pagedown',
     'webpack_loader',
 
+    'salesforce',
+
     'django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
@@ -201,12 +203,34 @@ WSGI_APPLICATION = 'hypha.wsgi.application'
 # Database
 # https://docs.djangoproject.com/en/stable/ref/settings/#databases
 
-DATABASES = {
-    'default': dj_database_url.config(
-        conn_max_age=600,
-        default=f"postgres:///{APP_NAME}"
-    )
-}
+if 'SALESFORCE_INTEGRATION' in env and env['SALESFORCE_INTEGRATION']:
+    DATABASES = {
+        'default': dj_database_url.config(
+            conn_max_age=600,
+            default=f"postgres:///{APP_NAME}"
+        ),
+        'salesforce': {
+            'ENGINE': 'salesforce.backend',
+            'CONSUMER_KEY': env['CONSUMER_KEY'],
+            'CONSUMER_SECRET': env['CONSUMER_SECRET'],
+            'USER': env['SALESFORCE_USER'],
+            'PASSWORD': env['SALESFORCE_PASSWORD'],
+            'HOST': env['SALESFORCE_LOGIN_URL']
+        }
+    }
+
+    SALESFORCE_QUERY_TIMEOUT = (30, 30)  # (connect timeout, data timeout)
+
+    DATABASE_ROUTERS = [
+        "salesforce.router.ModelRouter"
+    ]
+else:
+    DATABASES = {
+        'default': dj_database_url.config(
+            conn_max_age=600,
+            default=f"postgres:///{APP_NAME}"
+        )
+    }
 
 
 # Cache
diff --git a/requirements.txt b/requirements.txt
index 85d1695a6ac5fcd6a696fa82cca091068767b04e..d5ef048c775800f7d1fd5ee43d369fb97b876742 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -41,3 +41,4 @@ tomd==0.1.3
 wagtail==2.9
 wagtail-cache==1.0.0
 whitenoise==5.1.0
+django-salesforce==1.0