# Inxmail

Source: https://gokarla.io/docs/guides/notify/integrations/inxmail

# Inxmail

## Overview

Inxmail is a professional email marketing platform that can integrate with Karla to trigger automated email workflows based on delivery events throughout the customer journey. This guide explains how to configure Inxmail templates to receive and process Karla events.

## How It Works

1. **Event Generation**: Karla generates events throughout the delivery journey
2. **Event Transmission**: When events occur, Karla sends them to Inxmail using your configured integration (events have to be created in Inxmail first)
3. **Template Matching**: Inxmail matches incoming events to templates based on the event group
4. **Email Workflow**: Your configured email workflows are triggered automatically

## Prerequisites

- Active Inxmail account with API access
- Karla integration credentials (configure your Inxmail integration in [portal](https://portal.gokarla.io))
- Understanding of [Karla Events](/docs/platform/events/overview)

## Template Configuration

### Base Template Structure

Every Karla event template in Inxmail must follow this XML structure:

```xml title="Base Event Template"
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<event xmlns="http://www.inxmail.com/xcom/eventtype">
    <eventtype>
        <id>{event_group}</id>
    </eventtype>
    <customermapping/>
    <customeremail>Customer.Email</customeremail>
    <phgroup>
        <id>Order</id>
        <placeholder>
            <id>OrderNumber</id>
            <datatype-string/>
        </placeholder>
         <placeholder>
            <id>OrderNumberUrlEncoded</id>
            <datatype-string/>
        </placeholder>
        <placeholder>
            <id>OrderName</id>
            <datatype-string/>
        </placeholder>
        <placeholder>
            <id>TotalOrderPrice</id>
            <datatype-double/>
        </placeholder>
         <placeholder>
            <id>OrderCurrency</id>
            <datatype-string/>
        </placeholder>
        <placeholder>
            <id>OrderStatusUrl</id>
            <datatype-string/>
        </placeholder>
        <placeholder>
            <id>ExternalId</id>
            <datatype-string/>
        </placeholder>
    </phgroup>
     <phgroup>
        <id>Customer</id>
        <placeholder>
            <id>Email</id>
            <datatype-string/>
        </placeholder>
         <placeholder>
            <id>Name</id>
            <datatype-string/>
        </placeholder>
          <placeholder>
            <id>Country</id>
            <datatype-string/>
        </placeholder>
        <placeholder>
            <id>ZipCode</id>
            <datatype-string/>
        </placeholder>
         <placeholder>
            <id>ShippingAddress</id>
            <datatype-string/>
        </placeholder>
        <placeholder>
            <id>ExternalCustomerId</id>
            <datatype-string/>
        </placeholder>
    </phgroup>
    <phgroup>
        <id>Shipment</id>
        <placeholder>
            <id>TrackingNumber</id>
            <datatype-string/>
        </placeholder>
        <placeholder>
            <id>TrackingUrl</id>
            <datatype-string/>
        </placeholder>
        <placeholder>
            <id>CarrierName</id>
            <datatype-string/>
        </placeholder>
    </phgroup>
</event>
```

### Important: Event Group Configuration

The `{event_group}` placeholder in the template must be replaced with the specific event group you want to listen to. Each event group requires its own template in Inxmail.

## Available Event Groups

Karla provides the following event groups that you can configure templates for:

### Delivery Events

| Event Group                           | Description                    | Use Case                                    |
| ------------------------------------- | ------------------------------ | ------------------------------------------- |
| `shipment_delivered`                  | Package successfully delivered | Send delivery confirmation, request reviews |
| `shipment_delivered_all_events`       | All delivery variations        | Comprehensive delivery tracking             |
| `shipment_delivered_to_neighbour`     | Left with neighbor             | Notify about neighbor delivery              |
| `shipment_delivered_to_letterbox`     | Left in letterbox              | Confirm letterbox delivery                  |
| `shipment_delivered_to_parcel_shop`   | Ready at pickup location       | Pickup reminder with location details       |
| `shipment_delivered_to_parcel_locker` | In parcel locker               | Locker code and pickup instructions         |
| `shipment_picked_up`                  | Customer collected package     | Confirm successful collection               |

### Transit Events

| Event Group                 | Description                      | Use Case                                 |
| --------------------------- | -------------------------------- | ---------------------------------------- |
| `shipment_pre_transit`      | Order processed, awaiting pickup | Order confirmation, packing notification |
| `shipment_in_transit`       | Package in carrier network       | Shipping updates, ETA communication      |
| `shipment_out_for_delivery` | Out for final delivery           | Same-day delivery alerts                 |

### Issue Events

| Event Group                                         | Description                   | Use Case                      |
| --------------------------------------------------- | ----------------------------- | ----------------------------- |
| `shipment_carrier_delay`                            | Delays in transit             | Proactive delay notifications |
| `shipment_damaged`                                  | Package damage reported       | Damage incident communication |
| `shipment_delivery_failed`                          | Delivery attempt unsuccessful | Failed delivery instructions  |
| `shipment_delivery_failed_address_issue`            | Address problems              | Request address clarification |
| `shipment_delivery_failed_forwarded_to_parcel_shop` | Redirected to pickup          | New pickup location info      |
| `shipment_delivery_second_attempt`                  | Redelivery scheduled          | Second attempt notification   |

### Return Events

| Event Group                            | Description                | Use Case               |
| -------------------------------------- | -------------------------- | ---------------------- |
| `shipment_not_picked_up_then_returned` | Not collected, returning   | Missed pickup alerts   |
| `shipment_refused_then_returned`       | Customer refused delivery  | Refusal follow-up      |
| `shipment_failed_returned`             | Package returned to sender | Return process updates |

### Customer Service Events

| Event Group     | Description              | Use Case             |
| --------------- | ------------------------ | -------------------- |
| `claim_created` | Customer submitted claim | Claim acknowledgment |
| `claim_updated` | Claim status changed     | Resolution updates   |

### Special Events

| Event Group                                | Description              | Use Case                         |
| ------------------------------------------ | ------------------------ | -------------------------------- |
| `shipment_lost`                            | Package lost in transit  | Loss notification and next steps |
| `shipment_delayed_due_to_customer_request` | Customer requested delay | Confirmation of delay request    |

## Configuration Steps

### 1. Create Templates for Each Event Group

For each event group you want to monitor, create a separate template in Inxmail:

```xml title="Example: Delivery Confirmation Template"
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<event xmlns="http://www.inxmail.com/xcom/eventtype">
    <eventtype>
        <id>shipment_delivered</id>
    </eventtype>
    <!-- Rest of template structure -->
</event>
```

```xml title="Example: Failed Delivery Template"
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<event xmlns="http://www.inxmail.com/xcom/eventtype">
    <eventtype>
        <id>shipment_delivery_failed</id>
    </eventtype>
    <!-- Rest of template structure -->
</event>
```

:::note
You can configure one event with the template and then duplicate it later with a different event name.
:::

### 2. Configure Email Workflows

For each template, set up corresponding email workflows:

1. **Immediate Notifications**: For time-sensitive events (out for delivery, failed delivery)
2. **Delayed Communications**: For follow-ups (review requests post-delivery)
3. **Conditional Logic**: Different emails based on delivery method or location

### 3. Use Placeholder Data

In your email templates, use the placeholder data:

- `{{Order.OrderNumber}}` - Order reference
- `{{Order.TotalOrderPrice}}` - Order value
- `{{Customer.Name}}` - Recipient name
- `{{Customer.ZipCode}}` - Shipping address postal code
- `{{Shipment.TrackingUrl}}` - Direct tracking link
- `{{Shipment.CarrierName}}` - Carrier information

Check the template variables for more options.

## Best Practices

### 1. Event Selection Strategy

- **Start Small**: Begin with critical events (delivered, failed delivery)
- **Avoid Duplication**: Don't listen to overlapping event groups
- **Consider Frequency**: High-frequency events may need rate limiting

### 2. Email Content Guidelines

- **Be Specific**: Reference the exact delivery status
- **Include CTAs**: Add tracking links and next steps
- **Personalize**: Use customer and order data
- **Mobile-Optimize**: Most tracking emails are read on mobile

### 3. Testing Recommendations

1. Test each event group template separately
2. Verify placeholder data populates correctly
3. Check email rendering across devices
4. Monitor delivery rates and engagement

## Common Use Cases

### Post-Delivery Review Request

**Event Group**: `shipment_delivered`
**Timing**: 2-3 days after delivery
**Content**: Thank you message + review request

### Pickup Reminder

**Event Group**: `shipment_delivered_to_parcel_shop`
**Timing**: Immediate + daily reminders
**Content**: Pickup location, hours, deadline

### Delivery Issue Resolution

**Event Group**: `shipment_delivery_failed`
**Timing**: Immediate
**Content**: Failed reason, next steps, support link

### Proactive Delay Communication

**Event Group**: `shipment_carrier_delay`
**Timing**: As soon as delay detected
**Content**: New ETA, apology, compensation if applicable

## Troubleshooting

### Events Not Triggering Emails

1. Verify event group ID matches exactly (case-sensitive)
2. Check integration credentials are active
3. Confirm template is published in Inxmail
4. Test with Karla test events

### Missing Data in Emails

1. Ensure all placeholders match the template structure
2. Check data type definitions (string vs double)
3. Verify customer email field mapping

### Email Delivery Issues

1. Check Inxmail sending logs
2. Verify customer email addresses
3. Review spam folder placement
4. Check domain authentication (SPF/DKIM)

## Support

- **Karla Integration Support**: support@gokarla.io
- **Inxmail Technical Support**: Refer to your Inxmail account manager
- **Technical Documentation**: [Karla Events](/docs/platform/events/overview)

## Next Steps

1. Identify which event groups align with your communication strategy
2. Create templates for your priority events
3. Design and test email workflows
4. Monitor performance and optimize
