Emma API Documentation

Touchpoints

With these endpoints, you can create touchpoint types and view information about specific touchpoint types already created in your account.

POST /#account_id/touchpoints

Create a touchpoint type.

Parameters:
  • type_name (string) – Required. The type of the touchpoint.
  • display_name (string) – Required. A name for displaying the touchpoint in the UI.
Returns:

Information for the new touchpoint type.

Raises: Http400 if no display name or type name are provided.

Sample Response [showhide]
    POST /100/touchpoints
    {
        "account_id": 100,
        "created_at": "@D:2025-11-24T10:23:10",
        "display_name": "Visited Website",
        "type_name": "visited_website",
        "touchpoint_type_id": 300
    }

GET /#account_id/touchpoints

Get a list of all touchpoint types created for an account.

Returns:

A list of touchpoint types created in the specified account.

Sample Response [showhide]
    GET /100/touchpoints
    [
        {
            "account_id": 100,
            "created_at": "@D:2025-11-24T10:23:10",
            "display_name": "Visited Website",
            "type_name": "visited_website",
            "touchpoint_type_id": 300
        },
        {
            "account_id": 100,
            "created_at": "@D:2025-11-25T10:32:44",
            "display_name": "Purchased Tickets",
            "type_name": "purchased_tickets",
            "touchpoint_type_id": 200
        }
    ]

GET /#account_id/touchpoints/#touchpoint_type_id

Get a specific touchpoint type.

Returns: Information for the specific touchpoint type.
Raises: Http404 if no touchpoint type with the specified ID is found.

Sample Response [showhide]
GET /100/touchpoints/200
{
    "account_id": 100,
    "created_at": "@D:2025-11-25T10:32:44",
    "display_name": "New Purchased Tickets",
    "type_name": "new_purchased_tickets",
    "touchpoint_type_id": 200
}

PUT /#account_id/touchpoints/#touchpoint_type_id

Update a specific touchpoint type.

Parameters:
  • type_name (string) – Required. The type of the touchpoint.
  • display_name (string) – Required. A name for displaying the touchpoint in the UI.
Returns: Information for the updated touchpoint type.
Raises:
  • Http404 if no touchpoint type with the specified ID is found.
  • Http400 if the touchpoint type already exists.

Sample Response [showhide]
    PUT /100/touchpoints/200
    {
        "account_id": 100,
        "created_at": "@D:2025-11-25T10:32:44",
        "display_name": "Purchased Tickets",
        "type_name": "purchased_tickets",
        "touchpoint_type_id": 200
    }

DELETE /#account_id/touchpoints/#touchpoint_type_id

Delete a specific touchpoint type. This will also delete all touchpoints of this touchpoint type. This action is not reversable.

With these endpoints, you can create touchpoints and view information about specific member's touchpoints.

POST /#account_id/touchpoints/members

Create up to 10 touchpoints.

Parameters:
  • touchpoints (array of JSON objects) – Required. A list of touchpoint JSON objects.
    • attributes (JSON object) – A generic JSON object that contains additional attributes about the touchpoint.
    • email (string) – Required if member_id is not present. The member email.
    • member_id (integer) – Required if email is not present. The member ID.
    • touchpoint_type_id (integer) – Required if type_name is not present. The touchpoint type ID.
    • type_name (string) – Required if touchpoint_type_id is not present. An existing defined touchpoint type_name.
    • touchpoint_monetary_value (number) – A monetary value associated with the touchpoint.
    • mailing_id (integer) – A mailing ID to associate with the touchpoint.
    • touchpoint_timestamp (datetime) – Timestamp of the touchpoint.
Returns:

Information for the new touchpoints.

Raises: Http400 if no touchpoints are provided.

Sample Response [showhide]
    POST /100/touchpoints/members
    [
        {
            "account_id": 100,
            "attributes": null,
            "touchpoint_timestamp": "@D:2025-12-02T11:23:47",
            "touchpoint_id": 1,
            "touchpoint_type_id": 300,
            "touchpoint_monetary_value": 8.0,
            "inserted_at": "@D:2025-12-02T11:23:47"
            "mailing_id": null,
            "member_id": 555,
        },
        {
            "account_id": 100,
            "attributes": null,
            "touchpoint_timestamp": "@D:2025-12-02T11:23:47",
            "touchpoint_id": 1,
            "touchpoint_type_id": 300,
            "touchpoint_monetary_value": 2.0,
            "inserted_at": "@D:2025-12-02T11:23:47"
            "mailing_id": null,
            "member_id": 444,
        }
    ]

GET /#account_id/touchpoints/members/#member_id

Get a list of all touchpoints for a specific member.

Returns:

Touchpoints for a specific member.

Raises: Http404 if no member with the specified ID is found.

Sample Response [showhide]
    GET /100/touchpoints/members/555
    [
        {
            "account_id": 100,
            "touchpoint_timestamp": "@D:2025-12-02T11:23:47",
            "touchpoint_type_id": 300,
            "touchpoint_monetary_value": 8.0,
            "inserted_at": "@D:2025-12-02T11:23:47"
            "mailing_id": null,
            "member_id": 444,
        },
        {
            "account_id": 100,
            "touchpoint_timestamp": "@D:2025-12-02T11:23:47",
            "touchpoint_type_id": 400,
            "touchpoint_monetary_value": 2.0,
            "inserted_at": "@D:2025-12-02T11:23:47"
            "mailing_id": null,
            "member_id": 444,
        }
    ]

GET /#account_id/touchpoints/members/touchpoints/#touchpoint_id

Get a specific touchpoint.

Returns: Information for the specific touchpoint.
Raises: Http404 if no touchpoint with the specified ID is found.

Sample Response [showhide]
GET /100/touchpoints/members/touchpoints/200
{
    "account_id": 100,
    "touchpoint_timestamp": "@D:2025-12-02T11:23:47",
    "touchpoint_type_id": 300,
    "touchpoint_monetary_value": 8.0,
    "inserted_at": "@D:2025-12-02T11:23:47"
    "mailing_id": null,
    "member_id": 444,
}

DELETE /#account_id/touchpoints/members/touchpoints/#touchpoint_id

Delete a specific touchpoint. This action is not reversable.

Related Topics

Interested in Emma?

Emma's email marketing makes communicating simple and stylish. Get started today.