Fonix.AI / Failed delivery recovery / Practical guide

Fonix.AIby AntEngage

NDR calling automation.A reattempt with a plan.

Find out what prevented delivery and give the courier a usable next instruction. A customer agreeing to tomorrow is a request; a confirmed reattempt needs a current shipment record.

Concept illustration of a parcel, delivery pin and lavender route from a missed-delivery gate to an open doorway.

The useful outcome

A courier-confirmed next step for the right shipment.

  1. 01

    Check

    Read the latest shipment event

  2. 02

    Clarify

    Understand the delivery obstacle

  3. 03

    Request

    Submit an eligible next instruction

  4. 04

    Verify

    Confirm the courier result

A practical guide / Fonix.AI

NDR calling automation: from failed delivery to a confirmed reattempt

Workflows, exceptions and the questions to ask before deployment.

An NDR event needs a current next step

NDR calling automation helps a fulfilment team respond to a non-delivery report: contact the customer, understand the obstacle and submit an eligible instruction to the courier. The useful result is a verified delivery action attached to the correct shipment. A customer saying “try tomorrow” is a preference until the carrier accepts the request.

This workflow starts after dispatch and a failed delivery event. It differs from COD confirmation, which concerns an order before dispatch, and cart recovery, which concerns an unfinished checkout.

Fonix.AI supports business voice conversations in Indian languages. Evaluate the call together with your order, shipment and courier systems. The event feed, address-change permissions and reattempt actions must be confirmed for the actual carrier integration.

Resolve the latest shipment event

Keep the shipment reference, order reference, courier, failure reason, event time and event identifier. A single order may contain several parcels, so an order number alone is not enough to choose the affected delivery.

Read the latest carrier state before calling. The parcel may already be delivered, out for another attempt, cancelled or returning to origin. A delayed or duplicated webhook should not reopen a closed recovery case.

Treat carrier reason codes as reports to clarify rather than unquestionable descriptions of the customer's behaviour. “Customer unavailable” could reflect an actual absence, a missed telephone call or an address-access problem. The conversation should preserve both the reported reason and the customer's explanation.

Choose the event or recovery-case reference used to prevent duplicate processing. Store its current owner and whether a courier action is already pending. Calling from two teams about the same parcel can result in conflicting instructions.

Shipment timeline has failed attempt followed by delivery; a late duplicate non-delivery report is reconciled against the delivered state and does not reopen recovery.
Figure 01Resolve the authoritative shipment state using its own reference.View full size

Match the obstacle to an allowed action

Ask what prevented delivery and determine whether the courier can accept a useful next instruction. Use the carrier's actual rules for timing, address changes and remaining attempts.

Customer's responseCheckRecord
I will be available tomorrowReattempt timing and carrier acceptanceRequested date and accepted result
The building entrance is elsewhereAllowed delivery instruction fieldExact landmark or access correction
The address itself is wrongAddress-change permission and review processProposed change and reviewing owner
I received the parcel alreadyLatest delivered event or discrepancy processCustomer report and carrier evidence
I no longer want itCancellation/return policy for this shipment stageIntent and actual system decision
I cannot discuss it nowContact preference and remaining action windowOne requested callback time

Do not promise an exact delivery slot unless the carrier supplies and confirms it. “Tomorrow was requested” and “tomorrow was accepted by the courier” should be separate states in both the conversation and the record.

When a customer changes the destination, read back the requested information and use the authorised process. A conversational correction does not automatically make a new address valid for the shipment.

Verify the courier update before closing the case

A carrier action usually has at least three useful states: requested, accepted and completed. Preserve each rather than converting every successful API response into “delivery resolved”.

If the update times out, look up its result using the available action reference before retrying. The carrier may have accepted the instruction even though your application did not receive the response. Duplicate requests can overwrite an earlier instruction or reopen work.

When no automated action is available, assign the case to a fulfilment owner with the conversation context. Give the customer an accurate next step, such as “our delivery team will review the address correction”. Do not announce a reattempt booking that exists only as a staff task.

Reconcile the final carrier event later. Delivered, returning and unresolved are distinct end states. Keep the customer explanation so the team can find recurring problems with a postcode, delivery route or reason code.

Delivery-recovery evidence ladder separates customer requested reattempt, courier accepted instruction and parcel delivered, each with its own source reference.
Figure 02Keep rejected or unknown courier updates visible with an owner.View full size

A worked failed-delivery call

This fictional example assumes the carrier allows an additional attempt but does not provide a guaranteed time window.

Assistant: Hello, this is the automated delivery assistant for Birch Store. We received a failed-delivery report for your parcel. Is this a suitable time to clarify the delivery instruction?

Customer: I was there. Driver called the old number. Kal delivery chahiye, but after lunch.

Assistant: I have noted that you were available and that the contact number needs review. I can request another attempt; the courier has not guaranteed an afternoon slot. May our delivery team verify the number change?

The record preserves a disputed failure reason, a requested day, an unconfirmed time preference and an authorised review task for the number. It does not claim that an afternoon delivery is booked.

Suggested fields include shipment reference, latest carrier event, reported failure code, customer explanation, requested instruction, action reference, carrier acceptance, owner and final delivery state. These describe a workflow model rather than a published Fonix API.

Review the exceptions before scaling

SituationRequired behaviour
Stale NDR arrives after deliverySuppress the call and close the stale task
Order has multiple shipmentsIdentify the affected parcel explicitly
Courier rejects a reattemptPreserve the rejection reason and assign review
Address correction crosses a service areaUse the carrier's approval path
Customer disputes the failure codeStore both accounts and investigate the operational issue
Update result is unknownReconcile before retrying or announcing success

Test event duplication and event ordering. A delivery update followed by an older NDR should not move the parcel backwards. Where the carrier does not supply a reliable ordering field, define how your system establishes the current authoritative state.

Measure delivered shipments and preventable returns

Track eligible NDR cases, useful contacts, accepted courier actions, completed reattempts, delivered parcels and return-to-origin outcomes for the same shipment cohort. Separate unreachable customers from rejected carrier requests and incorrect addresses.

Measure time from the failure event to a useful instruction, then from carrier acceptance to delivery. Fast calls alone do not prove recovery. A comparison with similar usual-process shipments or a controlled pilot helps distinguish calling effects from changes in courier service.

Include additional fulfilment, reattempt and support costs. Review returns and cancellations alongside delivered orders so a workflow does not optimise for activity while increasing operational expense.

Bring a real carrier event to the demo

Bring an NDR payload with personal information removed, your accepted carrier actions, state-reconciliation rules and fulfilment ownership process. Ask to see a stale delivered shipment, a rejected instruction and an uncertain update result.

Request a failed-delivery workflow review to test the call and resulting carrier record. Use the calling-software guide for broader integration and retry evaluation.

Bring a real workflow

Hear the conversation.
Check the outcome.

A useful demo shows the normal path and the moment something fails. Bring the details your team works with; we will review how Fonix fits.

Your demo checklist

  • A failed-delivery event
  • Your courier reattempt rules
  • A delivered parcel with a stale event
  • An address correction needing review

Specific integrations and deployment requirements are confirmed with your team.