Twelixir (Twelixir v0.1.0) View Source

Twilio Conversation API Integration for Elixir. For more information please visit Twilio Conversations Documentation

Link to this section Summary

Functions

Creates a new conversation

Creates a participant on a conversation

Deletes a conversation

Gets all conversations

Gets multiple conversations (with pagination)

Link to this section Functions

Link to this function

create_conversation(friendly_name, attrs)

View Source

Creates a new conversation

Parameters

  • friendly_name: string
  • attrs: map (you can put any field you want for you own needs)

Examples

iex> Twelixir.create_conversation("Alvin - Sample", %{status: "active"})
%{
  "account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "attributes" => "{"status":"active"}",
  "chat_service_sid" => "CXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "date_created" => "2021-02-24T02:04:36Z",
  "date_updated" => "2021-02-24T02:04:36Z",
  "friendly_name" => "Alvin - Sample",
  "links" => %{
    "messages" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages",
    "participants" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants",
    "webhooks" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Webhooks"
  },
  "messaging_service_sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "state" => "active",
  "timers" => %{},
  "unique_name" => nil,
  "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Link to this function

create_message(conversation_sid, author, message_body, attrs)

View Source

Creates a message

Parameters

  • conversation_sid: coversation's sid
  • author: message author (:string)
  • message_body: the actual message
  • attrs: map (you can put any field you want for you own needs) - In my case this is where I monitor the message's read and unread state.

Examples

iex> Twelixir.create_message("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "Sample Author", "Hi?", %{status: "unread"})
%{
  "account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "attributes" => "{"status":"unread"}",
  "author" => "Sample Author",
  "body" => "Hi?",
  "conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "date_created" => "2021-02-25T10:28:38Z",
  "date_updated" => "2021-02-25T10:28:38Z",
  "delivery" => nil,
  "index" => 0,
  "links" => %{
    "delivery_receipts" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Receipts"
  },
  "media" => nil,
  "participant_sid" => nil,
  "sid" => "IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Link to this function

create_participant_chat(conversation_sid, indentity, attrs)

View Source

Creates a participant on a conversation

Parameters

  • conversation_sid: coversation's sid
  • indentity: unique participant identity (can be user.id)
  • attrs: map (you can put any field you want for you own needs)

Examples

iex> Twelixir.create_participant_chat("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "AlvinIdentity", %{type: "web"})
%{
  "account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "attributes" => "{"type":"web"}",
  "conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "date_created" => "2021-02-25T07:46:00Z",
  "date_updated" => "2021-02-25T07:46:00Z",
  "identity" => "AlvinIdentity",
  "last_read_message_index" => nil,
  "last_read_timestamp" => nil,
  "messaging_binding" => nil,
  "role_sid" => "RLXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants/MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Link to this function

create_participant_sms(conversation_sid, phone_number, country_code, twilio_proxy_mobile, attrs)

View Source

Creates an sms type participant on a conversation

Parameters

  • conversation_sid: coversation's sid
  • phone_number: integer
  • country_code: :string
  • twilio_proxy_mobile: :string
  • attrs: map (you can put any field you want for you own needs)

Examples

iex> Twelixir.create_participant_sms("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 9294229311, "US" "+16282003999", %{type: "web"})
%{
  "account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "attributes" => "{"type":"web"}",
  "conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "date_created" => "2021-02-12T21:33:59Z",
  "date_updated" => "2021-02-12T21:33:59Z",
  "identity" => nil,
  "last_read_message_index" => nil,
  "last_read_timestamp" => nil,
  "messaging_binding" => %{
    "address" => "+19294229311",
    "proxy_address" => "+16282003999",
    "type" => "sms"
  },
  "role_sid" => "RXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants/MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Link to this function

delete_conversation(conversation_sid)

View Source

Deletes a conversation

Parameters

  • conversation_sid: coversation's sid

Examples

iex> Twelixir.delete_conversation("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
:ok
Link to this function

delete_message(conversation_sid, message_sid)

View Source

Deletes a message

Parameters

  • conversation_sid: coversation's sid
  • message_sid: message's sid

Examples

iex> Twelixir.delete_message("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
:ok
Link to this function

delete_participant(conversation_sid, participant_sid)

View Source

Delete participant

Parameters

  • conversation_sid: coversation's sid
  • participant_sid: participant's sid

Examples

iex> Twelixir.delete_participant("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
:ok

Gets all conversations

Examples

iex> Twelixir.get_all_conversations()
%{
  "conversations" => [
    %{
      "account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "attributes" => "{"status":"active"}",
      "chat_service_sid" => "ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "date_created" => "2021-02-24T02:04:36Z",
      "date_updated" => "2021-02-24T02:04:36Z",
      "friendly_name" => "Alvin - Sample",
      "links" => %{
        "messages" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages",
        "participants" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants",
        "webhooks" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Webhooks"
      },
      "messaging_service_sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "state" => "active",
      "timers" => %{},
      "unique_name" => nil,
      "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    },
    ...
  ],
  "meta" => %{
    "first_page_url" => "https://conversations.twilio.com/v1/Conversations?PageSize=PageSize&Page=0",
    "key" => "conversations",
    "next_page_url" => "https://conversations.twilio.com/v1/Conversations?PageSize=PageSize&Page=1&PageToken=PXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "page" => 0,
    "page_size" => page_size,
    "previous_page_url" => nil,
    "url" => "https://conversations.twilio.com/v1/Conversations?PageSize=PageSize&Page=0"
  }
}
Link to this function

get_all_messages(conversation_sid)

View Source

Gets all messages

Parameters

  • conversation_sid: coversation's sid

Examples

iex> Twelixir.get_all_messages("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
%{
  "messages" => [
    %{
      "account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "attributes" => "{"status":"unread"}",
      "author" => "Sample Author",
      "body" => "Hi?",
      "conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "date_created" => "2021-02-25T10:28:38Z",
      "date_updated" => "2021-02-25T10:28:38Z",
      "delivery" => nil,
      "index" => 0,
      "links" => %{
        "delivery_receipts" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Receipts"
      },
      "media" => nil,
      "participant_sid" => nil,
      "sid" => "IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    },
    ...
  ],
  "meta" => %{
    "first_page_url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages?PageSize=50&Page=0",
    "key" => "messages",
    "next_page_url" => nil,
    "page" => 0,
    "page_size" => 50,
    "previous_page_url" => nil,
    "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages?PageSize=50&Page=0"
  }
}
Link to this function

get_all_participants(conversation_sid)

View Source

Gets all participants

Parameters

  • conversation_sid: coversation's sid

Examples

iex> Twelixir.get_all_participants("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
%{
  "meta" => %{
    "first_page_url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants?PageSize=50&Page=0",
    "key" => "participants",
    "next_page_url" => nil,
    "page" => 0,
    "page_size" => 50,
    "previous_page_url" => nil,
    "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants?PageSize=50&Page=0"
  },
  "participants" => [
    %{
      "account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "attributes" => "{"type":"web"}",
      "conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "date_created" => "2021-02-25T07:46:00Z",
      "date_updated" => "2021-02-25T07:46:00Z",
      "identity" => "AlvinIdentity",
      "last_read_message_index" => nil,
      "last_read_timestamp" => nil,
      "messaging_binding" => nil,
      "role_sid" => "RXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants/MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    },
    ...
  ]
}
Link to this function

get_conversation(conversation_sid)

View Source

Gets a conversation

Parameters

  • conversation_sid: coversation's sid

Examples

iex> Twelixir.get_conversation("SIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
%{
  "account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "attributes" => "{"status":"active"}",
  "chat_service_sid" => "ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "date_created" => "2021-02-24T02:04:36Z",
  "date_updated" => "2021-02-24T02:04:36Z",
  "friendly_name" => "Alvin - Sample",
  "links" => %{
    "messages" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages",
    "participants" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants",
    "webhooks" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Webhooks"
  },
  "messaging_service_sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "sid" => "SIDXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "state" => "active",
  "timers" => %{},
  "unique_name" => nil,
  "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Link to this function

get_message(conversation_sid, message_sid)

View Source

Gets a message

Parameters

  • conversation_sid: coversation's sid
  • message_sid: message's sid

Examples

iex> Twelixir.get_message("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
%{
  "account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "attributes" => "{"status":"unread"}",
  "author" => "Sample Author",
  "body" => "Hi?",
  "conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "date_created" => "2021-02-25T10:28:38Z",
  "date_updated" => "2021-02-25T10:28:38Z",
  "delivery" => nil,
  "index" => 0,
  "links" => %{
    "delivery_receipts" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Receipts"
  },
  "media" => nil,
  "participant_sid" => nil,
  "sid" => "IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Link to this function

get_multiple_conversations(page \\ 1, page_size \\ 50)

View Source

Gets multiple conversations (with pagination)

Parameters

  • page: current page
  • page_size: conversation size per page

Examples

iex> Twelixir.get_multiple_conversations(1, 2)
%{
  "conversations" => [
    %{
      "account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "attributes" => "{"status":"active"}",
      "chat_service_sid" => "ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "date_created" => "2021-02-24T02:04:36Z",
      "date_updated" => "2021-02-24T02:04:36Z",
      "friendly_name" => "Alvin - Sample",
      "links" => %{
        "messages" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages",
        "participants" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants",
        "webhooks" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Webhooks"
      },
      "messaging_service_sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "state" => "active",
      "timers" => %{},
      "unique_name" => nil,
      "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    },
    ...
  ],
  "meta" => %{
    "first_page_url" => "https://conversations.twilio.com/v1/Conversations?PageSize=2&Page=0",
    "key" => "conversations",
    "next_page_url" => "https://conversations.twilio.com/v1/Conversations?PageSize=2&Page=2&PageToken=PXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "page" => 1,
    "page_size" => 2,
    "previous_page_url" => nil,
    "url" => "https://conversations.twilio.com/v1/Conversations?PageSize=2&Page=1"
  }
}
Link to this function

get_multiple_messages(conversation_sid, page \\ 0, page_size \\ 50)

View Source

Gets multiple messages (with pagination)

Parameters

  • conversation_sid: coversation's sid
  • page: current page
  • page_size: messages size per page

Examples

iex> Twelixir.get_multiple_messages("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 0, 2)
%{
  "messages" => [
    %{
      "account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "attributes" => "{"status":"unread"}",
      "author" => "Sample Author",
      "body" => "Hi?",
      "conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "date_created" => "2021-02-25T10:28:38Z",
      "date_updated" => "2021-02-25T10:28:38Z",
      "delivery" => nil,
      "index" => 0,
      "links" => %{
        "delivery_receipts" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Receipts"
      },
      "media" => nil,
      "participant_sid" => nil,
      "sid" => "IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    },
    ...
  ],
  "meta" => %{
    "first_page_url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages?%3FPage=0&PageSize=2&Page=0",
    "key" => "messages",
    "next_page_url" => nil,
    "page" => 0,
    "page_size" => 2,
    "previous_page_url" => nil,
    "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages?%3FPage=0&PageSize=2&Page=0"
  }
}
Link to this function

get_multiple_participants(conversation_sid, page \\ 0, page_size \\ 50)

View Source

Gets multiple participants (with pagination)

Parameters

  • conversation_sid: coversation's sid
  • page: current page
  • page_size: participants size per page

Examples

iex> Twelixir.get_multiple_participants("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 0, 2)
%{
  "meta" => %{
    "first_page_url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants?PageSize=1&Page=0",
    "key" => "participants",
    "next_page_url" => nil,
    "page" => 0,
    "page_size" => 1,
    "previous_page_url" => nil,
    "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants?PageSize=1&Page=0"
  },
  "participants" => [
    %{
      "account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "attributes" => "{"type":"web"}",
      "conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "date_created" => "2021-02-25T07:46:00Z",
      "date_updated" => "2021-02-25T07:46:00Z",
      "identity" => "AlvinIdentity",
      "last_read_message_index" => nil,
      "last_read_timestamp" => nil,
      "messaging_binding" => nil,
      "role_sid" => "RXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants/MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    },
    ...
  ]
}
Link to this function

get_participant(conversation_sid, participant_sid)

View Source

Gets a specific participant

Parameters

  • conversation_sid: coversation's sid
  • participant_sid: coversation's sid

Examples

iex> Twelixir.get_participant("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
%{
  "account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "attributes" => "{"type":"web"}",
  "conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "date_created" => "2021-02-25T07:46:00Z",
  "date_updated" => "2021-02-25T07:46:00Z",
  "identity" => "AlvinIdentity",
  "last_read_message_index" => nil,
  "last_read_timestamp" => nil,
  "messaging_binding" => nil,
  "role_sid" => "RXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants/MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Link to this function

update_conversation(conversation_sid, new_attrs, state)

View Source

Updates a conversation

Parameters

  • conversation_sid: coversation's sid
  • new attrs: map (you can put any field you want for you own needs)
  • state: conversation state (active inactive close), note that once you close a conversation you can't re-activate it.

Examples

iex> Twelixir.update_conversation("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", %{status: "inactive"}, "inactive")
%{
  "account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "attributes" => "{"status":"inactive"}",
  "chat_service_sid" => "ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "date_created" => "2021-02-24T02:04:36Z",
  "date_updated" => "2021-02-24T02:36:34Z",
  "friendly_name" => "Alvin - Sample",
  "links" => %{
    "messages" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages",
    "participants" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants",
    "webhooks" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Webhooks"
  },
  "messaging_service_sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "state" => "inactive",
  "timers" => %{},
  "unique_name" => nil,
  "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Link to this function

update_message(conversation_sid, message_sid, message_body, attrs)

View Source

Updates a message

Parameters

  • conversation_sid: coversation's sid
  • message_sid: message's sid
  • message_body: the actual message
  • attrs: map (you can put any field you want for you own needs) - In my case this is where I monitor the message's read and unread state.

Examples

iex> Twelixir.update_message("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "Hello", %{status: "read"})
%{
  "account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "attributes" => "{"status":"read"}",
  "author" => "Sample Author",
  "body" => "Hello",
  "conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "date_created" => "2021-02-25T10:28:38Z",
  "date_updated" => "2021-02-25T10:46:05Z",
  "delivery" => nil,
  "index" => 0,
  "links" => %{
    "delivery_receipts" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Receipts"
  },
  "media" => nil,
  "participant_sid" => nil,
  "sid" => "IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages/IXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Link to this function

update_participant(conversation_sid, participant_sid, attrs)

View Source

Update participant

Parameters

  • conversation_sid: coversation's sid
  • participant_sid: participant's sid
  • attrs: map (you can put any field you want for you own needs)

Examples

iex> Twelixir.update_participant("CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", %{type: "WhatsApp"})
%{
  "account_sid" => "AXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "attributes" => "{"type":"WhatsApp"}",
  "conversation_sid" => "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "date_created" => "2021-02-25T07:46:00Z",
  "date_updated" => "2021-02-25T08:07:35Z",
  "identity" => "AlvinIdentity",
  "last_read_message_index" => nil,
  "last_read_timestamp" => nil,
  "messaging_binding" => nil,
  "role_sid" => "RXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "sid" => "MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "url" => "https://conversations.twilio.com/v1/Conversations/CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Participants/MXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Link to this function

validate_mobile(phone_number, country_code)

View Source

Validates a phone number

NOTES:

Examples

iex> Twelixir.validate_mobile(9294229311, "US")
"+19294229311"