<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Aptos;
panose-1:2 11 0 4 2 2 2 2 2 4;}
@font-face
{font-family:"Apple Color Emoji";
panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
{font-family:"Hind Regular";
panose-1:2 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:10.0pt;
font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
font-size:10.0pt;
font-family:"Courier New";}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;}
span.EmailStyle21
{mso-style-type:personal-reply;
font-family:"Aptos",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;
mso-ligatures:none;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:1234895541;
mso-list-template-ids:180340;}
@list l1
{mso-list-id:1582064146;
mso-list-template-ids:394325674;}
@list l2
{mso-list-id:2052611744;
mso-list-template-ids:-381242482;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:12.0pt">Hello,<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:12.0pt">Thank you for building this and sharing it with the community. Our teams have looked this over, and we recognize the immense value and effort here.<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:12.0pt">Initiatives like this send a clear message: chapters need and want a better, more efficient way to manage their memberships. You've built a solution
to a problem that we know has been a source of frustration, and we appreciate you highlighting it in such a practical way.<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:12.0pt">However, as we all look at using this tool, we want to share two quick thoughts in the spirit of open collaboration:<o:p></o:p></span></p>
<ol start="1" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo3">
<b><span style="font-size:12.0pt">A note on member registration:</span></b><span style="font-size:12.0pt"> The one function we can't support is adding members via email. The self-registration portal is a crucial step where new members agree to the terms and
privacy policy. This is a legal requirement that protects both the member and the organization, so it must remain a user-driven action.<o:p></o:p></span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo3">
<b><span style="font-size:12.0pt">This is a community-supported tool:</span></b><span style="font-size:12.0pt"> We see this as a community-led project. Like any tool that cleverly works with a live website, it may need updates if the AMS portal changes.<o:p></o:p></span></li></ol>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:12.0pt">Most importantly, please know that your efforts are not going unnoticed. This kind of feedback is exactly what helps us prioritize our future development
work. While we are acknowledging the desire for this functionality, development timing will be balanced against competing community priorities.<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:12.0pt">We are listening. Thank you again for pushing this conversation forward. Constructive feedback, along with ensuring that our conversations remain
respectful and productive, will help us all move forward more effectively.<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:12.0pt">Best regards,<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:12.0pt">Scott<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><b><span style="font-size:9.0pt;font-family:"Hind Regular";color:#0C1C2C">Scott Manser, </span></b><span style="font-size:9.0pt;font-family:"Hind Regular";color:#0C1C2C;background:white"> Director, Business Systems</span><span style="font-size:9.0pt;font-family:"Hind Regular";color:#0C1C2C"><br>
</span><span style="font-size:9.0pt;font-family:"Hind Regular";color:black"><a href="mailto:Manser@isoc.org" title="mailto:Manser@isoc.org"><span style="color:#0563C1">Manser@isoc.org</span></a></span><span style="font-size:9.0pt;font-family:"Hind Regular";color:#0C1C2C;background:white">
</span><span style="font-size:9.0pt;font-family:"Hind Regular";color:#0C1C2C"><br>
</span><span style="font-size:9.0pt;font-family:"Calibri",sans-serif;color:black"><img border="0" width="79" height="40" style="width:.8229in;height:.4166in" id="Picture_x0020_1" src="cid:image001.png@01DBF7EE.000C3A00" alt="signature_1282566614"></span><span style="font-size:9.0pt;font-family:"Hind Regular";color:#0C1C2C"><br>
<span style="background:white">internetsociety.org | @internetsociety</span></span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#212121"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#212121"> <o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<div id="mail-editor-reference-message-container">
<div>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">Chapter-delegates <chapter-delegates-bounces@elists.isoc.org> on behalf of Klaus Birkenbihl via Chapter-delegates <chapter-delegates@elists.isoc.org><br>
<b>Date: </b>Thursday, July 17, 2025 at 2:22</span><span style="font-size:12.0pt;font-family:"Arial",sans-serif;color:black"> </span><span style="font-size:12.0pt;color:black">AM<br>
<b>To: </b>Christian de Larrinaga <cdel@firsthand.net><br>
<b>Cc: </b>Chapter Delegates <chapter-delegates@elists.isoc.org><br>
<b>Subject: </b>Re: [Chapter-delegates] isoc-ams API released (for developing, geekish, and bugged out ISOC AMS Admins only!)<o:p></o:p></span></p>
</div>
<p>[adding Chapter Delegates <a href="mailto:chapter-delegates@elists.isoc.org"><chapter-delegates@elists.isoc.org></a> since assumed to be of general interest]<o:p></o:p></p>
<p>Thanks Christian,<o:p></o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">Christian de Larrinaga wrote on 16.07.25 18:32:<o:p></o:p></span></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre>Well done klaus.. looks like you did this despite zero help from the AMS<o:p></o:p></pre>
<pre>team. It will take a bit of work I guess to implement into a chapter<o:p></o:p></pre>
<pre>admin database and then as a web scraper any change to the AMS which<o:p></o:p></pre>
<pre>can happen pretty arbitrarily might be breaking.<o:p></o:p></pre>
</blockquote>
<p>After looking at the code (HTML & Co) the risk of AMS changes seems smaller than it first appeared. If there are any they most likely will not be dramatic. But as I mentioned in the readme: the risk exists. So wait and see ...<o:p></o:p></p>
<p>Members Administration in this context is a dead simple thing. AMS takes a lot of effort to make it komplex.<o:p></o:p></p>
<p>isoc-ams makes it simple again. Nearly everything in members admin - that can be done with online AMS - can be done with a simple isoc-ams workflow - no programming skills required at all.<o:p></o:p></p>
<p>2 Steps:<o:p></o:p></p>
<ol start="1" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo1">
<span style="font-size:12.0pt">Get lists of AMS Chapter members and pending applications:<o:p></o:p></span></li></ol>
<pre style="margin-left:.5in;text-indent:-.25in;mso-list:l1 level1 lfo1"><![if !supportLists]><span style="mso-list:Ignore">2.<span style="font:7.0pt "Times New Roman""> </span></span><![endif]> python -m isoc_ams<o:p></o:p></pre>
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt;margin-left:.5in">
<span style="font-size:12.0pt">Delivers a list of AMS Chapter members and a list of pending applications.<o:p></o:p></span></p>
<ol start="3" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo1">
<span style="font-size:12.0pt">Decide what operations are due (deny or approve applicants, delete entries from members list).<br>
Then call isoc-ams like this:<o:p></o:p></span></li></ol>
<pre style="margin-left:.5in;text-indent:-.25in;mso-list:l1 level1 lfo1"><![if !supportLists]><span style="mso-list:Ignore">4.<span style="font:7.0pt "Times New Roman""> </span></span><![endif]> python -m isoc_ams -i <commands.txt<o:p></o:p></pre>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in">
<span style="font-size:12.0pt">the file </span><span style="font-size:12.0pt;font-family:"Courier New"">commands.txt</span><span style="font-size:12.0pt"> file holds the required operations like this<o:p></o:p></span></p>
<pre style="margin-left:.5in"> deny isocid1, isocid2 ...<o:p></o:p></pre>
<pre style="margin-left:.5in"> approve isocid10, isocid11 ...<o:p></o:p></pre>
<pre style="margin-left:.5in"> delete isocid20, isocid21 ...<o:p></o:p></pre>
<pre style="margin-left:.5in"> ...<o:p></o:p></pre>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:.5in">
<span style="font-size:12.0pt">to deny, approve pending applications or delete entries from the AMS Chapter members list.
<o:p></o:p></span></p>
<p>And you are done. No need to wade clicking (and maybe typing) through lot of pages.<o:p></o:p></p>
<p><o:p> </o:p></p>
<p>For a fully automated process using the API (as we do it at ISOC.DE) it is also straight forward and simple to implement. (If I ever decide to build a next release the interface will provide the option to do this in any programming language you like - not
only Python).<o:p></o:p></p>
<p>It also can be grouped in 2 steps:<o:p></o:p></p>
<ol start="1" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo2">
<span style="font-size:12.0pt">Apply your local rules how to treat pending applications e.g.<o:p></o:p></span></li></ol>
<ol start="1" type="1">
<ol start="1" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo2">
<span style="font-size:12.0pt">deny old ones that didn't make it to your local members list<o:p></o:p></span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo2">
<span style="font-size:12.0pt">approve those who made it to your local members list<o:p></o:p></span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo2">
<span style="font-size:12.0pt">leave the others as they are (maybe send an invitations to join)<o:p></o:p></span></li></ol>
</ol>
<ol start="2" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo2">
<span style="font-size:12.0pt">Compare your local members list (assumed to be the up-to-date one) with the AMS Chapter list:<o:p></o:p></span></li></ol>
<ol start="2" type="1">
<ol start="1" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo2">
<span style="font-size:12.0pt">delete those from the AMS Chapter list who are no longer on your local list<o:p></o:p></span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo2">
<span style="font-size:12.0pt">send a mail to <a href="mailto:ams-help@isoc.org">
ams-help@isoc.org</a> asking to add those who are not on the AMS list (since you are not authorized to add them).<o:p></o:p></span></li></ol>
</ol>
<p>That's it. I admit I was surprised how simple it turned out to be - once you manage to hide the AMS Web interface.<o:p></o:p></p>
<p>(Why is it a fairy tale by Danish Hans Christian Andersen: „Kejserens nye Klæder“ comes int my mind?
<span style="font-family:"Apple Color Emoji"">🙂</span>)<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre>Hope this isn't going to be a rod to your back - so to speak. But maybe<o:p></o:p></pre>
<pre>this will spur that strong sense of not invented here phobia at ISOC?<o:p></o:p></pre>
</blockquote>
<p class="MsoNormal"><span style="font-size:12.0pt">Frankly, I'm rather curious if there will be any reaction at all
</span><span style="font-size:12.0pt;font-family:"Apple Color Emoji"">😉</span><span style="font-size:12.0pt">. I think that the AMS folks over the last ten+ years never understood how an API should look like. So they silently denied any effort to provide it.<br>
<br>
<o:p></o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre>Having said all that kudos and respect.<o:p></o:p></pre>
</blockquote>
<p>Thank you.<o:p></o:p></p>
<p>Klaus <o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre>Klaus Birkenbihl via Chapter-delegates <a href="mailto:chapter-delegates@elists.isoc.org"><chapter-delegates@elists.isoc.org></a> writes:<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre>Dear AMS Chapter Admin,<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>by today the isoc-ams API is released. Don't ask AMS-help for it.<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>Just check <a href="https://github.com/birkenbihl/isoc-ams/">https://github.com/birkenbihl/isoc-ams/</a> for details.<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>Best regards<o:p></o:p></pre>
<pre>Klaus<o:p></o:p></pre>
</blockquote>
</blockquote>
<pre>-- <o:p></o:p></pre>
<pre>Klaus Birkenbihl<o:p></o:p></pre>
<pre>Internet Society German Chapter (ISOC.DE) e.V.<o:p></o:p></pre>
<pre>c/o ict-Media GmbH<o:p></o:p></pre>
<pre><a href="https://www.isoc.de">https://www.isoc.de</a><o:p></o:p></pre>
</div>
</div>
</div>
</div>
</body>
</html>