Robin Sapiro

My feedback

  1. 156 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    16 comments  ·  Wishlist » Mobile  ·  Flag idea as inappropriate…  ·  Admin →
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    @Nissan 4x4 - If you are active in the Wild Apricot Grove FB page - you will find me there. Then friend me and we can DM or even switch to email or do a Zoom session

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    @John,
    I have been using MessageBird for sending text (SMS) messages to my membership now for several years.
    Initially I started out by exporting my WA member details and then uploading that as a CSV to MessageBird. Then sending my SMS messages from the MessageBird web console.
    Then when WA introduced the mail CC feature I plugged each members mobile number into a field as 123456789@messagebird.com (sorry may not have the exact domain there). Then to send a SMS message - enabled that field as a CC field - sent the email with a totally blank template and then turned off the CC feature again.
    Then along came the magic of Integromat and now I have a couple of scenarios there to send messages to different selections of members. When I want to send a message - I open the selected scenario on Integromat - edit the message text as desired and run the scenario.
    There is plenty of potential to do a lot more with the WA/Integromat/MessageBird integration process depending on what sort of messaging to want to send out, to what sort of audience and if it needs to be manual or automated.
    Whether MessageBird will send to an Australian mobile or not - I cannot say for sure. But I have successfully sent SMS messages to Canada (where I am located), UK, Italy, India, Philipines, South Africa, Germany and israel. It does support the USA, but for the USA (like Canada) you need to purchase a private virtual number to send there so I have not tested that. I believe that you can also send messages through that interface to WhatsApp as well. You can send your messages through Integromat and MessageBird either by sending an email to the user mobile@... address or by calling the MessageBird module in Integromat.

    If you would like to test if it can send a message to a mobile in Australia - just send me a phone number to send to. Needs to be a complete number as would be dialed by someone calling you from another country.
    If you do not want to post a number here - you can find me in the Wild Apricot Grove FB page. Friend me there and then you can DM me the number

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    If you are looking for direct member to member chat type messaging I actually think that requiring that a member be on the WA site is a disadvantage.

    Consider setting up a Slack account for your organization (both free and $$ versions are available - their site will give you the differences).

    Then you simply invite all your members to join Slack (those who are interested in using this chat feature). Within Slack you can set up multiple channels, eg complete organization, just the executive team, various committees and so on. Access to these channels can be managed. Slack also supports 1/1 (private) chats and adhoc group chats.

    You can use Slack with any of the following:

    Through your web browser
    A Windows desktop client
    A smartphone App

    Slack has integration with Integromat (as does WA), so you could easily use that integration to add/invite members to Slack, automatically send Slack messages based on event activities etc

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    For what it is worth - I am now using Integromat to pick up events from my GMail calendar and then pulling applicable list of members from WA and integrating with MessageBird to send the desired SMS message.

    Robin Sapiro supported this idea  · 
  2. 5 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Developers » API  ·  Flag idea as inappropriate…  ·  Admin →
    Robin Sapiro supported this idea  · 
  3. 23 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    15 comments  ·  Wishlist » Members  ·  Flag idea as inappropriate…  ·  Admin →
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    So what you really need is 1 of those short form URLs to replace the whole long string. However you do not want to be using 1 of the generic such services like tinyurl as you still get a random sort of string.

    The answer is to use rebrandly.com
    What is cool about this site is that besides creating generic links using rebrandly.com/xxxxx - where if you want you can actually specify the xxxxx if you choose, you can also use your own doman name for these links - or even a subdomain name - so you get either of the following: mydomain.com/membername or subname.mydomain.com/membername
    Personally I prefer to go with the subname method (just head over to your domain registrar site and create a subdomain of say 'Members" - then on Rebrandly you register the domain as members.mydomain.com
    Now you add a new shortcut on Rebrandly like members.mydomain.com/JohnSmith that points to Johns profile page on WA

    Check their actual pricing https://www.rebrandly.com/pricing
    Your main choice between the free plan and the next plan will be the number of links that you require. Do not worry too much about the clicks tracked limit in the free plan - that is just logging - you get unlimited click throughs in all plans.

    Robin Sapiro supported this idea  · 
  4. 328 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    72 comments  ·  Wishlist » Website / Content  ·  Flag idea as inappropriate…  ·  Admin →
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    If you have any HTML and JavaScript skills (or the $$$ to pay someone with those) - have a look at the sample code at: https://benalexkeen.com/autofilling-forms-with-javascript/

    It really took me about 3 minutes to:
    Create a new test page on my WA site
    Add a Custom HTML gadget
    Pate the sample code from that page
    Save the page

    And I have a working form.

    Now obviously if you want to prefill that form with some member data - you are also going to have some JavaScript to call the applicable WA contact API and extract what you need and then once the user clicks a 'Save or Submit' button - some more JavaScript to extract the data entered by the user and either plug that back into the WA database (WA Contact API) or do whatever else you want with the data.

    Real point is - while this request is extremely popular - it is 'only almost 3 years old' - pretty young for WA requests. Additionally to design a form feature that will meet the requirements for each and every person who voted for this enhancement - is just flat out going to be impossible.

    All you have to do is read through a few of the 70 comments and see just how many variations of requirements are there:

    Report expenses
    Contact Us
    Health & Safety forms
    Accident Forms
    Athlete Declarations
    Suggestion box
    Volunteer signup
    Maintenance requests
    Information requests
    Submit violations
    Submit ideas for beatification

    And that list is just from the first of 4 pages of comments

    There is also a lot of great documentation on HTML and JavaScript on the web for those of you who like myself do this for a not for profit and are always cash strapped.

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    For a basic 'contact us' form (ie allow a visitor to send a selected contact an email without revealing the recipients address) have a look at my site: HODToronto.com - down at the bottom you will see my name in the footer - click on it and you will see the Captcha protected option to email me.

    Although I must say that of late some of the content that I have been receiving makes me think that the Captcha schema being used by WA (the very original design) is being hacked by a robot. WA does need to update this to more current type of Captcha like those where yo select all images with a car in them or even better where you just click the check box that says 'I am human' - the logic behind those is really interesting.

    I have just BTW had this running since the site first went live in 2013.

    It is out of the box WA functionality

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    So while not actually implementing forms in WA, consider the following.

    With a free GMail account you can create forms (https://docs.google.com/forms). Log on with you GMail ID.

    Data entered into a form is stored in a Google sheet in this account.

    Integromat has a function that will pick up any new rows added to a Google sheet, so you even have the option of adding the data added through the Google form to a WA contact record.

    For access to the Google form, you can either embed this in a WA web page or provide a link to a stand alone copy of the Google form.

    If you are using the standalone version - consider customizing the form with your WA web page banner.

    Also of interest is that you are using the standalone method, you can also create a URL that that will prefill any fields that you select. So for example if sending out the URL in an email from WA, you can use the email macros to embed any of the existing membership data into that URL

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Just 1 thing to consider about allowing anonymous submissions.

    You open yourself that way to spamming.

    Any anonymous option should be something that each site admin can turn on/off. Default should be off.

    Anonymous submissions should also have the option of requiring a captcha - captcha option by default to be enabled

    Robin Sapiro supported this idea  · 
  5. 59 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    26 comments  ·  Wishlist » Finances  ·  Flag idea as inappropriate…  ·  Admin →

    We’re collecting comments and votes for now, no actual development is planned so far

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    So as noted, this 'Wish' has been around for about 8 years and to date no action. Not at all a surprise (sadly).

    That being said, whatever solution to this that might be developed one day, you can be sure that it will not meet everyone's needs. So I tend to look at a lot of the missing features in Wild Apricot from a perspective of not so much when (if ever) will WA deliver these, but rather from a perspective of what tools can I utilize to achieve the desired results myself.

    A quick look at Integromat shows that there are already 2 WA invoice related modules there (among others) that can retrieve a list of all unpaid invoices (optionally from a specific start date and/or for a specific member) and another that can retrieve the invoice details (such as the invoice date, the member being invoiced and each line item detail and so on). Assuming that you also have mailing addresses on file for each member, you can pull this information in Integromat as well and now use this information to build your invoices and/or statements which you can then email or mail to your members. Potentially many options available to construct these documents. If your choice is to send by mail - have a look at ClickSend (their send to post module was recently added to Integromat). You can schedule your Invoice Reminder/Statement scenario to run on a scheduled basis (monthly or whatever).

    Is Integromat an easy platform to develop scenarios on? Really depends on the users skills. having spent many years in IT (starting out as a programmer), there was a learning curve - but not too steep and there is a great Facebook Group where you can get a lot of help. While you do not need to be actually able to write code, you do need to understand a fair amount of programming concepts and so on. You can of course always engage with some of the WA partners who can do this for you (for a few $$). I would think that for someone who has Integromat experience and also understands WA and depending on what exactly you want to get out of it, this could probably be designed and built in give or take a week.

    Should WA provide such a solution - ideally yes - they would deliver all the open wishes by the end of 2021. But even though pot is legal here in Canada (where WA is based) - there is not enough of it available for all the WA users to believe that this might happen.

    So why not invest a week or 2 and do this yourself. Or maybe 1 of those partners will read this and decide to deliver this as a paid for add on.

    Is Integromat easy to

    Robin Sapiro supported this idea  · 
  6. 2 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    6 comments  ·  Developers » API  ·  Flag idea as inappropriate…  ·  Admin →
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Problem resolved - amazing what a good night's sleep and my morning espresso can do.

    In HTML string copied from an original email sent from WA, converted all " to ', %20 to just a space and then added in the macros by just typing in {macroname}.

    I can even embed my site banner and any other images stored in WA in the email.

    I am now a happy camper and only need to determine the Saved Search ID so that I can send to a specified set of recipients

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Successfully sending an email with the API from the https://api.wildapricot.org/ui/home/RequestOAuthToken page.

    Works great when my Body is just plain text.

    However SwaggerHub documentation for the SendEmail parameters says that this can be HTML and include macros (see attached screenshot).

    However all attempts to include HTML result in error message: invalid JSON: Unexpected token in JSON at position NN.

    Is there any sample code available that would show how to insert the HTML code?
    Additionally - how would a macro be included - or is it as simple as typing in {macroname} inside the text or HTML.

    Robin Sapiro supported this idea  · 
  7. 4 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    4 comments  ·  Developers » API  ·  Flag idea as inappropriate…  ·  Admin →
    Robin Sapiro supported this idea  · 
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    What we recently did (so far only in respect of membership renewals - which is really all that we were invoicing from WA) was to totally disable this in WA. We made the membership level free and with no renewal period.

    Then we set up an account with the Wave App (free) although it may not support invoicing in South East Asia - but you could probably use the same concept with your payment service.

    Next step was on our scheduled invoicing date to use Integromat to extract the applicable details from WA for the members who needed to be invoiced and for each of these load them as a 'customer' in Wave and then generate the invoice for the applicable amount. Now the total invoicing process is handled in Wave including the tracking of outstanding payments and follow ups.

    The other advantage of this process is that it also positions us for multi chapter support on our WA site as with this concept we can direct the invoices for different chapters to different Wave instances (each instance is associated with it's own bank account) and also allows for multiple currencies.

    While Omise may not be supported by Integromat if you have already developed the API calls to Omise for invoicing etc, you could easily enough port those to Integromat and call the API from there.

    Future steps will be to develop options to handle Event billing and also Shop sales and Donations.

  8. 2 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    21 comments  ·  Developers » API  ·  Flag idea as inappropriate…  ·  Admin →
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Hi Curtis,

    And the change access setting is resolved as well.
    From the Settings page - select Privacy under Members.
    Then click Edit and next to the field that you do not want users to change the privacy of - check the Lock checkbox. Now user cannot make the field visible to other users.

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Hi Curtis,

    The loop concept worked great - but just wondering if you actually had it working as you typed it or if it was just a concept. I had to make a few syntax changes to actually get it to work. Following is what I eventually built in order to evaluate how the various field attributes effected what I was able to see with different viewing options:

    <html>
    <body>
    <p id="demo3"></p>
    <script>
    $(document).ready(function(){
    $.ajax(
    {
    url: "/sys/api/publicview/v1/accounts/1111111/contacts/me?includeDetails=true",
    type: "GET",
    dataType: "json",
    cache: false,
    async: true,
    headers: { "clientId": "1z1z1z1z1z1z1" },
    success: function (data, textStatus, jqXhr) {
    var d = new Date()
    var textblock = "Me - "
    var newline = (d + "<br>")
    var textblock = (textblock + newline)
    var i;
    for (i= 0; i < data.FieldValues.length; i++) {
    var fname = data.FieldValues[i].FieldName
    var fvalue = data.FieldValues[i].Value
    var newline = (i + ": " + fname + " - " + fvalue + "<br>")
    var textblock = (textblock + newline)
    };

    document.getElementById("demo3").innerHTML = textblock;},
    error: function (jqXHR, textStatus, errorThrown) {
    alert(textStatus + " (" + jqXHR.status + ") : " + errorThrown);}
    });
    });
    </script>

    </body>
    </html>

    Using the above gave me a list on my page of the various field names and their content.

    I also set up a specific set of fields covering all the combinations of access to a field (both for the member to view/edit their own data and also for other members to view/edit a members data).

    I then looked at the data for a specific set of members (in a member level that used these specific fields only) and observed the following:
    The only problem that exists with this is that if a member views their profile, then selects Edit and then Privacy is that they can then make this field visible to other members. I would even think that this is a defect in WA in that if a member has only view access to a field (which means that they cannot edit the content) that they should also not be able to edit the access to that field either.

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Hi Curtis,

    Thanks for the loop suggestion - that will actually work great for me. Certainly if I am only looking to extract a single variable. If I need a few variables however it will need some tweaking to pick them all up with a single pass through the data (as opposed to looping through once for each variable needed).

    Re your 'hidden' fields - something interesting that I noticed was that when I run the API for /me or if I run it with /12345 (where 12345 is my Contact ID) - I get back a different number of fields in the FieldValues array.
    I have not looked yet to see what the differences in the field lists are and therefore obviously what the attributes are of any fields that appear in 1 list versus the other.
    But it might just be possible that 1 version of the API returns fields that otherwise would be hidden with the other version.
    So speculating that if the /12345 version of the API call brings back fields that are hidden with the /me version - then first make a call with /me - retrieve the actual Contact ID and then call with /12345
    It is worth looking into.

    Your comment about international members is also interesting.
    Do you have multiple chapters?
    How do you manage the collection of membership dues and also possible multiple currencies?
    How do you manage administrators of 1 chapter not accessing membership data of other chapters?
    These are all things that I am working on as we also are an international organization. At the moment we have 6 chapters in Canad and the USA each with their own WA site. It makes it a whole lot more expensive than having everyone on a single site. With the current WA pricing structure we could bring everyone onto 1 site at a lesser cost than we have today combined and still have capacity to bring on board our remaining chapters in the USA, UK, South Africa and Israel.
    From a membership perspective, I already have a solution based on the WA database using Integromat and the Wave App.
    I am also looking into using this API to be able to manage the access of the membership records such that each chapter membership admin can only access their own membership records.

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Hi Curtis,

    Thanks for the loop suggestion - that will actually work great for me. Certainly if I am only looking to extract a single variable. If I need a few variables however it will need some tweaking to pick them all up with a single pass through the data (as opposed to looping through once for each variable needed).

    Re your 'hidden' fields - something interesting that I noticed was that when I run the API for /me or if I run it with /12345 (where 12345 is my Contact ID) - I get back a different number of fields in the FieldValues array.
    I have not looked yet to see what the differences in the field lists are and therefore obviously what the attributes are of any fields that appear in 1 list versus the other.
    But it might just be possible that 1 version of the API returns fields that otherwise would be hidden with the other version.
    So speculating that if the /12345 version of the API call brings back fields that are hidden with the /me version - then first make a call with /me - retrieve the actual Contact ID and then call with /12345
    It is worth looking into.

    Your comment about international members is also interesting.
    Do you have multiple chapters?
    How do you manage the collection of membership dues and also possible multiple currencies?
    How do you manage administrators of 1 chapter not accessing membership data of other chapters?
    These are all things that I am working on as we also are an international organization. At the moment we have 6 chapters in Canad and the USA each with their own WA site. It makes it a whole lot more expensive than having everyone on a single site. With the current WA pricing structure we could bring everyone onto 1 site at a lesser cost than we have today combined and still have capacity to bring on board our remaining chapters in the USA, UK, South Africa and Israel.
    From a membership perspective, I already have a solution based on the WA database using Integromat and the Wave App.
    I am also looking into using this API to be able to manage the access of the membership records such that each chapter membership admin can only access their own membership records.

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Hi Curtis,

    So I think that I am closing in on my solution (which is slightly different from yours in that I do not need to hide the specific field contents from other members or stop the member from editing the field).

    By using the API: url: "/sys/api/publicview/v1/accounts/NNNNN/contacts/me?includeDetails=true",

    I get back all the visible fields inside the JSON string.

    Following is still theory - but based on the details at: https://www.w3schools.com/js/js_string_methods.asp
    (I have found that w3schools.com is a great source for any information on HTML, JavaScript and any other cool web stuff).

    That assuming I am looking for a Home Phone in the return results - which in the JSON string looks like this:

    {"FieldName":"Home Phone","FieldType":"String","FieldOrder":13,"SystemCode":"custom-3107385","Value":"+1 416 123 1234"},

    I would first use the 'indexof" function to locate the position of the value: {"FieldName":"Home Phone", in the JSON string.
    Then from that offset locate the position of the value: "Value":
    These 2 allow me to calculate the start position of my actual data: +1 416 123 1234
    Then again from the last offset locate the position of the value: "},
    This allows me to determine the length of my data
    The using the data start offset and the data length

    Then use 1 of

    slice(start, end)
    substring(start, end)
    substr(start, length)
    to actually extract the data that I want - and so we are off to the races.

    For you given the need to make the 1 field in particular inaccessible to all other than a membership admin - you will have to play around with the field attributes such that you can restrict standard access but still retrieve with the API - night be a challenge.

    So some possible solutions for you might be what is known as 'Security by Obscurity' in that you do something like splitting the key across multiple fields and with obscure field names and then concatenate these fields in your java script, or insert some dummy characters into the field which you then remove as you retrieve the field. Obviously to do this - the administrators will have to know how to do this.

    I am also considering to use this function as a form of 'Site Macro' where I will be able to dynamically display certain information that can change frequently - like 'Next Member Meeting Date' or 'Next Board Meeting Date' on the site by simply updating the values of these fields in a specific 'SiteMacro' membership record and then use the API on the form of: url: "/sys/api/publicview/v1/accounts/NNNNN/contacts/12345678?includeDetails=true",
    Where 12345678 is the membership ID of my 'Macro' record.

    Seen as that we keep our meeting dates in a GMail Calendar - I will just run a scenario in Integromat say once a week to pull this data from GMail and update the WA Member record.

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Just out of curiosity what sort of data do you want to display that is so private?

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Hi Curtis,

    No time for any API testing today.
    But for the membership field access - I have been considering some process of replicating all the WA fields that I am willing to allow a member to edit to a Google Sheet and then from a member page use the API to retrieve their ID and use that to load the Google Sheet data to a form where they can view/edit whatever.
    Then the updated row is replicated back to WA. All this replication with Integromat.

    My underlying for an approach like this is that I want to move to a multi chapter environment and only want to allow the chapter admin to only be able to edit their own chapter member data.

    With an approach like that I then have to do something to disable the view my profile option out of the sign on gadget.

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Hi Curtis,

    So some good progress from one of those flashes of inspiration that one sometimes has as you wake up.

    When you call the API and specify 'me' (which is the current user), you only get back in the JSON string (per console dump) the rather short set of data as you previously mentioned (and that I was able to recreate).

    However if instead of 'me' you run the API with an explicit Contact ID number - eg 12345678 - then the JSON string dump shows ALL the fields and their related data.

    So this is a step forward. I would think that to implement this for the current user, that you would first have to call the API with 'me' - then extract the ID data and call the API again using the explicit ID.

    So that will at least bring back everything and now we just need to figure out how to extract the custom field content from the JSON string.

    I will let you know how I progress with that (but due to workload of my day time job - probably will not move on that until tonight).

    Let me know if you make any progress.

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Might be easier to switch to FB Messenger - looked for you and found 9 of you.
    If interested - look for me - I am unique.

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    So on my web page - I also dumped the JASON string to the console and agree with your earlier comments from yesterday.

    However when I run the exact same API from: https://api.wildapricot.org/ui/home/RequestOAuthToken - I get back ALL the fields in my membership record.
    On the page above - just enter your API key and click Submit. Then on the next screen enter the API and click GO.
    Just remember that you have to use an actual ID # as opposed to 'me' when testing as above.
    It would be interesting to be able to dump the JASON string from there as well - but no real idea how to do that.

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    I just pulled a list of the System Codes for a few of the System fields. Cannot say that I actually tried to retrieve more than a few of them.
    Sorry if I misled you.

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    I see what you mean by the restrictions of the System fields.
    If you make them Admin only - then the user will not be able to see their own data either and if you let the user see that data, then any other user can see when viewing their profile - assuming you provide profile access at all to other users.

    The Phone field is a System field so it can be retrieved using the code you referenced. The code that I am using is based on that anyway.

    I just changed the Alert.... string to instead be 'document.getElementById' instead of 'Alert' and then it appears as text on the page instead of as the popup.

    For the data.values you can replace 'values' with any of these:
    "Email"
    "FirstName"
    "LastName"
    "Organization"
    "Id"
    "Phone"
    "PendingRenewal"

    This will build you a clickable link based on the Contact ID
    document.getElementById("demo").innerHTML =("<a href=https://www.w3schools.com/&quot; + data.Id + ">Click here to go somewhere</a>");},

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Hi Curtis,

    For whatever data that you want to retrieve and display, would it be a viable option for you at all to re-purpose 1 of the current System fields. I would suspect that other than ID, email, First and Last Names you could always use any of the remaining fields for whatever you want. phone number for example could be recreated as a custom field.

    If that works for you, I can give you my custom code (based on a sample from Dmitri) that I have so far. Still trying however to figure out how to also do this with the custom fields.

    Robin Sapiro supported this idea  · 
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Hi Curtis,

    Did you ever make any progress with this. I am trying to achieve exactly the same.
    While I can retrieve and display any of the standard WA provided system fields (such as email, contact ID, first and last name), custom fields still defeat me.

  9. 2 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Developers » How to  ·  Flag idea as inappropriate…  ·  Admin →
    Robin Sapiro supported this idea  · 
  10. 5 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Developers  ·  Flag idea as inappropriate…  ·  Admin →
    Robin Sapiro supported this idea  · 
  11. 2 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Developers » How to  ·  Flag idea as inappropriate…  ·  Admin →
    Robin Sapiro supported this idea  · 
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    It is doable with the API embedded into your javascript running on a WA page in an HTML gadget.

    I can provide sample code if you need

  12. 95 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    33 comments  ·  Wishlist » Contacts  ·  Flag idea as inappropriate…  ·  Admin →
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Just a thought, but with Integromat you can trigger a scenario whenever a membership record is added/updated. In this way you could potentially grab the fields that need to be formatted and/or validated and either by using regex within Integromat or by passing the data off to some other application do the validation and formatting and then update the applicable member record with the correct data.

    Robin Sapiro supported this idea  · 
  13. 4 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    4 comments  ·  Developers » API  ·  Flag idea as inappropriate…  ·  Admin →
    Robin Sapiro supported this idea  · 
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Dmitry Smirnov - I followed the link to House of Bamboo below - it works great.
    Copied the sample at https://gist.github.com/DmitriySmirnov/0beda14e93bed7b5dc2f back to my site.
    Edited the ClientID in that sample to match 1 setup on my site

    No errors when I click on the Who Am I link - but nothing happens either.

    I suspect that I may have to edit the line
    <script type="text/javascript" src="https://rawgit.com/WildApricot/ApiSamples/master/JavaScript/waPublicApi.js"></script>
    But to what?
    Or is there anything that I need to download and save on my site?
    If so - from where and where does it need to be saved.

    Thanks

  14. 4 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  Wishlist » Emails  ·  Flag idea as inappropriate…  ·  Admin →
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Setup a GMail calendar.
    Add the recurring event on whatever basis
    Use Integromat to read the calendar for events due in the next N days.
    Get contacts from WA (as applicable)
    Now send the email from the GMail account (with Integromat) with the calendar data to the selected members.
    Schedule the scenario to run as and when you want (daily/weekly etc)

    Robin Sapiro supported this idea  · 
  15. 41 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    17 comments  ·  Wishlist » Website / Content  ·  Flag idea as inappropriate…  ·  Admin →
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    This idea had been around now for 8 and a half years and commented as a good idea by WA over 5 years ago.

    You already have the {MACRO NAME} function embedded in the email editor - how difficult would it be to embed same into the web page editor.
    And while that is being done - also add the ability to add site variables as Macros.
    A really simple way to do that would be to have a specific contact/member that is designated as the SiteMacro and then have all the fields in that contact defined as {SITE_FIELD_NAME} and these could be added into any web page or email. The Site macros would resolve whether a user is logged on or not.

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    While rather limited in function - you can try the following either in an HTML gadget or also in an HTML Snippet within a regular text gadget.

    <script type="text/javascript">(function() { var container = document.querySelector('.loggedName') || document.querySelector('.loginBoxProfileLink'); if (container) { document.write(container.innerText.replace(/[\n\r]/g, '') || 'Guest'); } else { document.write('<div class="userClass_FirstName"></div>');

    WA.PageParsed(function() { var container = document.querySelector('.loggedName') || document.querySelector('.loginBoxProfileLink'), out = document.querySelector('.userClass_FirstName'); if (out) { out.innerHTML = (container ? container.innerText.replace(/[\n\r]/g, '') || 'Guest' : 'Guest'); }}, window);}})();</script>

    For a signed on member it will show their full name.
    Not at all sure where I found this or if it can be tweaked to show any other data relating to the member

    Robin Sapiro supported this idea  · 
  16. 33 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    8 comments  ·  Wishlist » Website / Content  ·  Flag idea as inappropriate…  ·  Admin →
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Hi Karl,
    I am not at all sure if I am understanding the problem here at all.
    For years now, when adding a link to whatever text you have on a page (just a regular text gadget), you have been able to add a link to internal pages, external URLs and files in the WA File structure.
    From a file perspective however the pain has been that as you add a new file to the directory, you have to add a new link to the page.
    What is really required here is a Library Gadget - where you can link to all the files in a directory and optionally any sub-directories.
    See: https://forums.wildapricot.com/forums/308932-wishlist/suggestions/8825557-document-library-gadget
    Now an additional idea that I have implemented for about 3 years now is that you can add files to a forum article (maximum of 20 files).
    So I have a Meeting Minutes Forum and each year I start a new article (members can only read and cannot even comment). Than as we go through the year, I just edit that article and add in the most recent applicable file(s).
    I also do the same thing for my news letters (save the PDF file of these into the applicable post).
    From an administrative perspective - just edit the post, take the add file option and select the file from your PC. save the post. Under the covers, WA stores these files in the File system (there is some funky naming system).
    My email to members when a new file is added just tells them that whatever has now been posted and here is the link to the actual forum.
    I have found that getting members to subscribe to the forums is a total pain and of course WA does not provide any support for Admins to subscribe members to a forum (only to change or remove a subscription once a member has subscribed)

    Robin Sapiro supported this idea  · 
  17. 133 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    13 comments  ·  Wishlist » Emails  ·  Flag idea as inappropriate…  ·  Admin →
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    @Rosemary, have you thought about the following as a way of using Mail Chimp without having to maintain a duplicate data base which most certainly will get out of sync over time.

    Probably the best thing that WA did in the last few years was to deliver the function to access your WA data base from Integromat. Integromat also integrates with MailChimp and supports numerous operations. I am not at all familiar with MailChimp, so cannot comment on the interface as to if it would work.
    But the concept is that while you probably still design your newsletter in MailChimp, you trigger the actual send of these through Integromat. In this way prior to sending - you sync any needed information from WA to MailChimp using Integromat. Then when that step is complete - initiate the send. Looks like you can also get statistics back from MailChimp and you could then use those to update custom fields in WA if you so desired.

    You could also (with Integromat) capture any changes to the WA data base (including adds and deletes and propagate these in real time to MailChimp.

    So - yes - you are keeping a copy of your WA data in MailChimp - but the replication is automatic and hence it is always in sync

    Beyond that all that Alex says is absolutely correct

    Robin Sapiro supported this idea  · 
  18. 104 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    52 comments  ·  Wishlist » Online payments  ·  Flag idea as inappropriate…  ·  Admin →
    An error occurred while saving the comment
    Robin Sapiro commented  · 
    Robin Sapiro supported this idea  · 
  19. 68 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    44 comments  ·  Wishlist » Chapters  ·  Flag idea as inappropriate…  ·  Admin →
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Over the last month, using Integromat and the Wave App, I developed the scenarios in Integromat to sync my WA membership database into my Wave instance.
    This scenario can be run as and when required (but definitely before a billing cycle).
    For WA members not in the Wave instance - it adds them. For WA members already in the Wave instance it updates them with the crucial invoicing information.

    The second scenario processes a specific Membership level from WA and based on a field value for each member invoices a specific item to that member which is either the annual, semi annual, quarterly or monthly membership fee. There is also an option to invoice a discount if needed (this year due to Covid we discounted our renewal rates). These invoices are then emailed to each member.
    The Wave App is free and thus we can have an instance of that for each chapter.
    Each Wave instance can have it's own currency and target bank account for deposits.
    Pricing same named items can vary as well.
    Wave has it's own payment gateway for Canadian and US based accounts.
    For UK accounts they take payments through Stripe. Stripe would probably also work in any other country where Stripe is accepted (but seems to be limited). payments made through either the Wave gateway (actually much easier to use than PayPal) automatically reconcile to the invoice. The web interface also supports manually applying payments from other sources to the invoices. Optionally Wave can also be used as a full blown cloud accounting application.
    By using Integromat to initiate the invoices - it could also be possible to use other tools such as Invoice Ninja - just modify the Integromat scenario. Invoice Ninja integrates with many other payment processors (including PayPal which is just about universal). Invoice Ninja does however have a limit of 100 customers (ie WA members) per instance in the free version.

    Still have to figure out how to handle invoicing for donations, events and store.
    However we do not use any of these (but some of our other chapters do).
    Donations and store can probably be handled with the Wave checkout option - sort of like a PayPal button.

    A week ago we went live with this integration and ran the annual membership renewal.
    Interestingly the payment response has been significantly quicker that in previous years using the native WA invoicing. With Wave there is a link in the delivery email that allows a member to pay with a single click from the email. After that just select CC or bank withdrawal and you are done in just a few minutes.

    Robin Sapiro supported this idea  · 
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Ditto for us - need multiple payment gateways and also multi currency support. Also ability to protect membership data of chapters ie much more granular capability setting for Admins.

    So far no movement from WA on any of these needs other than 'not happening any time soon.

    Note that this 'wish' was originally posted by WA almost 8 years ago.

    I am also researching a replacement solution - currently 6 chapters using WA and on top of that the recent ~30% price hike.

    We currently have the first pass of our requirements document. Sending it to other chapters today for review and comment.

    So far have identified about 8 other vendors that may fit our needs.

    Expect to have comments from other chapters back early next week and will then forward consolidated requirements to above vendors with expection of having their responses by mid May.

    I would be happy to share all this information with anyone else on this forum - just send me your email address - robinsapiro+wa at gmail dot com

  20. 78 votes

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)

    We’ll send you updates on this idea

    45 comments  ·  Wishlist » Members  ·  Flag idea as inappropriate…  ·  Admin →
    An error occurred while saving the comment
    Robin Sapiro commented  · 

    @Mike - there are a number of options out there that can do 'direct messaging'.
    many of these can be integrated with your WA database - really just a matter of what exactly you mean by 'direct messaging'.
    In other words what are the options that you would be open to in order for your membership to receive these messages.
    Text (SMS), WhatsApp, Facebook Messenger, etc etc
    Also relevant would be how many of these direct messages would you be thinking of sending out per month - ie # of messages * # of members = total message count per month and how long would these messages be (number of characters)

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    So just an additional thought.

    There is a great product out there (and I have no connections with them other than being a user) - Slack. While there are various paid levels, they also offer a free version The main limitation of the free version is amount of history that you can have in a workspace and a few other less important restrictions.

    Slack provides direct person to person messaging as well as group chats. Person to person is always private and groups can be private or public. Users can access their Slack workspace with any web browser and there are also Apps for Windows, Android, IOS etc. personally I prefer the Windows desktop app. A user can be singed on to Slack on multiple devices concurrently. Also if a user is already using Slack (say at work) - just add on the Slack workspace for the WA group as well.

    Also Slack work spaces are by invitation only.

    You can get a Slack workspace setup in less than 10 minutes and then it is just a matter of adding a few channels (if needed) and inviting your members to join (getting them to join is the hardest part - they often do not respond to the invitation email).

    An error occurred while saving the comment
    Robin Sapiro commented  · 

    Hey folks - this was only posted as a suggestion about 12 years ago (and by a member of the WA team) - so just be patient ;-)

    Robin Sapiro supported this idea  · 
← Previous 1 3 4 5 9 10

Feedback and Knowledge Base