tag:blog.textit.com,2013:/posts TextIt Blog 2022-06-30T07:04:37Z TextIt tag:blog.textit.com,2013:Post/1833145 2022-05-24T15:49:53Z 2022-05-24T15:49:53Z Bringing your SMS Contacts Over to Telegram Since TextIt is multi-channel, it is easy to make your bot work over SMS and chat applications like Telegram at the same time. Extending your bot to work over Telegram is also a great way to save on messaging fees. This is a short article on how you can invite your SMS contacts to use your Telegram bot and still keep their full contact history in your database.



Channels and URNs

When a contact reaches out to you on a new channel, a new contact will be created. Each contact will have an address for the channel they are using, called an urn. So if they are using both SMS and Telegram, you will have two contacts, one with an SMS urn (a phone number) and one with a Telegram urn (a number with an optional display name). Our goal will be merging these urns to on the same contact with the history.

Let's imagine a scenario where you have an SMS subscriber that you want to bring over to Telegram. In order to accomplish our above goal of having a single contact with two urns, we will take the following approach:

Steps

Send a text to our SMS contact with a link to our Telegram bot
Contact clicks on the link, which starts a Telegram chat session
Contact gets an SMS message saying, you are switch to Telegram asking to confirm
They confirm by typing "yes" and we add their new Telegram urn to their contact and mark it as the channel to use

Sending the invite

To send the invitation, we'll want to text them a link to our Telegram bot. You can get the like for your Telegram bot by visiting the bot inside the Telegram client and clicking share.



Our message might look something like this:

Save on messaging fees by switching to our Telegram bot. Just click here: https://t.me/PurringtonBot?start=phone@(text_slice((urn_parts(contact.urn).path), 1))

Since we want to encode our contact's current phone number in our Telegram invite, we need to pull the actual number from their urn. We can do that using the urn_parts() function that will let us access the urn path (which in this case is a phone number).

@(urn_parts(contact.urn).path)

This would return something like, +12065551212. Telegram is picky about embedding the plus character, so next we'll trim that off since we don't actually need it anyways. To do that, we'll put that inside of a text_slice function to trim off the first character.

@(text_slice((urn_parts(contact.urn).path), 1)).

Responding to the invite


On our Telegram bot's /start flow, we'll want to check what kind of start it is. They could be joining on their own, or they might be using our special invite link. So we'll want to split at the beginning of the flow and see if it starts with /start phone. If they did give us a phone number, we can then start that phone number in a flow in order to confirm things and add our new Telegram ID.

When they click the start button, they will pass something like /start phone12065551212. We can pull out just the phone number by using our friend text_slice again.

@(text_slice, input, 12))

The result of this will just be the phone number, or in our example 12065551212. Then we just use the Start Somebody Else action to add start that phone number in our confirmation flow.

Adding the new Telegram ID


In our confirmation flow, we'll want to just ask if they are sure. If they respond with yes, then we can figure out what their Telegram ID is and save it on our SMS contact.

It's important that we ask the contact with the phone number to confirm they are switching to Telegram. Without this, somebody could start the Telegram bot with an arbitrary phone number and potentially hijack a contact that doesn't belong to them if they are in your contact database. The other way around this is you could use a random code instead of the phone number to link the two accounts, but we are sticking with phone numbers in this example for simplicity. So long as we make sure to confirm things, we should be safe from bad actors.

In this case, we know that we were started by their Telegram contact, so we know the urn for that account. To reference the contact that started us, we can use @parent.contact. And since each contact has an urn, we can use @parent.contact.urn to get the Telegram ID. This will look something like telegram:1234567#norbertk. The actual ID is the number after the : and before the #. We can access that using, you guessed it, another expression.

If we pass the parent contact's urn through urn parts, we can access the path, which in the case of Telegram is the number.

@(urn_parts(parent.contact.urn).path)

We could stop there, but Telegram users can optionally have a display name denoted with the # at the end, so if we want to include that, we can get that on as well.

@(urn_parts(parent.contact.urn).display)

So altogether it looks like this crazy thing, which is really two separate expressions with our # in the middle.

@(urn_parts(parent.contact.urn).path)#@(urn_parts(parent.contact.urn).display)

And that's it!

If you have any questions on how to accomplish this, please let us know, we are happy to help.

]]>
tag:blog.textit.com,2013:Post/1704752 2021-06-18T16:10:41Z 2021-10-29T08:48:00Z Group Inclusion & Exclusion on Triggers

Triggers let you control how or when a flow begins or can allow a contact to join a group. A flow can be triggered by a keyword or missed call and scheduled on a future date.

What if you want a trigger to only act upon members of certain groups or to exclude groups?

First, navigate to the triggers tab.

Here, click the blue 'Create Trigger' button at the top left.

You'll see the list of possible trigger types.

For our example, we'll choose to create a message keyword that launches a flow.

At the bottom of this trigger's settings, we see that we can optionally choose to only include certain contact groups or to exclude contact groups.

In our example, we want contacts to send the keyword 'promo' that will trigger a Satisfaction Survey flow in order to receive a coupon. We don't want contacts who've already registered for this promo or a group called 'Segment A' to be able to participate, so we've excluded them.

Only members of these two groups will be excluded from starting the Satisfaction Survey flow- all other contacts who send the keyword will be started in the flow.


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!



]]>
tag:blog.textit.com,2013:Post/1678337 2021-04-13T19:21:26Z 2021-04-13T19:28:34Z New! Adding Group Membership to Contact Imports

We've updated Contact Imports to allow you to add contacts to a new or existing group! Here's how:


1. Navigate to the contacts tab. 


2. Click the "Import Contacts" button at the top left of the page.


3. Download and edit the template we provide (or choose a your own file) and upload it using the "Choose File" button. 

Be sure that you only use supported fields for your Column Headers in your spreadsheet. For example, if you want to add a registration date, use the Column Header Field:Registration_Date. You must separate spaces with underscores only!

Additionally, please check that your telephone numbers include country codes. We support users globally, so we need to know where your contacts are located.

5. After clicking the "Preview" button, you'll see the option to import headers from your file. In our sample, we have 3 headers: a telephone number, name, and field called Team. Additionally, we will choose group membership.

You have the option of creating a new group and giving it a name or adding the contacts to an existing group in your workspace. If you leave the group membership box unchecked, the contacts will not be added to any group.

That's it! After importing, you'll see the number of new contacts created or updated and any group memberships.

Looking for more information contact imports and exports? See our full help article here.


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!


]]>
tag:blog.textit.com,2013:Post/1672210 2021-03-29T22:02:34Z 2021-03-29T22:02:34Z Forwarding Calls in Voice (IVR) Flows

Use the 'Wait for Forwarded Call' Split Action in an IVR flow to forward calls to another phone number. Here's how it works:

In our example, we're asking contacts if they'd like to speak to a live agent or leave a message. If they choose to speak to a representative, the flow will forward their call on to another phone number of our choice.

The 'Wait for Forwarded Call' Split Action will have 4 possible exits:

  • Answered - The call was successfully answered by the agent
  • No Answer - The call was not picked up and the call disconnected
  • Busy - The line was busy and the call disconnected
  • Failed - The call failed

Depending on how the forwarded call is handled, you can create different actions to support your contact after the forwarded call is complete. In our example, we've chosen to send a customized voice message for calls that were successfully answered by a representative vs. those that either weren't answered at all or were busy. We also made sure to alert a team member when a forwarded call fails via a 'Send Somebody Else a Message' action.

After the forwarded call has ended, the contact will immediately move forward in the flow on original call with your voice number.

Be sure to learn more about building your IVR flows here.


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!


]]>
tag:blog.textit.com,2013:Post/1672109 2021-03-29T18:38:44Z 2021-03-29T18:38:44Z Starting a Contact in a Flow from the Contact's Information Page

You can now start a contact in a flow directly from their individual information page.

After navigating to the Contacts tab, click on the contact you'd like to start from your list:

On the contact's unique information and message history page, you'll then click the 3-dot menu button:

Choose "Start In Flow" from the dropdown menu:

Finally, select the flow where you'd like to start the contact:

That's it! The contact will then be immediately started in the chosen flow.


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!


]]>
tag:blog.textit.com,2013:Post/1663489 2021-03-09T18:32:02Z 2021-03-09T18:34:04Z Enabling Two-Factor Authentication

Looking to make your workspace login even more secure? You can now enable two-factor authentication, also called 2FA. Here's how:


1. Log in to your account and visit the workspace settings page. Scroll down the page to find the two-factor authentication section:

2. Click on this section to enable 2FA. You'll need to follow the directions on the following page:

You must download a one-time password (OTP) app like Google Authenticator or Authy in order to use 2FA.

3. Once your OTP app is downloaded and set up, you'll scan the QR code on your page. After scanning the QR code and generating a new account for your login, you'll see the required 6-digit code pop up in the app. It is only valid for a few seconds! Please be sure to use the current code.

4. Enter the valid 6-digit code and your current password and click the 'Enable' button.

5. Once enabled, you'll see a list of backup tokens. These are very important! Please record these tokens in a secure place.

That's it! Your 2FA is now enabled.


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1657752 2021-02-23T19:57:14Z 2021-02-23T19:58:26Z Twilio Supported Countries for Two-Way SMS

Twilio two-way SMS messages allow you to carry on a conversation by both sending and receiving text messages. See more about using two-way SMS via Twilio here.

While not complete, the list of Twilio's supported countries for two-way SMS is constantly expanding.

The following countries are either generally supported or in Beta:

  • Australia
  • Austria
  • Belgium
  • Canada
  • Chile
  • Czech Republic
  • Denmark (Beta)
  • Estonia
  • Finland
  • France (Beta)
  • Germany
  • Hong Kong
  • Hungary (Beta)
  • Ireland,
  • Israel (Beta)
  • Italy (Beta)
  • Lithuania
  • Malaysia
  • Mexico (Beta)
  • Netherlands
  • Norway
  • Philippines (Beta)
  • Poland
  • Portugal 
  • Puerto Rico
  • Singapore (Beta)
  • South Africa (Beta)
  • Spain
  • Sweden
  • Switzerland
  • United Kingdom
  • United States
  • Vietnam (Beta)
  • Virgin Islands


Is your number not sending internationally when it should? Be sure you've enabled international sending!


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1642398 2021-01-19T22:42:33Z 2021-01-27T10:02:46Z Limiting the Number of Incorrect Responses to a Question

You may want to set a limit to the number of times a contact can respond to a specific question in your flow, such as with a quiz or survey. You can do this by using the @node.visit_count expression within a Split by Expression action.

In the example below, we've created a very simple quiz. We want the contact to have limited opportunities to answer the question, so we will place the @node.visit_count expression on a 'Split by Expression' node to limit the number of guesses.

In the flow above, we see that after collecting the contact's response with a 'Wait for Response', we're evaluating their answer with a 'Split by Expression'. Since we only want to give the contact two opportunities to answer correctly, here's how we've written the expression and rule:

We've used the expression @node.visit_count and then written a rule with has a number above 1 since they've already used their one other attempt in the previous 'Wait for Expression', equaling two total attempts.

What this means is that if they've answered correctly on their first try, they'll be routed through the 'Correct' exit on the 'Wait for Response' node and get a congratulatory message. If they get their first try wrong, they'll be routed through the 'Other' exit where we've set a limit to the number of times the contact can be wrong. Because the visit count is set to a number above 1, no further attempts are permitted.

We can see how this works via the Simulator. This contact gave an incorrect response on their first attempt and was given a second and final opportunity to answer correctly. Because we set a @node.visit_count limit of above 1 via a 'Split by Expression' node, their second incorrect answer means they've used up all their tries.

Another contact, however, studied a bit harder:

Notice that in our follow-up message, we've referenced the number of tries the contact has made. We did this by using the same expression written as @node.visit_count/2. This would be especially useful if the contact had even more chances to respond correctly so they know how many opportunities remain.

Keep in mind that visit_count reflects only the current flow run. This means that if the contact is restarted in the flow, the count goes back to zero as counts from previous runs are not saved.



Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!


]]>
tag:blog.textit.com,2013:Post/1615030 2020-11-10T21:22:33Z 2020-12-14T20:39:58Z Add a Facebook Page to Create a Messenger Channel

Great news! Facebook has updated their integration policies, so you can now easily connect a Facebook page to create a Messenger channel in just moments.

If you've already integrated a bot under Facebook's old policies, then you do not need to take any further action. Your channel will continue to work as always.

Add a Page

  1. Go to your Workspace Settings page and click the 'Add Channel' button.

2. Scroll down to the Facebook Messenger section.

3. Here, review the directions and then click the 'Add Facebook Page' button.

4. Log in to your Facebook account and then choose the page you'd like to add. Then, you'll be asked which permissions you'd like to allow.

That's it! You'll automatically be taken to your new channel's page where you can view your channel log.

You can now create a trigger that will refer a contact when a new conversation is started on Messenger.

Facebook Topics

Note that Facebook has updated their API to require that all messages sent to a contact after 24 hours have an appropriate 'tag', or what we call a 'topic'.

Message tags allow you to send important and relevant 1:1 updates to contacts outside the standard messaging window of 24 hours after a contact's last message. You will need to add a topic to your Messenger flows to ensure your flow sends if outside of the 24 hour window.

Reconnecting Your Page

If there is a problem with your integration, you do not need to remove the channel. You can simply click the 'Reconnect' button found within the channel page in your Workspace Settings to refresh the authentication token.



Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1609191 2020-10-27T19:10:01Z 2022-06-30T07:04:37Z Announcment: WhatsApp Number Hosting Beta

We are excited to announce that TextIt is now a WhatsApp Business Service Provider and we are starting a closed Beta for our customers. This means you'll be able to use all the tools you know and love with TextIt but on WhatsApp! If you have an active subscription and are interested in entering this Beta, send us a note.


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1604093 2020-10-13T19:07:41Z 2020-10-13T19:07:41Z Attaching a PDF URL to a Message

We've added a new feature that allows you to attach a PDF URL in addition to Image, Audio, and Video URLs.

Attaching your PDF URL

Once you've entered the flow editor, create a 'Send Message' action. Click on the 'Attachments' tab at the top of the message node:

Choose 'PDF Document URL' from the dropdown menu:

Paste the PDF URL in the text field and click 'OK' to save. That's it!

You can then test out your link in the Simulator. You can click on the attached document and it will open in a browser window.

As always, be sure to test out your link in real messages before sending to your contacts!


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1598800 2020-09-29T22:34:55Z 2020-09-29T22:34:56Z New Messaged Contact Pricing!

As you know, we launched our new unlimited messaging plan on September 1st. Billing on the new plan was based on the total number of contacts in your account at the end of each month. Over the past month we've received feedback from some of our customers that they'd like to be billed based on the number of messaged contacts in their workspace instead of the total number of contacts. This would more accurately represent the value they are getting from TextIt on a monthly basis.

After considering the pros and cons we've decided those customers are right and our subscription plan now only counts contacts who have sent or received a message (or IVR call) during each subscription period. For example, if you have 15,000 contacts in your workspace, but only message 600 of them during a month, then you will only be billed $25. Each workspace will still come with 1,000 messaged contacts included and each additional messaged contact will still be billed at $0.01 per month.

We've already made this change on our side and all plans have already been upgraded to this plan. You will now enjoy a lower monthly bill and the ability to build up a contact list in your workspace that you can refer to in the future.

As always, if you have any questions, reach out via the support widget on the website!


]]>
tag:blog.textit.com,2013:Post/1589630 2020-09-01T20:32:01Z 2020-09-01T20:32:02Z New Billing Plan w/ Unlimited Messaging Launches TODAY!

As you’ve been hearing over the past month, starting today, we’re moving to a monthly subscription plan that includes unlimited messaging. Instead of pricing based on the number of messages you send, pricing will be based on the number of contacts you maintain in your TextIt workspace. Each TextIt subscription will include 1,000 contacts, unlimited messaging and be only $25 per month. Each additional contact above 1,000 will cost just $0.01 per month.

Switch over to subscription from the billing page on your workspace, which you can find on your workspace settings page.

This will let you more easily predict the costs of your projects and let you build awesome interactive flows without worrying about how many credits they will use at scale.

New Design

We’ve also launched a new, fresher design of the website. This includes a lot of small improvements that we think will lead to a smoother and cleaner experience for you. We spent a lot of time testing things out, but with any big change sometimes a few things sneak through, so if you see anything amiss, do reach out!

TextIt.com

Finally, we are moving from https://textit.in to https://textit.com. Both will work for you for the foreseeable future, but we’ll start redirecting you to the .com in the next few weeks.

What’s Next

If you have existing credits, you can still use them until they expire. However, once you run out of those credits, you’ll have to switch to our new monthly plan. If you’d like the benefits of unlimited messaging immediately, you can convert the value of any remaining credits you have on your billing page.

If your account has no credits, we will be converting you to our free trial plan soon and you’ll have 90 days to evaluate the product with up to 100 contacts.

Covid-19

We've helped organizations deliver over 20 million Covid-19 related messages on TextIt and we are excited to continue that support moving forward. We’ll offer discounted pricing for anyone using TextIt for Covid-19 projects with a plan that includes 10,000 free contacts and half price contact pricing for just $25 per month.

More questions? See our FAQs below!

Do I get to keep my credits? 

If you have existing credits, you can choose to stay on the TopUp plan and continue using those credits until they expire or are used up.

What if I have contacts that I don’t use? 

You will be billed for all contacts in your workspace over the course of a month, but you can remove any contacts that you don’t use. We’ve added a new feature that indicates when a contact was last used and allows for easy deletion of dormant contacts.

How does billing work? 

You will be billed the base subscription rate of $25 at the start of your billing period. A month later, you will be billed a fee for any contacts in your workspace that exceeded the 1,000 contact threshold. If you cancel before the end of the month, your usage fees will be prorated. 

Will I pay more for the subscription plan? 

We’ve designed our new pricing plan to deliver the benefits of unlimited messaging to all users. Most users will pay significantly less, some users may pay slightly more, but we’ve made sure that no users will have a significant cost increase. 

How does the Free Trial work?

New users will be able to use TextIt free of charge for 90 days, with 100 contacts included. 

I’m working on a Covid-19 project. Do I still qualify for discounted pricing? 

We’ll continue to offer discounted pricing for anyone using TextIt for Covid-19 projects. Our Covid-19 plan will be $25 per month and will include 10,000 contacts with each additional contact priced at $.005.

I’m a really big user. Can I qualify for discounted pricing?

If your account has over 100,000 contacts you may be eligible for volume discounts. Reach out to us if you’d like to learn more!

What if I want to delete my account? 

No problem, if you take no action, we’ll delete your account automatically on December 1st. We’ll send you one last reminder a few weeks before in case you change your mind. If you want to delete it immediately, just reach out to us and we’ll take care of it.


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1589558 2020-09-01T17:25:23Z 2020-09-01T17:25:23Z Deleting Contacts

It is important to note that if you delete any contacts, they cannot be recovered

To delete a contact, they must first be placed in the 'Archived' folder. You can manually delete individual contacts or send an entire group through a flow to update their status to 'Archived' for easy bulk deletion.

Manually Delete Contacts

To permanently delete an individual contact, first navigate to the "Contacts" tab in your account:

You'll see a list of all your contacts on this page. To delete a contact, check the box to the left of their name. Then, click the 'Archive' button. This will place the contact in the 'Archived' folder:

Next, navigate to the 'Archived' Folder and again, check the box to the left of the contact's name.

Finally, you can delete ALL checked contacts at once by clicking the 'Delete All' button.

You'll be asked if you're sure to delete ALL the contacts whose names you've checked. Remember that contact deletion is FINAL and no deleted contacts cannot be retrieved!

Delete an Entire Group of Contacts

To place multiple contacts in the 'Archived' folder for bulk deletion, you'll need to change their status from 'Active' to 'Archived', which is easily done in a flow.

  1. Create your contact group. Remember that you can identify dormant contact who haven't interacted with you lately via the 'Last Seen On' contact field via a contact search.
  2. Start the group in a flow that contains the 'Update the Contact' action that will update their status. All contacts who are started in this flow will automatically be placed in the 'Archived' folder and can then be deleted.

Contact Status

Aside from archiving, you can also place a contact in the 'stopped' or 'blocked' folders.

Stopped contacts have opted-out from receiving your messages and are removed from all groups. You cannot send them any messages, but they can opt back in by messaging you.

Blocked contacts are contacts that will not receive outgoing message and all of their incoming messages are automatically archived. They are removed from all groups.

Want to easily identify dormant contacts to be deleted? See our guide.


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1589556 2020-09-01T17:23:45Z 2020-09-01T19:58:17Z Archiving Contacts in a Flow for Easy Deletion

In order to delete contacts, they must first be placed in the 'Archived' folder in the 'Contacts' tab.

You could manually move contacts into the 'Archived' folder, but what about many at once? Do this with a flow.

  1. Add any unwanted contacts to a group. For dormant contacts, remember that you can use the handy 'Last Seen On' contact field to search for contacts who you've not interacted with lately and add them to a smart group via a contact search.
  2. Once your group is ready, simply start them in a flow using the 'Update the Contact' action which will change their status from 'Active' to 'Archived'.

In our example below, we've created a group of contacts called 'Dormant' and added the 'Update the Contact' action in a flow that will automatically place all contacts who pass through the flow into the 'Archived folder:

We'll then start the flow and select the group 'Dormant':

That's it! All contacts who are started in this flow are now in the 'Archived' folder and are ready for deletion. To delete all contacts in the 'Archived' folder, just click the 'Delete All' button:



Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!


]]>
tag:blog.textit.com,2013:Post/1589554 2020-09-01T17:21:36Z 2020-09-01T17:21:36Z Contact Statuses- What are They?

A contact's status can be set to Active, Stopped, Blocked, or Archived. Learn what each status means in this guide.

A contact's status will affect their group membership and whether they can receive outgoing messages or send incoming messages.

  • Active contacts maintain all of their group memberships and will both receive your outgoing messages and be able to send you incoming messages.
  • Stopped contacts have opted-out from receiving your messages and are removed from all groups. You cannot send them any messages, but they can opt back in by messaging you, changing them to 'Active'.
  • Blocked contacts are contacts that will not receive outgoing message and all of their incoming messages are automatically archived. They are removed from all groups. This status is useful for spammy or unwanted behavior.
  • Archived contacts are removed from all groups and will be ignored forever. The difference between 'Archived' and 'Blocked' contacts is that these archived contacts are ready for deletion. To delete a contact, they must first be placed in the 'Archived' folder in the 'Contacts' tab. Updating a contact's status to 'Archived' allows you to easily place an entire group in this folder for bulk deletion.

Note that you can easily identify dormant contacts by using the 'Last Seen On' contact field in a search and then place those contacts in the 'Archived' folder via a simple flow. This will help you easily delete groups of contacts that you no longer wish to maintain in your workspace.


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1587012 2020-08-25T18:29:15Z 2020-08-25T18:29:16Z Using the 'Last Seen On' Contact Field

Using the 'Last Seen On' field in a campaign or a contact search is helpful in identifying contacts who've last communicated with you relative to a date.

You can use this field to find contacts who've been unresponsive or dormant and reach out to them or delete them from your database.

Searching with 'Last Seen On'

Using a query with last_seen_on, you can search for contacts who were last seen relative to a specific date.

You can use the following operators to perform a search on all contacts present in your account:

last_seen_on = "date" to search for an exact date

last_seen_on > "date" to search for all contacts seen after a date

last_seen_on < "date" to search for all contacts seen before a date

last_seen_on >= "date" AND last_seen_on <= "date" to search for contacts last seen between two dates

last_seen_on != "date" for contacts not last seen on an exact date

last_seen_on = "date" OR last_seen_on = "date" for contacts last seen on multiple specific dates

With the resulting contacts, you can create a new group. In the example below, we searched for contacts who were last seen before a specific date.

We'll click "Save as Group" to create a new group with just these contacts:

Last, we'll name the group. Here, we've identified contacts who haven't interacted with us in several months, so we'll name the group "Dormant":

Using 'Last Seen On' in a Campaign

What if we wanted to follow up with contacts who haven't interacted with us recently? We could do this from within a campaign without having to search for contacts or creating a dynamic group. Here's how:

In the example above, we've created a campaign event that will send a message to all contacts 90 days after the 'Last Seen On' field, which is the date they last interacted with us.

Sending a message or flow to contacts who've been dormant is helpful in reminding them to follow up with you or to weed out contacts who can be deleted.



Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1581662 2020-08-06T15:59:30Z 2020-08-06T18:09:08Z TextIt Update: New Billing Plan (Unlimited messaging!)

Over the years we’ve heard from you that you’d love a way to use TextIt without having to pay for each interaction. Well, we’re excited to share with you that we’re switching to a simple, affordable, subscription plan that makes that possible!

Starting September 1st, we’re moving to a monthly subscription plan that includes unlimited messaging. Instead of pricing based on the number of messages you send, pricing will be based on the number of contacts you maintain in your TextIt workspace. Each TextIt subscription will include 1,000 contacts, unlimited messaging and be only $25 per month. Each additional contact above 1,000 will only cost $0.01 per month.

This will let you more easily predict the costs of your projects and let you build awesome interactive flows without worrying about how many credits they will use at scale. We’re also rolling out new features to help you delete contacts you are no longer using. 


What’s Next

If you have existing credits, you can still use them until they expire. However, once you run out of those credits, you’ll have to switch to our new monthly plan. If you’d like the benefits of unlimited messaging immediately, we’ll also let you convert the value of any remaining credits you have starting on September 1st.

If your account has no credits, we’ll convert you to our free trial plan on September 1st and you’ll have 90 days to evaluate the product with up to 100 contacts.


Covid-19 

We've helped organizations deliver over 20 million Covid-19 related messages on TextIt and we are excited to continue that support moving forward. We’ll offer discounted pricing for anyone using TextIt for Covid-19 projects with a plan that includes 10,000 free contacts and half price contact pricing for just $25 per month.


More questions? See our FAQs below!

Do I get to keep my credits? 

If you have existing credits, you can choose to stay on the TopUp plan and continue using those credits until they expire or are used up.


What if I have contacts that I don’t use? 

You will be billed for all contacts in your workspace over the course of a month, but you can remove any contacts that you don’t use. We’re adding a new feature that indicates when a contact was last used and allows for easy deletion of dormant contacts.


How does billing work? 

You will be billed the base subscription rate of $25 at the beginning of each month. At the end of each month, you will be billed a fee for any contacts in your workspace that exceeded the 1,000 contact threshold. If you cancel before the end of the month, your usage fees will be prorated. 


Will I pay more for the subscription plan? 

We’ve designed our new pricing plan to deliver the benefits of unlimited messaging to all users. Most users will pay significantly less, some users may pay slightly more, but we’ve made sure that no users will have a significant cost increase. 


How does the Free Trial work?

New users will be able to use TextIt free of charge for 90 days, with 100 contacts included. 


I’m working on a Covid-19 project. Do I still qualify for discounted pricing? 

We’ll continue to offer discounted pricing for anyone using TextIt for Covid-19 projects. Our Covid-19 plan will be $25 per month and will include 10,000 contacts with each additional contact priced at $.005.


I’m a really big user. Can I qualify for discounted pricing?

If your account has over 100,000 contacts you may be eligible for volume discounts. Reach out to us if you’d like to learn more!


What if I want to delete my account? 

No problem, if you take no action, we’ll delete your account automatically on December 1st. We’ll send you one last reminder a few weeks before in case you change your mind. If you want to delete it immediately, just reach out to us and we’ll take care of it.


Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1580976 2020-08-04T21:10:44Z 2020-08-04T21:10:44Z Updating a Contact's Status in a Flow

You can use the 'Update the Contact' action in a flow to change a contact's status to either active, stopped, or blocked.


A contact can have 3 possible statuses:

  1. Active - The contact will receive your outbound messages and can send incoming messages.
  2. Stopped - The contact is removed from all groups and will no longer receive your messages. The contact is ignored until they send an incoming message, opting them back in.
  3. Blocked - The contact is removed from all groups and will be ignored entirely, but not deleted. The contact will neither receive outbound messages nor be able to send incoming messages.

Stopped Contacts

Some channels, like Twilio, have built-in opt-out keywords. If the contact sends any of them to your channel, we will automatically place them in the 'Stopped' folder in the 'Contacts' tab. The contacts are removed from all groups and you will be unable to send them any outbound messages. The contact can opt back in to receiving your messages with the provider's re-subscribe keywords at any time. They will not be automatically re-added to groups.

Using the 'Update the Contact' action in a flow to change a contact's status to 'Stopped' is helpful when a channel does not have automatic opt-out keywords and helps you to track opt-outs yourself. Any time the contact sends you an incoming message, they'll be removed from the 'Stopped' folder and made 'Active' unless still opted-out by your channel provider, like Twilio.

Blocked Contacts

Sometimes, a contact can abuse your service or send offensive messages. While you can manually block a contact if you notice spammy behavior, it can also be useful to build rules in your flows that detect abusive language.

If a contact sends unwanted language, you can use a 'Wait for Response' to detect certain words. If found, you can automatically block the contact. This can come in handy when contacts can automatically trigger a flow with an assigned keyword published on a website or advertisement.


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1560349 2020-06-16T20:49:05Z 2020-06-16T20:49:06Z Adding an Email or Zendesk Ticketing Service

You can easily pass a contact's communications off to a live human agent via email or our Zendesk integration. This is an easy way to better respond to help requests, process refunds, provide more detailed one-on-one information to contacts, and so many more use-cases.

Adding a ticketing service provides an advantage over the 'Send Email' action as the communications between your agent and contact will remain on TextIt and can be viewed as incoming and outgoing messages on the platform.

Adding an Email Ticketing Service

Email ticketing is a super simple way to handle your live agent responses. It takes just moments to set up.

First, integrate the email address to which all new tickets will be forwarded. Your agent's responses will also come from this email address. Navigate to your account page by clicking on your organization name in the top right corner:

Click the gear icon and choose 'Add Ticketing Service':

Next, click the 'Email' section:

Add your email:

Find the verification email which you'll find in your email inbox and connect the code:

That's it! You're now ready to set up the email ticketing action in a flow.

Setting up email ticketing in a flow

To begin your email ticketing pipeline, create a flow that will collect any text or fields you'd like to forward to your agent. In the simple sample flow above, we ask the contact to send us free text describing their issue & collect it with a 'Wait for Response' node.

Once we've collected all the responses we'd like, we add the ticketing action:

In the body of the email, we'll reference the free text the contact sent using @results.issue, using the name we gave to the flow result in the 'Wait for Response' node.

When a contact passes through the flow, a ticket will automatically be forwarded to the email address we integrated to our TextIt account. In your email, you can respond to the contact's request:

All further messages between the agent and the contact will also been seen in your TextIt account. Here's the contact's message history page showing the agent's email message and the contact's response:

Adding a Zendesk Ticketing Service

Zendesk is a CRM company that builds software designed to improve customer relationships. The platform provides support, sales, and customer engagement software that allows you to integrate live agent chatting, self-service, call center communications and more into a single platform.

After creating your Zendesk account, you'll integrate it into TextIt. Navigate to your TextIt account page, click the gear icon, and choose 'Add Ticketing Service' from the dropdown menu:

Click on the Zendesk section:

Type in your subdomain name and then click 'Allow' on the following page to give TextIt permission to access your Zendesk account.

Follow the steps on the integration page:

  1. Click the link to redirect to Zendesk's app marketplace and search for 'TextIt'. Install the app.
  2. In your Zendesk Channel Integrations page, you should now see the TextIt app added.
  3. On this page, click the TextIt app in the list and add an account. You'll need the secret key found on the integration page in TextIt.

Add a display name and the secret key:

Your Zendesk integration is now complete! The next step is creating the pipeline in a flow.

Setting up Zendesk ticketing in a flow

As with an email ticketing service, you'll collect any responses or fields you'd like to forward to Zendesk and add a ticketing service node:

When a contact moves through the flow, a ticket will be forwarded to Zendesk, where the agent can reply:

You'll also be able to see the entire message history for the contact in your TextIt account:

Viewing Open Tickets

You can see all open tickets by clicking on the 'Tickets' tab which will appear after adding your first ticketing service:

Click on a ticket to see the contact's entire message history:

You can close a ticket with your TextIt account by clicking the checkbox and selecting the close button:

Reopen by clicking the checkbox and selecting the reopen button:

You're now all set up to handle tickets via Email or Zendesk!


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1536998 2020-04-28T20:11:00Z 2020-04-28T20:12:34Z Viewing the Flow Start Log

Viewing your Flow Start Log is helpful in understanding your account's activity. You'll see a list of all the flows that have been started, the user who started them, and more. To view the log, first navigate to the 'Flows' tab:

Scroll down and find the 'Flow Start Log' button on the lefthand side:

Here, you'll see the list of flows started:

Here's a breakdown of the first log as seen above:

  1. The name of the flow, the user who started it, and the contacts who were placed in the flow. In the example above, all contacts were started, meaning both contacts who had and had not previously entered the flow and those active in other flows. Be sure to review our start flow sending options article to understand how contacts are started in a flow!
  2. The exact contacts or groups who were started.
  3. The date the flow was started.
  4. How many runs the flow completed. Note that passage through a flow from entrance to exit - and all activity that takes place in between - constitutes a run.


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!


]]>
tag:blog.textit.com,2013:Post/1531185 2020-04-14T18:02:43Z 2020-04-14T18:02:43Z Using Prometheus Monitoring

Prometheus and Grafana are popular platforms used to build dashboards. The dashboards you can build using them will let you see trends over time, spikes in usage and better understand the activity on your organization.

Prometheus works by fetching the current counts of various attributes on your organization a few times a minute. From that data it builds up a historical database of values it can query against. Grafana is then used to build dashboards using the database Prometheus has built over time.

Note that you will need both a Prometheus server and a Grafana server in order to perform these visualizations. You can either host these services yourself or use one of the hosted services such as Hosted Metrics that do this for you.

In either case you will be configuring the "Scrape Target" in Prometheus for your Organization. To enable your scrape target:

  1. Visit your Organization Home by clicking on your organization name in the upper right corner
  2. Click on the Prometheus link to activate Prometheus monitoring

  3. Then click on the Prometheus line again to get your Prometheus endpoint, username and password. You can then use these to configure a new scrape target on the Prometheus server you are using. 

Remember that Prometheus will need to scrape your endpoint for a period of time to build a history of the records, so it will take some time before you have useful historical metrics for graphing.

Exposed Metrics

Your Prometheus endpoint exposes aggregate counts for use in your dashboards. These include:

  • The total count of incoming and outgoing messages for each of your channels
rapidpro_channel_msg_count{channel_name="BotChannel",channel_uuid="16551115-2483-4c60-98c4-0bb34e7aa218",channel_type="TG",msg_direction="out",msg_type="message",org="Handy"} 993
  • The total count of contacts in each of your groups, plus your system groups. Example record:
rapidpro_group_contact_count{group_name="Active Users",group_uuid="f53056f9-302c-4d76-a1b4-7ed0c6132779",group_type="user",org="Handy"} 23251

You can use the attributes on the metrics to filter by or group by in your Grafana dashboards.


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1521099 2020-03-17T21:27:48Z 2020-12-14T20:40:10Z Free TextIt Hosting for Coronavirus Projects

In response to the global Covid19 outbreak, Nyaruka is offering free TextIt hosting to all initiatives aiming to help during this pandemic. Projects we support have already sent and received millions of messages answering questions posed by the public and we want to do our part in ensuring even more people can be reached in the weeks ahead.

If you are working on a project related to the Covid19 outbreak, you can create an account for free at https://textit.in/. Once you have built your system please reach out to us and we will add additional credits to your account to guarantee you can scale nationally.

Projects do not need to be health related, we have customers building takeout and delivery systems using TextIt to help avoid physical contact just as we have customers building informational bots to help spread information in communities. Every little bit can and does help!

Our team is ready and eager to help you with any questions you may have.

Please share this with any of your colleagues who might find it useful.

Stay safe, working together we will all get through this.

]]>
Nicolas Pottier
tag:blog.textit.com,2013:Post/1518632 2020-03-10T19:10:53Z 2020-03-10T19:10:53Z Fixing Missing Dependencies


In some cases, you might find that a flow depends on something that no longer exists. When this happens, you will see the action title in red (as seen above) to let you know that a flow issue is present. For example, you might be looking at a flow that references a contact field by using an expression like @fields.age. However, at some point you may have deleted the contact field for Age. 

When this happens, your flow will continue to run, however it might lead to unexpected results. In some cases, such as updating a contact field for a missing field, nothing will happen (other than the field will not be set). 

In other cases, it might be more noticeable. Perhaps you created a Send Message action that looked like the following example. In this case, it may cause some confusion as the value for @fields.volunteer_id would be left out.

After creating a node with a messing dependency, you'll see that the node itself turns red. If you click on the node to edit, you'll see a notification that says 'Cannot find a field for @fields.whatever_field_name

You will also see a new red tab appear to the right of the editor called 'Flow Issues'.

Click on the Flow Issues tab to get a full list of all the missing dependencies and click on each to be taken to the exact node in your flow.

Contact Fields are not the only things that can go missing and result in a missing dependency error. You may see this with a Contact Group that has  been deleted, a channel that no longer exists, or a variety of other things your flow may reference.


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1513514 2020-02-25T19:05:58Z 2021-05-02T21:05:57Z Restricting Sending to International Numbers

Your channel's phone number may automatically allow sending messages to international numbers, which could cause carrier or aggregator fees to add up. To avoid international messaging charges, you can choose to restrict sending. 

First, navigate to your account page and scroll down to the phone number you'd like to restrict:

Next, click the 'Edit' button to change the settings:

Uncheck the box allowing sending to international numbers:



Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!]]>
tag:blog.textit.com,2013:Post/1513513 2020-02-25T19:04:20Z 2020-02-25T19:04:20Z Changing the Order of Featured Fields on the Contacts Page

When viewing your featured fields on the Contacts page, you will see that they are organized left to right starting from earliest creation date. In the example below, the contact field school id was created at an earlier date than  state.

To change how the contact field columns are viewed, first navigate to the Manage Fields page found within the Contacts tab:

Here, click on the 'Featured' folder to the left of the page:


You'll see a list of all featured fields. Hover over a field to click and drag to the position you'd like. 


Navigate back to the Contacts tab to see the contacts fields have rearranged to your specifications: 

Don't see a contact field in the list? First, make sure it's featured


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1503807 2020-01-28T20:10:48Z 2020-01-28T20:10:48Z Using the Context Explorer

The Context Explorer feature found in the simulator within each flow's editor allows you to view and better understand all the variables available in your flow. The explorer gives a detailed breakdown of values and their expressions, which can be copied for use elsewhere.

To use the Context Explorer, first navigate to the flow's editor. In our example, we want to see all the available variables for a flow asking contacts to join a group of their choosing to earn a free coupon:

At the bottom right corner of the editor, we see the Simulator button:

By clicking the 'Run in Simulator' button, we will run a test contact through the flow up to whichever point in our flow we'd like to view. Here, we've run the test contact all the way through to the flow's exit, or end. 

We'll then click on the '@' symbol found at the bottom left of the simulator to view the Context Explorer: 

In our example flow's explorer, we can immediately see the test contact's telephone number, the global API key set in our account, how many inputs were received from the contact, the results of the flow, and the flow's run:

We can expand each value to view even more detailed information like when the contact was created, the language of the contact, their group membership, and more:

We can hover over a value and click the clipboard icon:

This will copy the expression for that value to the clipboard for use elsewhere:


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!]]>
tag:blog.textit.com,2013:Post/1499126 2020-01-14T20:11:33Z 2020-01-14T20:11:34Z Sorting Contact Field View

By clicking on the column header of a featured contact field on your Contact page, you can change how the fields are sorted. 

For example, we can change how the fields are viewed to either sort youngest to oldest or vice versa:

This feature is useful in this case to see the breakdown of our contacts' ages to better organize our demographic information. 

Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1499125 2020-01-14T20:10:31Z 2020-01-14T20:10:31Z Adding a Topic to Your Facebook Messenger Flow

Facebook has updated their API to require that all messages sent to a contact after 24 hours have an appropriate 'tag', or what we call a 'topic'. 

Message tags allow you to send important and relevant 1:1 updates to contacts outside the standard messaging window of 24 hours after a contact's last message. 

By default your flows will use the NON_PROMOTIONAL_SUBSCRIPTION  tag for your outgoing messages which aren't replies, but support for this tag is being removed in March 2020. 

You can now select the tag to use when sending broadcast messages by clicking on the first message of your flow and navigating to the "Facebook" tab as seen at the top of the message node:

For our example above, we'll choose the 'Event' tag since our message pertains to an update for an upcoming event. This will then mark the message with that tag when it is sent. You only need to do this on the first message in your flow. 

It is important to note that as per Facebook policy, message tags may not be used to send promotional content, including but not limited to deals, offers, coupons, and discounts. Learn more about sending messages with tags as well as details on new and currently supported tags here.

Looking for information on how to create and submit your Messenger bot? See our guide

Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!

]]>
tag:blog.textit.com,2013:Post/1490157 2019-12-17T19:46:18Z 2019-12-17T19:46:18Z Global Variables

Globals are shared values that can be referenced in flows, as well as broadcasts and campaigns, within your account referenced by @globals.value_name. They allow you to create a value once and use it repeatedly without having to reenter the value. Likewise, globals make updating a shared value much easier. Rather than manually changing a value everywhere it's used in your account, simply update the value found in your 'Globals' page. 

Say you have 5 different webhooks in your account that all use the same Airtable API Authorization key. By saving that key as a global variable, you can easily reference the key without having to look it up in your Airtable account every time you create a webhook.

How it works

We've got a flow where we want to retrieve data from a table in our Airtable account multiple times. This means we'll need to use more than one Call Webhook action, and each of those will need to be configured using the API Authorization key from Airtable. To avoid having to look up the key for each configuration, we'll create a global to save time.

Create the global variable

Go to your account page, then scroll down to to the @ globals section.

Here, you'll find your Globals page where you can create and manage your global variables.

To create a new variable, click the 'Create Global' button. Choose a name and enter the value. For our API key example, the value is the same value that we'd enter for the 'Authorization' header in our Call Webhook action in our flow.

Note that by clicking on the 'uses' link next to each global variable on your 'Globals' page, you can see every place your global is used. 

Use the global in a flow

After creating the shared API key global, we can reference it in all of our new Call Webhook actions in our Airtable flow. 

When we create each new Call Webhook node, we don't need to enter the text value of the Authorization header.

We can instead simply reference the value using the global variable we've created using @globals.api_key. Recall that we named the variable API Key when we created the global earlier. 

That's it! For any other webhook where we would also use the same Airtable API Authorization key, we don't need to look it up. We can easily enter the global instead. 

Note that globals can only be edited or updated within your Globals page and not within flows. 


Want to learn even more about using TextIt? Check out our Help Center

Questions? Comments? Let us know!

]]>