API RU
Early access. API keys are issued on request. How to get a key

A lead has four state fields. status tells you where the lead is in the campaign. delivery_state and automation_state tell you what is happening with sending. reason explains why the sequence is waiting.

#How to read the states

  • status: the outcome of the lead's participation in the campaign. It changes rarely: messaged, replied, opted out.
  • delivery_state: what is happening to the next unsent message in the sequence. If there is none, it describes the last sent message.
  • automation_state: whether the sequence is running for this lead.
  • reason: why the sequence is waiting and, when known, when the next attempt is expected.

If there is not enough data, or sources contradict each other, the API returns unknown instead of guessing. This is a normal state, not an error.

#Lead status

statusMeaning
newThe lead was added to the campaign. No messages yet.
contactedThe first message was sent. No reply yet.
completedThe sequence finished without a reply.
repliedThe lead replied.
blockedThis contact can't be messaged, or we chose not to. For example, the recipient doesn't exist, doesn't accept messages, was already messaged, or is on the stop list.
failedSending failed.
suspendedWork with the lead is temporarily paused, for example while the sender account is resting.
deletedThe lead was removed from the campaign.
opted_outThe lead asked not to be messaged again.
unknownThe status could not be determined.

#Delivery state

delivery_stateMeaningNow
queuedThe message is queued for sending.Returned
heldSending is held until someone makes a decision in Meliora.Returned
sentSending is confirmed. No further messages are expected, or they are not scheduled yet.Returned
unknownThe outcome is unknown. For example, the send attempt was not confirmed or there is not enough data.Returned
waiting_queueThe next message is expected but not queued yet.Not returned yet
failedSending failed permanently and no retry is scheduled.Not returned yet

unknown does not mean failure. Don't resend a message to the lead on your own just because you got unknown: the message may have been delivered.

#Sequence state

automation_stateMeaningNow
runningThe sequence is running: the campaign is active and sending is allowed. The sending window, the daily quota and Telegram pauses only delay the next message.Returned
pausedThe campaign is paused, not launched yet, or stopped because of the subscription.Returned
heldThe sequence is held until someone makes a decision in Meliora.Returned
stoppedThe sequence is stopped: the lead replied, opted out or was stopped, or the campaign is stopped or archived.Returned
unknownThe state could not be determined.Returned
completedAll steps of the sequence are done.Not returned yet

For leads with no message currently scheduled, such as leads who replied or finished the sequence, automation_state often comes back as unknown for now. Check status for the outcome.

#Wait reason

Both leads and campaigns have a reason object:

JSON
{
  "reason_code": "telegram_wait",
  "reason_observed_at": "2026-10-27T08:41:07.000Z",
  "next_attempt_at": "2026-10-27T09:26:00.000Z",
  "requires_customer_action": false
}
reason_codeMeaningNow
noneThe sequence is not waiting for anything.Returned
daily_limitThe sender account has used up its daily quota.Returned
queue_pendingThe message is waiting its turn to be sent.Returned
telegram_waitTelegram asked the account to wait before sending again.Returned
account_unavailableThe sender account is unavailable.Returned
account_restrictedTelegram restricted the sender account.Returned
campaign_pausedThe campaign is paused or not launched yet.Returned
subscription_inactiveThe subscription is inactive or credits ran out.Returned
manual_holdSending is held until someone makes a decision in Meliora.Returned
automation_stoppedThe sequence is stopped.Returned
unknownThe reason is unknown.Returned
schedule_windowWaiting for the sending window set in the campaign schedule.Not returned yet
service_unavailableThe reason could not be read right now.Not returned yet
  • next_attempt_at is set only when the time is known. Otherwise it is null.
  • requires_customer_action: true means the sequence won't continue until someone acts in Meliora, for example launches the campaign or renews the subscription.
  • API rate limits (a 429 response) don't affect reason. They limit your requests, not message sending.

#Campaign status

statusMeaning
draftDraft.
scheduledLaunch is scheduled.
launchingThe campaign is launching.
activeThe campaign is running.
pausedPaused.
paused_no_creditsPaused: out of credits.
stoppedStopped.
completedCompleted.
archivedArchived.
failedLaunch or run error.
unknownThe status could not be determined.

#Timestamps

  • first_message_sent_at: when the first message was sent. If sending is not confirmed, the field is null, even when the status is contacted.
  • first_reply_at: when the first reply arrived.
  • created_at: when the lead was added to the campaign. It never changes.
  • All timestamps are in UTC with milliseconds, for example 2026-10-26T07:30:00.000Z.
  • observed_at: when the server read the data for this response. It is not the time the lead last changed.