Alerts

Import the alerts resource module and instantiate the client

[ ]:
from peak.resources import alerts

alert_client: alerts.Alert = alerts.get_client()

List all existing email(s) and iterate over them

[ ]:
email_list_iterator = alert_client.list_emails()
email_list_iterated = next(email_list_iterator)

"""
The list would be a dictionary with the following structure:

{
  "emailCount": 1,
  "emails": [
    {
      "createdAt": "2020-01-01T00:00:00.000Z",
      "createdBy": "someone@peak.ai",
      "id": 1,
      "status": "Delivered",
      "subject": "Hello from SDK!",
      "templateName": "your_template_name",
    }
  ],
  "pageCount": 1,
  "pageNumber": 1,
  "pageSize": 25
}

"""

Sending a new email

Attachments

  • You can send upto 3 attachments per email.

  • In the send_email function, pass the name of the files that you want to send as attachment. If a folder is passed as attachment, a zip is created with its content and that is sent.

  • Only the following file types are supported - .pdf, .docx, .doc, .csv, .txt, .xlsx, .xls, .zip.

[ ]:
"""
Consider the HTML template:

<html>
<head>
    <title>Peak Email</title>
</head>
<body>
    <h1>Hello {{name}}!</h1>
    <p>Thank you for your interest in {{company}}.</p>
    <p>Best regards,</p>
    <p>Your friends at Peak</p>
</body>
</html>

The templateParameters should be a dictionary with the keys matching the placeholders in the template.
"""

body = {
    "recipients": ["person1@peak.ai"],
    "cc": ["person2@peak.ai"],
    "bcc": ["person3@peak.ai"],
    "subject": "Hello from SDK!",
    "templateName": "your_template_name",
    "templateParameters": {
        "name": "John Doe",
        "company": "Peak",
    },
}

response = alert_client.send_email(body=body, attachments=["output"])

Describe an existing email

[ ]:
email_record = alert_client.describe_email(email_id=response["emailId"])

"""
The email_record will be a dictionary with the following structure:

{
  "createdAt": "2020-01-01T00:00:00.000Z",
  "createdBy": "someone@peak.ai",
  "deliveredAt": "2024-01-01T00:00:01.000Z",
  "id": 1,
  "recipients": {
    "cc": [],
    "to": ["person1@peak.ai"],
    "bcc": []
  },
  "status": "Delivered",
  "statusDetails": [
    {
      "email": "person1@peak.ai",
      "status": "Delivered",
      "description": "The email was successfully delivered."
    }
  ],
  "subject": "Hello from SDK!",
  "templateName": "your_template_name"
}
"""

List all existing template(s) and iterate over them

[ ]:
templatete_list_iterator = alert_client.list_templates()
template_list_iterated = next(templatete_list_iterator)

"""
The list would be a dictionary with the following structure:

{
    "templateCount": 1,
    "templates": [
        {
            "id": 1,
            "createdAt": "2021-09-01T12:00:00Z",
            "createdBy": "platform@peak.ai",
            "name": "test_template",
            "scope": "custom"
        }
    ],
    "pageCount": 1,
    "pageNumber": 1,
    "pageSize": 25
}

"""

Describe an existing template

[ ]:
template_details = alert_client.describe_template(template_name=response["templateName"])

"""
The email_record will be a dictionary with the following structure:

{
    "id": 1,
    "createdAt": "2021-09-01T12:00:00Z",
    "createdBy": "platform@peak.ai",
    "name": "test_template",
    "subject": "Important Account Update Information",
    "body": "<h1>Hello</h1><p>Your account has been updated.</p>",
    "scope": "custom"
}

"""