---
# System prepended metadata

title: MongoDB Triggers

---

# MongoDB Triggers

## Names

| action number | description |
| ------------- | ----------- |
| 2 | Create
| 3 | Update
| 4 | Delete


Trigger name template: \<collectionName>\_action(?\_action)_\<event>

Example:
```entities_2_3_systemUser``` - Trigger subscribed on collection entities on actions: create, update. And handler works with system users

## Code template

```
const nodeEnv = 'uat';
const dbName = "Rake-System-UAT";
exports = async function(changeEvent) {
  const systemConfigCollection = context.services.get("UAT").db(dbName).collection("systemConfigs");
  const entitiesCollection = context.services.get("UAT").db(dbName).collection("entities");
  const [config] = await systemConfigCollection.find({ nodeEnv }).toArray();
  const [entity] = await entitiesCollection.find({ entityId: changeEvent.fullDocument.entityId }).toArray();
  const coreUrl = config.serverUrl;
  const workspaceId = config.workspaceId;
  const hash = config.hash;
  const doc = {
    systemUserId: changeEvent.fullDocument.systemUserId,
    email: changeEvent.fullDocument.email,
    firstName: entity.firstName,
    lastName: entity.lastName,
    phoneNumber: entity.phoneNumber
  };
  const systemEventId = changeEvent.operationType === 'INSERT' ? -140 : -139;
  const options = {
    url: `${coreUrl}/workspaces/${workspaceId}/system-events`,
    headers: { authorization: [hash] },
    body: JSON.stringify({ systemEventId, data: doc }),
  };
  return context.http.post(options);
};
```

## hub-spot events

### List of triggers

| systemEventIds | name | description |
| -------------- | ---- | ----------- |
| -139 | entities_3_systemUser | create system event about updating system user information in entities collection
| -140, -139 | systemUser_2_3_systemUser | create system event about updating or creating system user in systemUsers collection
| -137, -138, -141| workspaces_2_3_workspace | create system event avout updating or creating workspace in workspaces collection