Actions Data Model

Our Actions data model aggregates donor data across all of our integrated CRM partners into a single unified model.

Momentum only extracts action data from customer CRM’s that go to populate this model. No other fields are ingested by Momentum.

If you have any questions or concerns about what data Momentum takes in and how, please contact your customer success manager.

{
  "CrmActionCategory": {
    "CALL": "call",
    "MEETING": "meeting",
    "MESSAGE": "message",
    "LETTER": "letter",
    "EMAIL": "email",
    "PHONE_MESSAGE": "phone_message",
    "TASK": "task",
    "OTHER": "other"
  },

  "CrmActionInitiator": {
    "INBOUND": "inbound",
    "OUTBOUND": "outbound",
    "MUTUAL": "mutual",
    "NOT_APPLICABLE": "not_applicable",
    "UNKNOWN": "unknown"
  },

  "CrmAction": {
    "donor": {
      "type": "ForeignKey",
      "related_model": "CrmDonor",
      "null": true,
      "related_name": "actions",
      "related_query_name": "action"
    },

    "title": {
      "type": "CharField",
      "max_length": 255,
      "blank": true,
      "default": ""
    },

    "description": {
      "type": "TextField",
      "blank": true,
      "default": ""
    },

    "category": {
      "type": "EnumField",
      "enum_options": [
        "CALL",
        "MEETING",
        "MESSAGE",
        "LETTER",
        "EMAIL",
        "PHONE_MESSAGE",
        "TASK",
        "OTHER"
      ],
      "max_length": 127,
      "blank": true,
      "null": true
    },

    "initiator": {
      "type": "EnumField",
      "enum_options": [
        "INBOUND",
        "OUTBOUND",
        "MUTUAL",
        "NOT_APPLICABLE",
        "UNKNOWN"
      ],
      "max_length": 127,
      "blank": true,
      "null": true
    },

    "is_completed": {
      "type": "BooleanField",
      "default": false
    },

    "completed_date": {
      "type": "DateTimeField",
      "null": true,
      "blank": true
    },

    "action_created_at": {
      "type": "DateTimeField",
      "null": true,
      "default": "current timestamp"
    },

    "action_updated_at": {
      "type": "DateTimeField",
      "null": true,
      "default": "current timestamp"
    },

    "should_update_donor_stats": true,

    "get_donor_id_for_stats_update": {
      "type": "Method",
      "description": "Returns the donor ID used for updating statistics"
    },

    "_anonymize": {
      "type": "Method",
      "parameters": [
        {
          "name": "fake",
          "type": "Faker",
          "description": "An instance of Faker"
        }
      ],
      "description": "Anonymizes the description field using the provided Faker instance"
    },

    "__str__": {
      "type": "Method",
      "description": "Returns a string representation of the CrmAction object"
    },

    "Meta": {
      "ordering": ["-action_created_at"],
      "description": "Meta class for CrmAction"
    }
  },

  "CrmActionEmail": {
    "org": {
      "type": "ForeignKey",
      "related_model": "Org",
      "on_delete": "PROTECT"
    },

    "action": {
      "type": "ForeignKey",
      "related_model": "CrmAction",
      "on_delete": "CASCADE",
      "related_name": "email",
      "related_query_name": "email"
    },

    "nylas_id": {
      "type": "CharField",
      "max_length": 255
    },

    "nylas_account_id": {
      "type": "CharField",
      "max_length": 255
    },

    "nylas_thread_id": {
      "type": "CharField",
      "max_length": 255
    },

    "from_email": {
      "type": "EmailField",
      "blank": true,
      "default": ""
    },

    "bcc": {
      "type": "ArrayField",
      "subtype": "EmailField",
      "blank": true,
      "default": []
    },

    "cc": {
      "type": "ArrayField",
      "subtype": "EmailField",
      "blank": true,
      "default": []
    },

    "to": {
      "type": "ArrayField",
      "subtype": "EmailField",
      "blank": true,
      "default": []
    },

    "subject": {
      "type": "CharField",
      "max_length": 255,
      "blank": true
    },

    "snippet": {
      "type": "TextField",
      "blank": true,
      "help_text": "A plaintext crop of the body_html"
    },

    "body_html": {
      "type": "TextField",
      "blank": true
    },

    "received_at": {
      "type": "DateTimeField",
      "default": "current timestamp",
      "help_text": "When was this email detected by our Gmail/Outlook sync, ie when MGO/donor sent it."
    },

    "__str__": {
      "type": "Method",
      "description": "Returns a string representation of the CrmActionEmail object"
    },

    "Meta": {
      "ordering": ["-received_at"]
    }
  }
}

Last updated